Python 3 - 如何从高维数据制作马赛克图?

2024-05-04

我有一个 pandas-DataFrame:

data = pd.read_csv(r'C:\data-path\demographics.csv', sep=',') print(data)

PersonID Married No. of Children Sex 1 yes 0 male 2 no 0 female 3 no 1 male 4 yes 1 male 5 no 1 female 6 no 2 female 7 no 1 male 8 no 2 male 9 no 2 male 10 no 1 male 11 no 0 female

现在我尝试使用它创建一个马赛克图statsmodels.graphics.mosaicplot http://statsmodels.sourceforge.net/0.6.0/generated/statsmodels.graphics.mosaicplot.mosaic.html

mosaic(data, ['Married', 'No. of Children'])

...但是,每当我尝试添加第三个维度时,它都会起作用,例如:

mosaic(data, ['Married', 'No. of Children', 'Sex'])

...我收到以下错误消息:

ValueError: at least one proportion should begreater than zero

我不确定它想从我这里得到什么。是否有某些参数丢失/设置错误?

我选择哪些列/维度或按什么顺序也并不重要。每当我有超过 2 个时,我就会收到错误。

有人有主意吗?

提前致谢


经过一番修补后,我没有找到解决方案,而是找到了错误的根源。

它位于mosaicplot-class/-module的代码中:http://nipy.bic.berkeley.edu/nightly/statsmodels/doc/html/_modules/statsmodels/graphics/mosaicplot.html http://nipy.bic.berkeley.edu/nightly/statsmodels/doc/html/_modules/statsmodels/graphics/mosaicplot.html

简而言之:它无法处理数据集中的类,这些类是空的,即有 0 个实例。

考虑原始问题中的数据集,然后考虑以下函数调用:

mosaic(data, ['Married', 'No. of Children'])

“马赛克”方法要做的就是确定第一个类别有多少个类(在本例中为:2),然后确定每个类出现的频率。然后,它将基于此生成绘图矩形的“比例”列表,在“已婚”类别的情况下,该列表将是

[2, 9]

...因为有 2 个“是”和 9 个“否”实例。

对于每个类别,根据第二个类别,都会有新的划分,此处:“不。孩子的'。有 3 个类别(0、1 和 2),这将生成以下“比例”:

[1, 1, 0](1 已婚,有 0 个孩子,1 已婚,有 1 个孩子,0 已婚,有 2 个孩子)

[2, 4, 3](1 个单身,0 个孩子,等等......)

仅根据以上内容,就能够绘制出完美精细的马赛克图。

然而,一旦我们考虑到第三个类别(例如:“性别”),上述列表之一中的 0 就会成为问题。它将生成列表 [0, 0],因为他们是 0 个已婚男性/女性,有 2 个孩子。

在源代码的第 45 行中,有一个 if 子句将在所有 0 列表中引发异常(因为它们“没有意义”)。

如上所述,我无法找到修复/解决方法来执行此操作。简单地注释掉 if 子句将允许所有分割正常执行,但是,这也会导致马赛克图的绘制在 matplotlib 的 backend_agg.py 中抛出异常,因为不知何故它们现在是 NaN 值(不是数字)。

为什么会这样,我不知道,如果有比我更聪明、更有经验的人来研究这个问题,我会很高兴。

