python 条形图_Python可视化|matplotlib12垂直|水平|堆积条形图详解

"pythonic生物人"的第39篇分享5a9b0fe7248f4b888fd6456ad14e28e7.png04de333b4bb888df123563a4fff165ee.png04de333b4bb888df123563a4fff165ee.png


原创不易,点个“赞“或"在看"鼓励下呗2456619941489f7920d82cdb2a2a8271.png2456619941489f7920d82cdb2a2a8271.png

摘要

详细介绍python matpltlib中垂直、水平和堆积三种条形图的绘制。

目录

1、垂直柱形图  垂直柱形图参数详解  多个垂直柱形图并列显示  柱形图高度显示在柱子上方  堆积柱形图2、水平柱形图  ‍ ‍‍柱形图参数详解‍‍‍

正文开始啦


1、垂直柱形图

  • 垂直柱形图参数详解

import matplotlib.pyplot as pltimport numpy as np
plt.figure(dpi=100)
labels = ['Jack','Rose','Jimmy']
year_2019=np.arange(1,4)
plt.bar(np.arange(len(labels)),#每个柱子的名称
        year_2019,#每个柱子的高度
        width=0.4,#柱子宽度,默认宽度: 0.8
        bottom=0,#柱子起始位置对应纵坐标,默认从0开始
        align='center',#柱子名称位置,默认为'center',可选'edge'
        color='pink',#柱子填充色
        edgecolor='b',#柱子外框线xian色
        linewidth=1,#柱子外框线宽度
        tick_label=labels,#自定义每个柱子的名称
        yerr=[0.1,0.2,0.3],#添加误差棒
        ecolor='red',#误差棒颜色,默认为黑色
        capsize=5,#误差棒上下的横线长度
        log=False,#y轴坐标取对数       
        )
6f2c35de1b3a48daae544f6aa7e97fc8.png
  • 多个垂直柱形图并列显示

import matplotlib.pyplot as pltimport numpy as np
plt.figure(dpi=100)
labels = ['Jack','Rose','Jimmy']
year_2019=np.arange(1,4)
year_2020=np.arange(1,4)+1
bar_width=0.4
plt.bar(np.arange(len(labels))-bar_width/2,#为了两个柱子一样宽
        year_2019,
        color='#B5495B',
        width=bar_width, 
        label='year_2019'#图例
       )
plt.bar(np.arange(len(labels))+bar_width/2,
        year_2020,
        color='#2ca02c',
        width=bar_width,
        label='year_2020'#图例
       )
plt.xticks(np.arange(0, 3, step=1),labels,rotation=45)#定义柱子名称
plt.legend(loc=2)#图例在左边
2d42c2d43f81c7f418fb3707428784ee.png
  • 柱形图高度显示在柱子上方

import matplotlib.pyplot as pltimport numpy as np
plt.figure(dpi=100)
labels = ['Jack','Rose','Jimmy']
year_2019=np.arange(1,4)
year_2020=np.arange(1,4)+1
bar_width=0.4
bar1 = plt.bar(np.arange(len(labels))-bar_width/2,#为了两个柱子一样宽
        year_2019,
        color='#B5495B',
        width=bar_width, 
        label='year_2019'#图例
       )
bar2 = plt.bar(np.arange(len(labels))+bar_width/2,
        year_2020,
        color='#2ca02c',
        width=bar_width,
        label='year_2020'#图例
       )
plt.xticks(np.arange(0, 3, step=1),labels,rotation=45)#定义柱子名称
plt.legend(loc=2)#图例放置左边def autolabel(rects):"""柱子上添加柱子的高度"""for rect in rects:
        height = rect.get_height()
        plt.annotate('{}'.format(height),
                    xy=(rect.get_x() + rect.get_width() / 2, height),
                    xytext=(0, 0.8),#柱子上方距离
                    textcoords="offset points",
                    ha='center', va='bottom')
autolabel(bar1)
autolabel(bar2)
plt.tight_layout()
plt.show()
ebee4ce12f2b31d0b21049e6b410e77e.png
  • 堆积柱形图

import matplotlib.pyplot as pltimport numpy as np
plt.figure(dpi=100)
labels = ['Jack','Rose','Jimmy']
year_2019=np.arange(1,4)
year_2020=np.arange(1,4)+1
bar_width=0.4
plt.bar(np.arange(len(labels)),
        year_2019,
        color='#B5495B',
        width=bar_width, 
        label='year_2019'
        )
plt.bar(np.arange(len(labels)),
        year_2020,
        color='#2ca02c',
        width=bar_width,
        bottom=year_2019,#上面柱子起始高度设置为第一个柱子的结束位置,默认从0开始
        label='year_2020'#图例
        )
plt.xticks(np.arange(0, 3, step=1),labels,rotation=45)#定义柱子名称
plt.legend(loc=2)#图例在左边
315338a9a83987df5548171b0b34441a.png

2、水平柱形图

  • 水平柱形图参数详解

注意比较和垂直柱形图中参数的细微差别

import matplotlib.pyplot as pltimport numpy as np
plt.figure(dpi=100)
labels = ['Jack','Rose','Jimmy']
year_2019=np.arange(1,4)
plt.barh(np.arange(len(labels)),#每个柱子的名称
        width=year_2019,#柱子高度
        height=0.8,#柱子宽度,默认为0.8
        left=1,#柱子底部位置对应x轴的横坐标,类似bar()中的bottom         
        align='center',#柱子名称位置,默认为'center',可选'edge'
        color='pink',#柱子填充色
        edgecolor='b',#柱子外框线xian色
        linewidth=1,#柱子外框线宽度
        tick_label=labels,#自定义每个柱子的名称
        xerr=[0.1,0.2,0.3],#添加误差棒
        ecolor='red',#误差棒颜色,默认为黑色
        capsize=5,#误差棒上下的横线长度
        log=False,#y轴坐标取对数       
        )
389034370f32ae5c83e8d0796f5d71de.png

3、参考资料

https://matplotlib.org/api/_as_gen/matplotlib.pyplot.bar.html#matplotlib.pyplot.barhttps://matplotlib.org/api/_as_gen/matplotlib.pyplot.barh.html#matplotlib.pyplot.barh


同系列文章
Python|R可视化|09-提取图片颜色绘图(五-颜色使用完结篇) Python可视化|matplotlib10-绘制散点图scatter Python可视化|matplotlib11-绘制折线图matplotlib.pyplot.plot

5a9b0fe7248f4b888fd6456ad14e28e7.png5a9b0fe7248f4b888fd6456ad14e28e7.png原创不易"点赞"、"在看"3e9b537aa04cbb0f70cab4fe83fcc01f.png励下呗7390dc7f71aec3a0b2f36faa0f36f998.pngba2f00fec887eb290103f953cb3ef7ff.png

db1a64e3d446ced82f1eb7ad9607ba79.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值