matplotlib绘制柱状图
1.柱状图的绘制
柱状图是一种用矩形柱来表示数据分类的图表。 柱状图可以垂直绘制,也可以水平绘制。 它的高度与其所表示的数值成正比关系。 柱状图显示了不同类别之间的比较关系,图表的水平轴 X 指定被比较的类别,垂直轴 Y 则表示具体的类别值 matplotlib.pyplot.bar(x, height, width: float = 0.8, bottom = None, *, align: str = ‘center’, data = None, **kwargs) x 表示x坐标,数据类型为float类型,一般为np.arange()生成的固定步长列表 height 表示柱状图的高度,也就是y坐标值,数据类型为float类型,一般为一个列表,包含生成柱状图的所有y值 width 表示柱状图的宽度,取值在0~1之间,默认值为0.8 bottom 柱状图的起始位置,也就是y轴的起始坐标,默认值为None align 柱状图的中心位置,“center”,"lege"边缘,默认值为’center’ color 柱状图颜色,默认为蓝色 alpha 透明度,取值在0~1之间,默认值为1 label 标签,设置后需要调用plt.legend()生成 edgecolor 边框颜色 (ec) linewidth 边框宽度,浮点数或类数组,默认为None (lw) tick_label:柱子的刻度标签,字符串或字符串列表,默认值为None。 linestyle :线条样式 (ls)
1.1 bottom参数 柱状图的起始位置,也就是y轴的起始坐标,默认值为None
1.2 color参数 设置柱状图的柱状颜色
描边 -相关的关键字参数为:
edgecolor 或 ec
linestyle 或 ls
linewidth 或 lw
2.同位置多柱状图
同一 x 轴位置绘制多个柱状图,主要通过调整柱状图的宽度和每个柱状图x轴的 起始位置
# 国家
countries = ['挪威', '德国', '中国', '美国', '瑞典']
# 金牌个数
gold_medal = [16, 12, 9, 8, 8]
# 银牌个数
silver_medal = [8, 10, 4, 10, 5]
# 铜牌个数
bronze_medal = [13, 5, 2, 7, 5]
#1.将x轴转换成数值
x = np.arange(len(countries))
# 2.设置图形的宽度
width = 0.2
# ===============确定x起始位置==========
# 金牌起始位置
gold_x = x
# 银牌的起始位置
silver_x = x + width
# 铜牌的起始位置
bronze_x = x + 2 * width
# ==================分别绘制图形
# 金牌图形
plt.bar(gold_x,gold_medal,width=width,color="gold",label='金牌')
# 银牌图形
plt.bar(silver_x,silver_medal,width=width,color="silver",label='银牌')
# 铜牌图形
plt.bar(bronze_x,bronze_medal,width=width, color="saddlebrown",label='铜牌')
# ================将x轴的坐标变回来
# 注意x标签的位置未居中
plt.xticks(x+width, labels=countries)
# verticalalignment:(va)垂直对齐方式 ,参数:[ ‘center’ | ‘top’ | ‘bottom’ | ‘baseline’ ]
# horizontalalignment:(ha)水平对齐方式 ,参数:[ ‘center’ | ‘right’ | ‘left’ ]
#-----------显示高度文本----------------
for i in range(len(countries)):
# 金牌的文本设置
plt.text(gold_x[i],gold_medal[i],gold_medal[i],va="bottom",ha="center")
# 银牌牌
plt.text(silver_x[i],silver_medal[i],silver_medal[i],va="bottom",ha="center")
# 铜牌
plt.text(bronze_x[i],bronze_medal[i],bronze_medal[i],va="bottom",ha="center")
# 显示图例
plt.legend()
plt.show()
作者:Ambitious
-------------------------------------------
个性签名:独学而无友,则孤陋而寡闻。做一个灵魂有趣的人!
如果觉得这篇文章对你有小小的帮助的话,记得在右下角点个“推荐”哦,博主在此感谢!
万水千山总是情,打赏一分行不行,所以如果你心情还比较高兴,也是可以扫码打赏博主,哈哈哈(っ•̀ω•́)っ✎⁾⁾!