本来想把Matplotlib的常见图汇总成一篇,结果发现篇幅太长,还是把特别长的部分单独成篇叭~
文章目录
条形图基础操作
- bar为纵向条形图;barh为横向条形图
- 下述代码列举了笔者常用参数;依次为:条形颜色,误差棒设置,透明度,条形宽度,条形标签,条形边框颜色,条形边框线宽
plt.bar(x,y,color='',yerr=,alpha=,width=,label='',edgecolor='',linewidth=)
plt.barh(x,y,color='',yerr=,alpha=,width=,label='',edgecolor='',linewidth=)
在条形图中添加参考线
plt.axhline(0,color='',linewidth=) # 在y=0的位置添加一条颜色为xx,线宽为x的线
plt.axvline(0,color='',linewidth=) # 在x=0的位置添加一条颜色为xx,线宽为x的线
将不同特征的bar设置成不同颜色
if condition:
bar.set(color='',linewidth=)
将两组条形图合并以实现对比
其实就是将两个bar的x值设置为一正一负(横向条形图;如果时竖向条形图就将y值设置为一正一负)
簇状条形图
如果为竖向条形图,即将每一组数据的x值设置为+width
plt.bar(pos,green_data,width,alpha=0.5,color='g',label=labels[0])
plt.bar([p+width for p in pos],blue_data,width,alpha=0.5,color='b',label=labels[1])
plt.bar([p+width*2 for p in pos],red_data,width,alpha=0.5,color='r',label=labels[2])
条形图后加标签
plt.text(b.get_width()+b.get_width()*0.05,b.get_y()+b.get_height()/2,'{0:.2%}'.format(d/min(data)))
# get_y是最下面的数据,get_x是最左边的数据,get_width是条形图的横向宽度,get_height是条形图的纵向宽度【无论bar/barh】
colormap功能
想使用colormap功能需要先导入: