如何在matplotlib直方图中设置颜色

50pmv0ei  于 2023-05-01  发布在  其他
关注(0)|答案(2)|浏览(154)

我正在使用Matplotlib绘制直方图。我想直方图的颜色是“ Azure ”。但数据重叠,并产生一个直方图,这是近黑色的颜色。

plt.hist(data, color = "skyblue")

下面是直方图的样子。正如您所看到的,即使我将颜色指定为“ Azure ”,右侧的直方图仍接近黑色。

rekjcdws

rekjcdws1#

直方图看起来是黑色的原因是条形周围的线(黑色)占据了大部分空间。
选项是通过将线宽设置为零来消除边:

plt.hist(data, color = "skyblue", lw=0)

和/或将边缘颜色设置为与条本身相同的颜色

plt.hist(data, color = "skyblue", ec="skyblue")
tjrkku2a

tjrkku2a2#

这个特殊的问题(edgecolor与条颜色不匹配)不再存在(至少在matplotlib 3中是这样)。0),因为除非默认情况下edgecolor与填充颜色匹配。
无论如何,绘制直方图的一个更快的方法(边缘颜色并不重要)是绘制轮廓并填充它。

data = (np.random.randn(10000)-2.5)/4
plt.hist(data, bins=50, histtype='step', fill=True, color='skyblue');

另一种方法是使用np.histogram预先计算直方图,使用plt.stairs()绘制轮廓并填充它。

plt.stairs(*np.histogram(data, 50), fill=True, color='skyblue')

这两个选项都比单纯的plt.hist()调用快得多,特别是在bin数量很大的情况下。

相关问题