我想创建一个我的统计学书所称的“点图”,图中的点的数量等于观察的数量。下面是一个mathisfun.com的例子:
的数据
在该示例中,X轴上0
值上方有六个点,表示值为零的六个观测值。
似乎“点图”可以有几种变化。在查找如何使用Matplotlib创建这个图时,我只遇到了我所知道的散点图,其中有一个数据点表示X和Y值之间的关系。
我试图创建的绘图类型是否可以使用Matplotlib?
我想创建一个我的统计学书所称的“点图”,图中的点的数量等于观察的数量。下面是一个mathisfun.com的例子:
的数据
在该示例中,X轴上0
值上方有六个点,表示值为零的六个观测值。
似乎“点图”可以有几种变化。在查找如何使用Matplotlib创建这个图时,我只遇到了我所知道的散点图,其中有一个数据点表示X和Y值之间的关系。
我试图创建的绘图类型是否可以使用Matplotlib?
6条答案
按热度按时间qjp7pelc1#
假设你有一些数据可以生成如下的直方图,
字符串
的数据
您可以通过计算直方图并绘制所有可能点的散点图来创建点图,如果点的颜色超过直方图给出的数量,则点的颜色为白色。
型
或者,您可以将不需要的点设置为
nan
,型
的
ws51t4hk2#
这个答案是建立在eyllanesc在他对这个问题的评论中发布的代码上的,因为我发现它足够优雅,值得一个说明性的例子。我提供两个版本:一个是简单的版本,其中手动设置格式化参数,另一个是第二版本,其中根据数据自动设置一些格式化参数。
简单版,手动格式化
字符串
的数据
自动格式化高级版
如果您计划经常使用此图,则添加一些自动格式设置参数以获得适当的图形尺寸和标记大小可能很有用。在下面的示例中,参数的定义方式最适合于这种类型的图通常有用的数据类型(整数数据,范围最多为几十个单位,不超过几百个数据点)。
型
的
nwo49xxi3#
将数据集传递给此函数:
字符串
tquggr8v4#
假设这是我的数据:
字符串
为了绘制一个“点图”,我将需要的数据(x轴)和频率(y轴)
型
的数据
q43xntqr5#
最近我也想到了这样的事情。我为我的案子做了以下陈述。
希望这对你有帮助。
我们首先生成频率表,然后从中生成点来做散点图。就这样!超级简单。
例如,在您的情况下,我们有0分钟,6人。这个频率可以转换成
字符串
然后,必须使用
pyplot.scatter
简单地绘制这些点。型
当然,这个函数返回一个包含两个数组的数组,一个用于x坐标,另一个用于y坐标(只是因为,这就是pyplot需要点的原因!)。现在,我们有了生成所需点的函数,让我们绘制它。
型
输出:
x1c 0d1x的数据
也许,如果x刻度变得太大,你可以旋转它们。然而,对于更多数量的值,这也变得笨拙。
bpzcxfmw6#
做简单的方式
使用ArviZ
如果你可以使用额外的软件包,我建议使用ArviZ,它使用Matplotlib并提供适当的点图。
Documentation of ArviZ dotplot
示例代码
字符串
输出
的数据