Python matplotlib 绘制双Y轴曲线图的示例代码


Posted in Python onJune 12, 2020

Matplotlib简介

Matplotlib是非常强大的python画图工具
Matplotlib可以画图线图、散点图、等高线图、条形图、柱形图、3D图形、图形动画等。

Matplotlib安装

pip3 install matplotlib#python3

双X轴的
可以理解为共享y轴

ax1=ax.twiny()
ax1=plt.twiny()

双Y轴的
可以理解为共享x轴

ax1=ax.twinx()
ax1=plt.twinx()

自动生成一个例子

x = np.arange(0., np.e, 0.01)
y1 = np.exp(-x)
y2 = np.log(x)
fig = plt.figure()
ax1 = fig.add_subplot(111)
ax1.plot(x, y1)
ax1.set_ylabel('Y values for exp(-x)')
ax1.set_title("Double Y axis")
ax2 = ax1.twinx() # this is the important function
ax2.plot(x, y2, 'r')
ax2.set_xlim([0, np.e])
ax2.set_ylabel('Y values for ln(x)')
ax2.set_xlabel('Same X for both exp(-x) and ln(x)')
plt.show()

Python matplotlib 绘制双Y轴曲线图的示例代码

例子:画了一个双y轴坐标的图表

# -*- coding: utf-8 -*-

#调用包
import pandas as pd 
import numpy as np 
import matplotlib.pyplot as plt

#读取文件
io=r'E:\工作\专项\白骑士数据验证\白骑士数据汇总表.xlsx'
yinka=pd.read_excel(io,sheet_name='YINKA_sample')
bqs=pd.read_excel(io,sheet_name='BQS_result')
yinka_bqs=pd.merge(yinka,bqs,left_on='no',right_on='no',how='inner')

#绘图
fig,ax=plt.subplots(1,1,figsize=(20, 300))
ax.grid()     #画网格
x=total.index-1     
#为什么+1,因为对不齐,所以使用时根据情况编写
y=total['var1']
ax.plot(x,y,'k--o',alpha=0.5) #画折线图
ax.set_xlim([0,16])    
#设置x轴的取值范围   这个可以让x轴与y轴的起点一致
ax.set_xticks(np.arange(0,16)) #设置x轴的刻度范围
ax.set_xticklabels(np.arange(0,16),rotation=30) 
#设置x轴上的刻度

ax.set_ylim([0,1800])   #同理y轴数值范围
ax.set_yticks(range(0,1800,300))#设置y轴的刻度范围
ax.set_yticklabels(range(0,1800,300))#设置y轴上的刻度

ax.legend(loc='upper left')  #设置ax子图的图例(legend)
#新知识点
for a,b in zip(x,y):   #设置注释 zip函数是对应关系
 ax.text(a,b,b,ha='center',va='bottom',fontsize=15)
#重点
ax1=ax.twinx()     
#这个是能够实现双y轴的重点,共享x轴;还有一种是双x轴的图表换成ax.twiny()
y1=total[['adopt','reject']]
y1.plot.bar(ax=ax1,alpha=0.5) 
#这个是matplotlib中条形图的绘制方法,如果使用seaborn绘制方法使用sns.barplot()函数,需要调整很多细节
#这里只设置了y轴的刻度,x轴的刻度设置了一下偶尔会出现失败,值得注意的是要将数据对齐
ax1.set_ylim([0,1800])
ax1.set_yticks(range(0,1800,300))
ax1.set_yticklabels(range(0,1800,300))
for e,f,w in zip(data_.index,data_[0],data_[1]):
 ax1.text(e-1,f,f,ha='center',va='bottom',fontsize=10,color='b')
 ax1.text(e-1,w,w,ha='center',va='bottom',fontsize=10,color='g')
ax1.legend(loc='best')
plt.show()   #养成习惯这个最好写一下#
#保存图片
plt.savefig('path') #图表输出到本地

结果显示:

Python matplotlib 绘制双Y轴曲线图的示例代码

总结

