愿你历经千辛万苦,归来仍是少年!
Python-matplotlib制图01——双y轴图绘制
前言
1. 概述
基于Python的matplotlib库绘制双y轴图
2. 版本
2.1 山东青岛,2021年4月5日,Version 1
3. 参考资料
一、ax.twinx()方法绘制双y轴图
代码示例:
"""
1. 程序目的
(1) 学习基于matplotlib绘制双y轴图
2. 版本
2.1 山东青岛 2021年4月23日 Version 1
3. 数据
4. 参考资料
[1] matplotlib双y轴绘制及合并图例(https://www.cnblogs.com/Atanisi/p/8530693.html)
"""
# 1. 相关包的导入
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = ['SimHei'] #显示中文
plt.rcParams['axes.unicode_minus'] = False #用来正常显示负号
from matplotlib.pyplot import MultipleLocator
# 2. 创建绘图数据
month = np.arange(1,13)
precipitation = [10,15,30,40,50,80,100,120,55,45,30,10]
temperature = [-15,-10,5,15,20,27,35,30,26,15,5,-10]
# 3. 双y轴图绘制
fig = plt.figure(figsize=(5,3),dpi=600) # 创建绘图窗口
# 3.1 降水
ax_pre = fig.add_subplot(111)
pre_bar = ax_pre.bar(month,precipitation,
color='blue',
label='降水')
fontdict1 = {'size':11,'color':'k','weight':'normal','family':'SimHei'}
ax_pre.set_ylabel('降水(mm)',fontdict=fontdict1,labelpad=0)
ax_pre.set_xlabel('月')
# 3.2 温度
ax_tem = ax_pre.twinx() # 共用x轴
tem_line = ax_tem.plot(month,temperature,marker='o',
markersize=3,color='r',linewidth=1,
label='温度')
ax_tem.set_ylabel('温度(℃)',fontdict=fontdict1,labelpad=0)
# 添加图例
fig.legend(loc=0,bbox_to_anchor=(1,1), bbox_transform=ax_pre.transAxes)
# 4. 制图结果保存
plt.savefig('PreTas.jpg',width=5,height=3,dpi=600,bbox_inches='tight')
制图结果如下: