Python:matplotlib条形图的奇怪行为

Python:matplotlib条形图的奇怪行为,python,matplotlib,bar-chart,ipython-notebook,Python,Matplotlib,Bar Chart,Ipython Notebook,我在ipython笔记本中使用matplotlib时有一种奇怪的行为:当我更改条形图的属性“颜色”时,结果很难看,有些条形图是红色的,有些条形图是黑色的。只有当我要显示大量的条形图(>100)时,才会发生这种情况 您可以执行下面的代码来重现问题,使用dataPoints参数来查看条数的影响: import random import matplotlib.pyplot as plt dataPoints = 400 data = random.sample(range(300, 1000),

我在ipython笔记本中使用matplotlib时有一种奇怪的行为:当我更改条形图的属性“颜色”时,结果很难看,有些条形图是红色的,有些条形图是黑色的。只有当我要显示大量的条形图(>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版本中的问题

这只是解决的问题。由于您添加了太多的
数据点
(在您的示例中为400个),因此您创建的存储箱太多了!!这使其在生成的默认绘图中重叠

带有200个
数据点的默认条形图如下所示

但是当你放大看的时候,你可以看到你的箱子实际上是分开的,黑线现在不清晰可见


以上内容与使用200个
数据点执行的程序相同

这不是pyplot的问题,也不是您的代码或iPython版本的问题

这只是解决的问题。由于您添加了太多的
数据点
(在您的示例中为400个),因此您创建的存储箱太多了!!这使其在生成的默认绘图中重叠

带有200个
数据点的默认条形图如下所示

但是当你放大看的时候,你可以看到你的箱子实际上是分开的,黑线现在不清晰可见


以上是使用200个
数据点执行的相同程序

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

要使图像中只有红色,可以使用以下方法将边框颜色更改为红色:

plt.bar(xCoords, data, color='red', edgecolor='red')

如果你放大这些条,你会看到实际上没有黑色条。您看到的黑色是围绕条的黑色边框和适合屏幕像素的插值的结果

要使图像中只有红色,可以使用以下方法将边框颜色更改为红色:

plt.bar(xCoords, data, color='red', edgecolor='red')

小更正:它们并没有“消失”,它们仍然存在,因为我认为它们是由于酒吧的边界,很明显它们仍然存在。@Ffisegydd:是的,你是对的。但我认为这是唯一的答案!!我将添加建议的编辑否我同意你是正确的:)只是黑色没有消失,它不再是一个问题(它更像是一个吹毛求疵的更正,而不是一个“你错了!”的更正)小更正:它们没有“消失”,它们仍然存在,因为我认为它们是由于酒吧的边界,很明显,它们还在那里。@Ffisegydd:是的,你是对的。但我认为这是唯一的答案!!我将添加建议的编辑否我同意你是正确的:)只是黑色没有消失,它不再是一个问题(它更像是一个吹毛求疵的更正,而不是一个“你错了!”的更正)edgecolor参数有助于获得更干净的结果,谢谢!edgecolor参数有助于获得更干净的结果,谢谢!