我试图在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个坐标,第一组包含其余的坐标。
(如果有人的古玩,这是来自质谱仪的输出数据)
是否还有其他图表类型或参数我可以用来解决此颜色问题?提前谢谢。
答案 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