在matplotlib中,bar命令用于绘制柱状图,基本用法如下 plt.bar(x = [1, 2, 3, 4], height = [4, 2, 3, 1]) 输出结果如下 参数x的值作为x轴坐标,height的值作为y轴坐标。除了这两个基本参数外,bar命令
在matplotlib中,bar命令用于绘制柱状图,基本用法如下
plt.bar(x = [1, 2, 3, 4], height = [4, 2, 3, 1])输出结果如下
参数x的值作为x轴坐标,height的值作为y轴坐标。除了这两个基本参数外,bar命令常用的还有以下参数
1. width, 柱子的宽度,即在x轴上的长度,默认是0.8
2. color, 柱子的填充色
3. edgecolor, 柱子边框的颜色,默认为None
4. linewidth, 柱子边框的宽度,默认为0,表示没有边框
5. yerr,指定误差值的大小, 用于在柱子上添加误差线
6. ecolor, 表示errorbar color, 误差线的颜色
7. bottom, 柱子底部的baseline, 默认为0
各个参数设置的示例如下
plt.bar(x = [1, 2, 3, 4], height = [4, 2, 3, 1], width = 0.8, edgecolor = 'black', linewidth = 2, align = 'center', color = 'g', yerr = 0.5, ecolor = 'r')输出结果如下
柱状图还可以有很多的变种,通过barh命令,可以绘制水平方向的柱状图,用法如下
plt.barh(y = [1, 2, 3, 4], width = [4, 2, 3, 1])输出结果如下
在单一柱状图的基础上,通过叠加可以实现以下两种柱状图
1. 堆积柱状图
代码如下
plt.bar(x = [1, 2, 3, 4], height = [4, 3, 2, 1], label = 'sampleA')plt.bar(x = [1, 2, 3, 4], height = [4, 3, 2, 1], bottom = [4, 3, 2, 1], label = 'sampleB')
plt.legend()
核心是通过将第一组柱子的高度作为第二组柱子的底部,即bottom参数,从而实现堆积的效果,输出结果如下
2. 分组柱状图
代码如下
width = 0.4plt.bar(x = np.array([1, 2, 3, 4]) - width / 2, height = [4, 3, 2, 1], width = width, label = 'sampleA')
plt.bar(x = np.array([1, 2, 3, 4]) + width / 2, height = [1, 2, 3, 4], width = width, label = 'sampleB')
plt.legend()
核心是根据宽度的值,手动计算柱子的中心坐标,然后自然叠加就可以形成水平展开的分组柱状图,输出结果如下
matplotlib并不像R包ggplot2那样,提供了一步到位的接口,而是通过叠加组合最大程度的保留了灵活性,通过一行行绘图代码的叠加来实现复杂图表。
·end·
一个只分享干货的
生信公众号