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的web框架中配置app的教程
Apr 30 Python
Python的time模块中的常用方法整理
Jun 18 Python
Python如何实现守护进程的方法示例
Feb 08 Python
python定向爬取淘宝商品价格
Feb 27 Python
selenium + python 获取table数据的示例讲解
Oct 13 Python
python实现停车管理系统
Nov 30 Python
django中forms组件的使用与注意
Jul 08 Python
pytorch-神经网络拟合曲线实例
Jan 15 Python
python中tab键是什么意思
Jun 18 Python
使用jupyter notebook运行python和R的步骤
Aug 13 Python
Python爬取网页信息的示例
Sep 24 Python
Python调用Redis的示例代码
Nov 24 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
PHP 身份证号验证函数
2009/05/07 PHP
php面象对象数据库操作类实例
2014/12/02 PHP
ThinkPHP采用原生query实现关联查询left join实例
2014/12/02 PHP
PHP实现的sqlite数据库连接类
2014/12/12 PHP
laravel5.2实现区分前后台用户登录的方法
2017/01/11 PHP
PHP基于ICU扩展intl快速实现汉字转拼音及按拼音首字母分组排序的方法
2017/05/03 PHP
php判断某个方法是否存在函数function_exists (),method_exists()与is_callable()区别与用法解析
2020/04/20 PHP
jquery.pagination.js 无刷新分页实现步骤分享
2012/05/23 Javascript
jquery text(),val(),html()方法区别总结
2013/11/04 Javascript
javascript将数字转换整数金额大写的方法
2015/01/27 Javascript
使用Angular和Nodejs、socket.io搭建聊天室及多人聊天室
2015/08/21 NodeJs
win7下安装配置node.js+express开发环境
2015/12/06 Javascript
jQuery实现批量判断表单中文本框非空的方法(2种方法)
2015/12/09 Javascript
jQuery搜索框效果实现代码(百度关键词联想)
2021/02/25 Javascript
ES6中的数组扩展方法
2016/08/26 Javascript
整理关于Bootstrap列表组的慕课笔记
2017/03/29 Javascript
vue中各组件之间传递数据的方法示例
2017/07/27 Javascript
JavaScript继承定义与用法实践分析
2018/05/28 Javascript
vue3.0 CLI - 2.1 -  component 组件入门教程
2018/09/14 Javascript
微信小程序bindtap事件与冒泡阻止详解
2019/08/08 Javascript
[27:53]2014 DOTA2华西杯精英邀请赛 5 24 NewBee VS iG
2014/05/26 DOTA
[01:11:35]Liquid vs LGD 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
python模块之time模块(实例讲解)
2017/09/13 Python
Python登录并获取CSDN博客所有文章列表代码实例
2017/12/28 Python
点球小游戏python脚本
2018/05/22 Python
Flask核心机制之上下文源码剖析
2018/12/25 Python
Python实现的微信支付方式总结【三种方式】
2019/04/13 Python
python游戏开发之视频转彩色字符动画
2019/04/26 Python
python selenium xpath定位操作
2020/09/01 Python
Under Armour安德玛英国官网:美国高端运动科技品牌
2018/09/17 全球购物
MySQL面试题目集锦
2016/04/14 面试题
大学生个人自我鉴定
2013/12/03 职场文书
社区爱国卫生月活动总结
2014/06/30 职场文书
党员群众路线学习心得体会
2014/11/04 职场文书
2015年119消防宣传日活动总结
2015/03/24 职场文书
Java中try catch处理异常示例
2021/12/06 Java/Android