同一坐标系下包含柱形图和折线图

需求:

请用一张独立画布,柱形图和折线图融合在同一个坐标系展示表1数据

解释:

通过调用twinx方法创建一个新的坐标系实例,这个新的坐标系实例的x轴跟传入坐标系实例的x轴完全共享,但跟y轴是完全独立,且位于右侧。

共享y轴把twinxx改为y

使用pyplot 的subplots(函数可以在规划好的所有区域中一次绘制多个子图。subplots()函数的语法格式如下:
subplots (nrows=l, ncols-1, sharex-Palse, sharey-Falce, squeeze-True, subplot_kw=None, gridspec_kw=None,**fig_kw)

该函数常用参数的含义如下。
·nrows :表示规划区域的行数,默认为1。·ncols :表示规划区域的列数,默认为1。
· sharex,sharey :表示是否共享子图的x轴或y轴。
·squeeze :表示是否返回压缩的Axes对象数组,默认为True。当squeeze为True 时,若nrows 和 ncols均为 1,则 subplots()函数会返回一个 Axes对象;若nrows和ncols均大于1,则 subplots() 函数会返回一个Axes对象数组。当参数squeeze为False时,subplots(函数会返回一个包含Axes 对象的二维数组。
.gridspec_kw :表示用于控制区域结构属性的字典。
subplots(函数会返回一个包含两个元素的元组,其中元组的第一个元素为Figure对象
个元素为Axes对象或Axes对象数组。

运行代码:

# matplotlib中文网 https://www.matplotlib.org



%matplotlib notebook
import numpy as np
import matplotlib.pyplot as plt

plt.rcParams["font.sans-serif"] = ["SimHei"]
plt.rcParams["axes.unicode_minus"] = False

# 1.准备数据
year_x = np.arange(1, 9, 1) # X轴刻度值(1-12)

data_1 = np.array([7.40, 4.00, 5.83, 5.81, 5.16, 8.63,  # 平均气温
                     -9.13, 13.66])

data_2 = np.array([87430, 90912, 96225, 101885, 107147, 116390,  # 降水量
                               105764, 120215])

                

# 2.创建第一个坐标系实例
fig, ax = plt.subplots() # 默认为1行1列
ax.set_ylabel('诊疗量 (万人次)')
bar_ev = ax.bar(year_x, data_2, color='green', 
                tick_label=['2014年', '2015年', '2016年', '2017年',  '2018年',  '2019年',
                            '2020年', '2021年'])



# 4.创建共享x轴的第二个坐标系实例
ax_right = ax.twinx()

# 5.在第二个坐标系实例绘制折线图
line = ax_right.plot(year_x, data_1, 'mo-')
ax_right.set_ylabel(r'同比增速(%)')
plt.title("2014-2021年中国医学类医疗卫生机构诊疗量")

# 6.展示图表
plt.show()

结果展示: 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值