在matplotlib的条形图中显示非常窄的矩形的颜色

时间:2015-10-22 16:31:32

标签: python matplotlib

我试图在matplotlib中绘制具有非常宽的x轴范围的数据。我有两组数据,我想通过两种颜色区分。但是,标准条形图中使用的矩形非常窄,以至于颜色不会显示。以下是我使用的代码:

import matplotlib.pyplot as plt
fig=plt.figure()
ax1=fig.add_subplot(111)
ax1.bar(plotreal,plotabundance,color='#330000') #first data (x,y,color)
ax1.bar(xlist,ylist,color='#9999FF') #second set of data (x,y,color)
ax1.set_xlabel() #some axis labeling
ax1.set_ylabel() #some axis labeling
ax1.set_title() #some title labeling
plt.savefig('chart of '+str(counter)+'.png') #some more parameters

第二组中的数据可能与第一组中的数据重叠(具有相同的点),并且我希望在任何情况下都显示其颜色。我有兴趣保持这种显示格式,每个点显示为一条线/矩形,只需为线条/矩形添加颜色。

即使我尝试对这两个数据集进行对比色,但仍然无法区分本例中的第二组仅包含4个坐标,第一组包含其余的坐标。

sample data

(如果有人的古玩,这是来自质谱仪的输出数据)

是否还有其他图表类型或参数我可以用来解决此颜色问题?提前谢谢。

1 个答案:

答案 0 :(得分:2)

边缘颜色由不同的参数设置(默认=黑色)。您的条形图太小,无法看到填充颜色,因此它看起来是黑色的,因为边缘保持相同的大小!

要修复,add edgecolor=...

import matplotlib.pyplot as plt
fig=plt.figure()
ax1=fig.add_subplot(111)
ax1.bar(plotreal,plotabundance,color='#330000',edgecolor='#330000') #first data (x,y,color,edgecolor) 
ax1.bar(xlist,ylist,color='#9999FF',edgecolor='#9999FF') #second set of data (x,y,color,edgecolor)
ax1.set_xlabel() #some axis labeling
ax1.set_ylabel() #some axis labeling
ax1.set_title() #some title labeling
plt.savefig('chart of '+str(counter)+'.png') #some more parameters