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

柱形图(又称柱状图、直方图、条形图)用于各组数据的数量比较,可以简单的分为水平柱形图、垂直柱形图及堆积柱形图。

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

我的公众号:“pythonic生物人“,持续分享数据科学干货。

版权声明:“pythonic生物人“原创文章,欢迎收藏、点赞、关注三连,转载请标明出处!

写作时间:2020-07-02,有问题可留言或者我的公众号。

目录

1、垂直柱形图

垂直柱形图参数详解

多个垂直柱形图并列显示

柱形图高度显示在柱子上方

堆积柱形图

2、水平柱形图

水平柱形图参数详解

3、参考资料

4、我的公众号

1、垂直柱形图

垂直柱形图参数详解import matplotlib.pyplot as plt

import 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轴坐标取对数

)

多个垂直柱形图并列显示import matplotlib.pyplot as plt

import 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)#图例在左边

柱形图高度显示在柱子上方import matplotlib.pyplot as plt

import 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()

堆积柱形图import matplotlib.pyplot as plt

import 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)#图例在左边

2、水平柱形图

水平柱形图参数详解

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

import matplotlib.pyplot as plt

import 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轴坐标取对数

)

3、参考资料

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

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

4、我的公众号

"pythonic生物人",持续分享数据科学和生物信息干货,欢迎来看看。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Matplotlib是一个流行的Python可视化库,它可以用来绘制各种类型的表,包括线、散点柱状图、饼等等。在本文中,我们将介绍如何使用Matplotlib绘制多个变量的表。 首先,我们需要导入Matplotlib库,并生成一些数据用于绘。例如,我们可以使用NumPy库生成一些随机数据: ```python import matplotlib.pyplot as plt import numpy as np # 生成数据 x = np.linspace(0, 10, 100) y1 = np.sin(x) y2 = np.cos(x) ``` 接下来,我们可以使用Matplotlib的plot函数绘制两个不同的线: ```python # 绘制两个线 plt.plot(x, y1, label='sin') plt.plot(x, y2, label='cos') # 添加例 plt.legend() # 显示表 plt.show() ``` 这将生成一个包含两个线表,并在例中显示每个线的标签。 如果我们想要绘制一个包含多个变量的表,我们可以使用Matplotlib的subplot函数创建多个子。例如,我们可以使用如下代码创建一个包含两个子表: ```python # 创建包含两个子表 fig, axs = plt.subplots(2) # 在第一个子中绘制sin函数 axs[0].plot(x, y1) axs[0].set_title('sin') # 在第二个子中绘制cos函数 axs[1].plot(x, y2) axs[1].set_title('cos') # 调整子之间的间距 plt.tight_layout() # 显示表 plt.show() ``` 这将生成一个包含两个子表,每个子都包含一个变量的表。我们可以通过调整subplot函数的参数来创建包含更多子表。 除了使用subplot函数,Matplotlib还提供了许多其他的绘函数和工具,可以帮助我们创建各种类型的表。例如,我们可以使用scatter函数创建散点,使用bar函数创建柱状图,使用pie函数创建饼等等。Matplotlib的文档中包含了详细的说明和示例,可以帮助我们学习如何使用这些功能来绘制各种类型的表。 总之,Matplotlib是一个功能强大的Python可视化库,可以帮助我们创建各种类型的表。通过使用subplot函数和其他绘函数,我们可以轻松地绘制包含多个变量的表。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值