Matplotlib---柱形图

1. 绘制简单的柱状图

bar函数用于绘制柱状图。下面是bar函数的语法格式:

bar(x, height, width=0.8, bottom=None, align='center', data=None, **kwargs)

参数解释:

  • x:指定每个柱子的x轴坐标。
  • height:指定每个柱子的高度。
  • width:指定柱子的宽度。默认为0.8。
  • bottom:可选参数,指定柱子的基线位置。默认为None。
  • align:可选参数,指定柱子对齐方式。默认为'center',即柱子居中对齐。
  • data:可选参数,指定数据源。
  • **kwargs:其他可选参数,如颜色、标记等。
fig = plt.figure(figsize=(8, 5))

x = ['语文', '数学',  '英语', 'Python', '化学']
y = [20, 10, 40, 60, 10]

plt.bar(x, y)
plt.show()

 2. Pandas获取Excel数据

df = pd.read_excel('data/plot.xlsx', sheet_name='bar1')
x, y = df.年份, df.销售额
plt.figure(dpi=100)

plt.title('2014年-2020年销售额')
plt.xlabel('年份')
plt.ylabel('销售额')

# 柱形图
plt.bar(x, y, width=0.6)

# 给每个柱形图加上数字
for a, b in zip(x, y):
    plt.text(x=a, y=b+5e4, s='{:.1f}万'.format(b/10000), 
                ha='center', fontsize=9
            )

plt.savefig('images/5-5.png')

plt.show()

 3. 一次绘制多个柱状图

df2 = pd.read_excel('data/plot.xlsx', sheet_name='bar2')
x, y1, y2, y3 = df2.年份,  df2.北区, df2.中区, df2.南区
plt.figure(dpi=100)
plt.title('2014年-2020年销售额')
plt.xlabel('年份')
plt.ylabel('销售额')

width=0.2
plt.bar(x-width, y1, width=width, label='北区')
plt.bar(x, y2, width=width, label='中区')
plt.bar(x+width, y3, width=width, label='南区')

plt.legend()
plt.savefig('images/5-6.png')

plt.show()

# 簇状柱形图

 堆叠柱状图:

plt.figure(dpi=100)
plt.title('2014年-2020年销售额')
plt.xlabel('年份')
plt.ylabel('销售额')

plt.bar(x, y1, label='北区')
plt.bar(x, y2, label='中区', bottom=y1)  # 画图的时候y轴的底部起始值
plt.bar(x, y3, label='南区', bottom=y1+y2)

plt.legend()
plt.savefig('images/5-7.png')

plt.show()

# 堆叠柱形图

 条形图:

barh函数用于绘制水平柱状图。下面是barh函数的语法格式:

barh(y, width, height=0.8, left=None, align='center', color=None,  **kwargs)

参数解释:

  • y:指定每个柱子的y轴坐标。
  • width:指定每个柱子的宽度。
  • height:可选参数,指定柱子的高度。默认为0.8。
  • left:可选参数,指定柱子的左边界位置。默认为None。
  • align:可选参数,指定柱子对齐方式。默认为'center',即柱子居中对齐。
  • color:可选参数,指定柱子的颜色。
  • **kwargs:其他可选参数,如标记等。
# 条形图

plt.barh(x, y1)
plt.savefig('images/5-8.png')

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

三月七꧁ ꧂

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值