Python:matplotlib 条形图的奇怪行为
Python : strange behavior with matplotlib barchart
我在 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()
这是一个结果示例:
不是pyplot的问题,也不是你的代码或者你的版本的问题iPython。
只是分辨率的问题。因为你添加了这么多 dataPoints
(在你的例子中是 400),你创建了太多的垃圾箱!!这使得它在生成的默认图中重叠。
200 dataPoints
的默认条形图如下所示
但是当你放大看的时候,你可以看到你的垃圾箱实际上是分开的,黑线现在看不清楚了。
上面是你的程序和200一样的执行dataPoints
.
如果放大这些条,您会发现实际上没有黑条。您看到的黑色是条形周围的黑色边框和插值以适合屏幕像素的结果。
要使图像中只有红色,您可以使用
将边框颜色更改为红色
plt.bar(xCoords, data, color='red', edgecolor='red')
我在 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()
这是一个结果示例:
不是pyplot的问题,也不是你的代码或者你的版本的问题iPython。
只是分辨率的问题。因为你添加了这么多 dataPoints
(在你的例子中是 400),你创建了太多的垃圾箱!!这使得它在生成的默认图中重叠。
200 dataPoints
的默认条形图如下所示
但是当你放大看的时候,你可以看到你的垃圾箱实际上是分开的,黑线现在看不清楚了。
上面是你的程序和200一样的执行dataPoints
.
如果放大这些条,您会发现实际上没有黑条。您看到的黑色是条形周围的黑色边框和插值以适合屏幕像素的结果。
要使图像中只有红色,您可以使用
将边框颜色更改为红色plt.bar(xCoords, data, color='red', edgecolor='red')