Python:使用matplotlib条形图的奇怪行为

时间:2015-01-20 15:05:49

标签: python matplotlib bar-chart ipython-notebook

我在ipython笔记本中使用matplotlib有一个奇怪的行为:当我改变属性" color"条形图,结果是丑陋的,我有一些红色的酒吧和一些黑色的酒吧。只有当我有大量的条形显示(> 100)时才会发生这种情况。

您可以执行以下代码重现问题,使用dataPoints参数来查看条数的影响:

import random
import matplotlib.pyplot as plt

dataPoints = 400
data = random.sample(range(300, 1000), dataPoints)
xCoords = range(dataPoints)

fig = plt.figure(figsize=[13,9])
plt.bar(xCoords,data,color='red')
plt.show()

以下是结果示例:

Output

2 个答案:

答案 0 :(得分:3)

这不是pyplot的问题,也不是你的代码或你的iPython版本中的问题。

这只是解决问题。由于你添加了很多dataPoints(在你的情况下是400),你创造了太多的垃圾箱!这使它在生成的默认图中重叠。

200 dataPoints的默认条形图图如下所示

enter image description here

但是当你放大观看时,你可以看到你的垃圾箱实际上是分开的,黑线现在看不清楚了。

enter image description here

以上操作与200 dataPoints

的程序执行相同

答案 1 :(得分:1)

如果放大条形图,您会看到实际上没有黑条。您看到的黑色是条纹周围的黑色边框和插值的结果,以适合屏幕的像素。

如果您的图像中只有红色,则可以使用

将边框颜色更改为红色
plt.bar(xCoords, data, color='red', edgecolor='red')