我仍然不排除我只需以不同的方式设置一些参数即可。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python 3 - 如何从高维数据制作马赛克图? 的相关文章

  • 用枢轴点拟合曲线 Python

    我有下面的图 我想用 2 条线来拟合它 使用 python 我设法适应上半部分 def func x a b x np array x return a x b popt pcov curve fit func up x up y 我想用另
  • 跟踪 pypi 依赖项 - 谁在使用我的包

    无论如何 是否可以通过 pip 或 PyPi 来识别哪些项目 在 Pypi 上发布 可能正在使用我的包 也在 PyPi 上发布 我想确定每个包的用户群以及可能尝试积极与他们互动 预先感谢您的任何答案 即使我想做的事情是不可能的 这实际上是不
  • 删除flask中的一对一关系

    我目前正在使用 Flask 开发一个应用程序 并且在删除一对一关系中的项目时遇到了一个大问题 我的模型中有以下结构 class User db Model tablename user user id db Column db String
  • Python zmq SUB 套接字未接收 MQL5 Zmq PUB 套接字

    我正在尝试在 MQL5 中设置一个 PUB 套接字 并在 Python 中设置一个 SUB 套接字来接收消息 我在 MQL5 中有这个 include
  • YOLOv8获取预测边界框

    我想将 OpenCV 与 YOLOv8 集成ultralytics 所以我想从模型预测中获取边界框坐标 我该怎么做呢 from ultralytics import YOLO import cv2 model YOLO yolov8n pt
  • 如何在 Python 中解析和比较 ISO 8601 持续时间? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我正在寻找一个 Python v2 库 它允许我解析和比较 ISO 8601 持续时间may处于不同单
  • 如何在不丢失注释和格式的情况下更新 YAML 文件 / Python 中的 YAML 自动重构

    我想在 Python 中更新 YAML 文件值 而不丢失 Python 中的格式和注释 例如我想改造 YAML 文件 value 456 nice value to value 6 nice value 界面类似于 y yaml load
  • “隐藏”内置类对象、函数、代码等的名称和性质[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我很好奇模块中存在的类builtins无法直接访问的 例如 type lambda 0 name function of module
  • javascript 是否有等效的 __repr__ ?

    我最接近Python的东西repr这是 function User name password this name name this password password User prototype toString function r
  • Jupyter Notebook 找不到 Python 模块

    不知道发生了什么 但每当我使用 ipython 氢 原子 或 jupyter 笔记本时都找不到任何已安装的模块 我知道我安装了 pandas 但笔记本说找不到 我应该补充一点 当我正常运行脚本时 python script py 它确实导入
  • 从 NumPy ndarray 中选择行

    我只想从 a 中选择某些行NumPy http en wikipedia org wiki NumPy基于第二列中的值的数组 例如 此测试数组的第二列包含从 1 到 10 的整数 gt gt gt test numpy array nump
  • 仅第一个加载的 Django 站点有效

    我最近向 stackoverflow 提交了一个问题 标题为使用mod wsgi在apache上多次请求后Django无限加载 https stackoverflow com questions 71705909 django infini
  • 使用特定颜色和抖动在箱形图上绘制数据点

    我有一个plotly graph objects Box图 我显示了箱形 图中的所有点 我需要根据数据的属性为标记着色 如下所示 我还想抖动这些点 下面未显示 Using Box我可以绘制点并抖动它们 但我不认为我可以给它们着色 fig a
  • 如何在 pygtk 中创建新信号

    我创建了一个 python 对象 但我想在它上面发送信号 我让它继承自 gobject GObject 但似乎没有任何方法可以在我的对象上创建新信号 您还可以在类定义中定义信号 class MyGObjectClass gobject GO
  • Django-tables2 列总计

    我正在尝试使用此总结列中的所有值文档 https github com bradleyayers django tables2 blob master docs pages column headers and footers rst 但页
  • 如何应用一个函数 n 次? [关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 假设我有一个函数 它接受一个参数并返回相同类型的结果 def increment x return x 1 如何制作高阶函数repeat可以
  • 如何计算Python中字典中最常见的前10个值

    我对 python 和一般编程都很陌生 所以请友善 我正在尝试分析包含音乐信息的 csv 文件并返回最常听的前 n 个乐队 从下面的代码中 每听一首歌曲都是一个列表中的字典条目 格式如下 album Exile on Main Street
  • 在 JavaScript 函数的 Django 模板中转义字符串参数

    我有一个 JavaScript 函数 它返回一组对象 return Func id name 例如 我在传递包含引号的字符串时遇到问题 Dr Seuss ABC BOOk 是无效语法 I tried name safe 但无济于事 有什么解
  • 更改 Tk 标签小部件中单个单词的颜色

    我想更改 Tkinter 标签小部件中单个单词的字体颜色 我知道可以使用文本小部件来实现与我想要完成的类似的事情 例如使单词 YELLOW 显示为黄色 self text tag config tag yel fg clr yellow s
  • 使用随机放置的 NaN 创建示例 numpy 数组

    出于测试目的 我想创建一个M by Nnumpy 数组与c随机放置的 NaN import numpy as np M 10 N 5 c 15 A np random randn M N A mask np nan 我在创建时遇到问题mas

随机推荐