到此这篇关于Python matplotlib 绘制双Y轴曲线图的文章就介绍到这了,更多相关Python matplotlib 曲线图内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
详解duck typing鸭子类型程序设计与Python的实现示例
Jun 03 Python
Python中使用haystack实现django全文检索搜索引擎功能
Aug 26 Python
Python聊天室程序(基础版)
Apr 01 Python
PyCharm设置SSH远程调试的方法
Jul 17 Python
python一行sql太长折成多行并且有多个参数的方法
Jul 19 Python
Face++ API实现手势识别系统设计
Nov 21 Python
利用Pycharm断点调试Python程序的方法
Nov 29 Python
Django使用中间件解决前后端同源策略问题
Sep 02 Python
Python ADF 单位根检验 如何查看结果的实现
Jun 03 Python
python 批量将中文名转换为拼音
Feb 07 Python
python 实现有道翻译功能
Feb 26 Python
pycharm安装深度学习pytorch的d2l包失败问题解决
Mar 25 Python
keras的siamese(孪生网络)实现案例
Jun 12 #Python
基于python实现模拟数据结构模型
Jun 12 #Python
Python-for循环的内部机制
Jun 12 #Python
Python Scrapy图片爬取原理及代码实例
Jun 12 #Python
Python Scrapy多页数据爬取实现过程解析
Jun 12 #Python
Selenium自动化测试工具使用方法汇总
Jun 12 #Python
Python使用socketServer包搭建简易服务器过程详解
Jun 12 #Python
You might like
第十一节 重载 [11]
2006/10/09 PHP
php图片上传存储源码并且可以预览
2011/08/26 PHP
php常用的安全过滤函数集锦
2014/10/09 PHP
php检测图片主要颜色的方法
2015/07/01 PHP
PHP微信API接口类
2016/08/22 PHP
Laravel实现表单提交
2017/05/07 PHP
CI框架附属类用法分析
2018/12/26 PHP
TP5框架使用QueryList采集框架爬小说操作示例
2020/03/26 PHP
js 限制数字 js限制输入实现代码
2012/12/04 Javascript
基于jquery自定义的漂亮单选按钮RadioButton
2013/11/19 Javascript
js unicode 编码解析关于数据转换为中文的两种方法
2014/04/21 Javascript
js中函数声明与函数表达式
2015/06/03 Javascript
多个js毫秒倒计时同时进行效果
2016/01/05 Javascript
jQuery绑定事件监听bind和移除事件监听unbind用法实例详解
2016/01/19 Javascript
JavaScript根据CSS的Media Queries来判断浏览设备的方法
2016/05/10 Javascript
js仿百度切换皮肤功能(html+css)
2016/07/10 Javascript
JS排序之快速排序详解
2017/04/08 Javascript
Js中async/await的执行顺序详解
2017/09/22 Javascript
详解微信小程序中的页面代码中的模板的封装
2017/10/12 Javascript
vue-router 组件复用问题详解
2018/01/22 Javascript
Vue自定义过滤器格式化数字三位加一逗号实现代码
2018/03/23 Javascript
简化vuex的状态管理方案的方法
2018/06/02 Javascript
Django JWT Token RestfulAPI用户认证详解
2019/01/23 Python
python是否适合网页编程详解
2019/10/04 Python
ansible动态Inventory主机清单配置遇到的坑
2020/01/19 Python
python计算导数并绘图的实例
2020/02/29 Python
python speech模块的使用方法
2020/09/09 Python
python自动化发送邮件实例讲解
2021/01/04 Python
matplotlib实现数据实时刷新的示例代码
2021/01/05 Python
职专应届生求职信
2013/11/16 职场文书
数控专业毕业生自荐信范文
2014/03/04 职场文书
公司承诺书格式
2014/05/21 职场文书
2014年青年教师工作总结
2014/12/17 职场文书
党员活动总结
2015/02/04 职场文书
2016年推广普通话宣传周活动总结
2016/04/06 职场文书
如何书写先进事迹材料?
2019/07/02 职场文书