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 相关文章推荐
Python中unittest用法实例
Sep 25 Python
Python中join和split用法实例
Apr 14 Python
使用Python脚本将绝对url替换为相对url的教程
Apr 24 Python
python3基于TCP实现CS架构文件传输
Jul 28 Python
解决pycharm安装后代码区不能编辑的问题
Oct 28 Python
Python从列表推导到zip()函数的5种技巧总结
Oct 23 Python
Python socket实现的文件下载器功能示例
Nov 15 Python
Python-openCV读RGB通道图实例
Jan 17 Python
通过实例解析Python return运行原理
Mar 04 Python
在jupyter notebook中调用.ipynb文件方式
Apr 14 Python
IDLE下Python文件编辑和运行操作
Apr 25 Python
python中温度单位转换的实例方法
Dec 27 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
Eclipse中php插件安装及Xdebug配置的使用详解
2013/04/25 PHP
PHP.ini中配置屏蔽错误信息显示和保存错误日志的例子
2014/05/12 PHP
[原创]后缀就扩展名为js的文件是什么文件
2007/12/06 Javascript
jquery 选择器部分整理
2009/10/28 Javascript
Js setInterval与setTimeout(定时执行与循环执行)的代码(可以传入参数)
2010/06/11 Javascript
采用call方式实现js继承
2014/05/20 Javascript
JSON取值前判断
2014/12/23 Javascript
深入浅析javascript立即执行函数
2015/10/23 Javascript
JavaScript:Array类型全面解析
2016/05/19 Javascript
AngularJs表单验证实例详解
2016/05/30 Javascript
ECMAScript6快速入手攻略
2016/07/18 Javascript
js实现Tab选项卡切换效果
2020/07/17 Javascript
inquirer.js一个用户与命令行交互的工具详解
2019/05/18 Javascript
Vue基础学习之项目整合及优化
2019/06/02 Javascript
谈谈我在vue-cli3中用预渲染遇到的坑
2020/04/22 Javascript
详细分析Node.js 多进程
2020/06/22 Javascript
微信小程序:报错(in promise) MiniProgramError
2020/10/30 Javascript
解决vue 使用axios.all()方法发起多个请求控制台报错的问题
2020/11/09 Javascript
[03:57]2016完美“圣”典风云人物:rOtk专访
2016/12/09 DOTA
python 实现插入排序算法
2012/06/05 Python
用Python进行简单图像识别(验证码)
2018/01/19 Python
tensorflow实现图像的裁剪和填充方法
2018/07/27 Python
python3 property装饰器实现原理与用法示例
2019/05/15 Python
详解python实现数据归一化处理的方式:(0,1)标准化
2019/07/17 Python
django 信号调度机制详解
2019/07/19 Python
python图片二值化提高识别率代码实例
2019/08/24 Python
Python面向对象封装操作案例详解
2019/12/31 Python
你可能不知道的Python 技巧小结
2020/01/29 Python
基于 HTML5 Canvas实现 的交互式地铁线路图
2018/03/05 HTML / CSS
警察正风肃纪剖析材料
2014/10/16 职场文书
房屋财产继承协议书范本
2014/11/03 职场文书
2015年党员公开承诺书范文
2015/01/22 职场文书
培训通知
2015/04/17 职场文书
结婚堵门保证书
2015/05/08 职场文书
国庆节主题班会
2015/08/15 职场文书
启迪人心的励志语录:脾气永远不要大于本事
2020/01/02 职场文书