当前位置: 首页 > 知识库问答 >
问题:

如何阻止pyplot重叠直方图仓?

柴瀚
2023-03-14

我确信有一个简单的答案,我只是看错了东西,但是我的pyplot直方图发生了什么?这是输出;数据包含年龄在18至24岁之间的参与者,没有分数年龄(没有人是18.5岁):

为什么箱子是这样交错的?当前宽度设置为1,所以每个条应该是一个箱的宽度,对吗?当宽度小于0.5时,问题会变得更糟,因为条形看起来像是在完全不同的条盒中。

代码如下:

import matplotlib.pyplot as plt
import numpy as np
import pandas as pd

csv = pd.read_csv('F:\Python\Delete\Delete.csv')

age = csv.age
gender = csv.gender

new_age = age[~np.isnan(age)]
new_age_f = new_age[gender==2]
new_age_m = new_age[gender==1]

plt.hist(new_age_f, alpha=.80, label='Female', width=1, align='left')
plt.hist(new_age_m, alpha=.80, label='Male', width=1, align='left')

plt.legend()

plt.show()

谢谢!

共有1个答案

宋典
2023-03-14

plt.hist没有任何参数。如果指定了宽度,它将被赋予底层补丁,这意味着矩形的宽度为1。这与直方图的bin宽度无关,我想在直方图调用中几乎没有理由使用宽度。

相反,您想要的是指定箱。您可能还想对两个直方图使用相同的条柱。

import matplotlib.pyplot as plt
import numpy as np; np.random.seed(5)
import pandas as pd

csv = pd.DataFrame({"age" : np.random.randint(18,27, 20),
                    "gender" : np.random.randint(1,3,20)})

age = csv.age
gender = csv.gender

new_age = age[~np.isnan(age)]
new_age_f = new_age[gender==2]
new_age_m = new_age[gender==1]

bins = np.arange(new_age.values.min(),new_age.values.max()+2)

plt.hist(new_age_f, alpha=.40, label='Female', bins=bins, ec="k")
plt.hist(new_age_m, alpha=.40, label='Male', bins=bins,  ec="k")

plt.legend()

plt.show()
 类似资料:
  • 我有一只熊猫。DataFrame我想基于两列绘制一个图表:(int)、(int-或)。现在我有这样的东西: 这是我使用的代码: 这是两个子图。这很好,但是很难看出在特定的年龄范围内,在幸存的列中有和的记录量之间的差异。 所以我想要这样的东西: 在这个场景中,您可以看到这种差异。有什么方法可以在(因为在那里我可以轻松地操作)?如果可能的话,我不想使用香草

  • 我的问题是,chart js根据数据集上定义的顺序呈现条形图。如下所示,数组索引0处的值为和。由于首先通过了2500,这将阻止1000值的条形图。 https://jsfiddle.net/6bjy9nxh/352/

  • 问题内容: 我认为这是一个普遍的问题,不需要从我的图表中获取太多信息。 我想防止列彼此重叠/重叠,该怎么办? 请参阅下面的图像链接,了解现在的情况 http://highslide.com/forum/download/file.php?id=3157 jsfiddle:http : //jsfiddle.net/Dzs5q/ 问题答案: 请尝试在此处重现该错误@ http://jsfiddle.

  • 问题内容: 我使用Minify来缩小并缓存所有脚本请求。 我只希望我的用户能够访问JavaScript文件的缩小版本。 Minify位于,我的脚本位于。如何阻止直接访问未缩小的JavaScript文件所在的位置。我宁愿不要将它们从文档根目录中删除,但这是一个选择。 请注意,我使用的是Zend Framework,因此应用程序的实际根目录已移至。htaccess文件可处理重写。 问题答案: 您不能仅

  • 在Matplotlib中创建堆叠直方图时,我注意到箱宽缩小了。在这个简单的例子中: 我得到以下输出: 请注意,左侧的直方图在每个存储区之间都有行间距,即使左侧和右侧直方图都使用相同的存储区。 有没有办法纠正这种行为?我想在左边的直方图使用完整的箱子宽度,这样相邻的箱子共享一条边。

  • 问题内容: 如果先前的例程尚未完成,如何防止此spring作业运行? 问题答案: 使用,该时间段是在工作完成后计算的,因此无需担心。