无法获取直方图以显示具有垂直线的分隔容器

2024-04-27 06:06:45 发布

您现在位置:Python中文网/ 问答频道 /正文

烦人的奇怪问题,我还没有找到一个解决方案在这个网站上(虽然问题已经弹出)

我正在尝试制作一个直方图,其中的箱子有'酒吧风格'的垂直线分开每个箱子,但无论我改变histtype构造器,我得到一个步骤填充直方图。

这是我的密码。注意:我使用的是Python2.7.6版通过anaconda安装的jupyter笔记本

import numpy as np
import matplotlib.pyplot as plt

x = np.random.rand((100)) 
bins = np.linspace(0, 2, 40)
plt.title('Relative Amplitude',fontsize=30)
plt.xlabel('Random Histogram')
plt.ylabel('Frequency',fontsize=30)
plt.hist(x, bins, alpha=0.5, histtype='bar')

plt.legend(loc='upper right',fontsize=30)
plt.xticks(fontsize = 20) 
plt.yticks(fontsize = 20) 
plt.show() 

就这样,我得到了一个步骤填充图,没有垂直线分隔的酒吧。令人恼火的是我很久以前就没有这个问题了,很明显有些事情已经改变了,我不知道是什么,我也试过histype='barstacked'。谢谢你的帮助

enter image description here


Tags: import网站风格asnp步骤plt解决方案
1条回答
网友
1楼 · 发布于 2024-04-27 06:06:45

用你的例子:

import numpy as np
import matplotlib.pyplot as plt

x = np.random.rand((100)) 
bins = np.linspace(0, 2, 40)
plt.title('Relative Amplitude',fontsize=30)
plt.xlabel('Random Histogram')
plt.ylabel('Frequency',fontsize=30)
plt.hist(x, bins, alpha=0.5, histtype='bar', ec='black')

plt.legend(loc='upper right',fontsize=30)
plt.xticks(fontsize = 20) 
plt.yticks(fontsize = 20) 
plt.show() 

生成以下图像:

enter image description here

关键的区别在于使用了ec关键字参数。这是“edgecolor”的缩写。在plt.hist的文档中,除了列出的所有关键字参数之外,plt.hist还接受Patch初始值设定项的关键字参数。edgecolor是这些关键字参数之一。这就是为什么它没有在plt.hist的文档中显式列出。绘图中的所有条都是一个单独的Patch对象,因此您要用黑色轮廓绘制所有条(或者用matplotlib术语edgecolor)。

相关问题 更多 >