[置顶] python绘制双Y轴时间序列数据曲线图
2018-03-09 15:56
681 查看
花了一天摸索出来的,在python上面画双Y轴的时间序列数据的曲线图。网上大多数绘制双Y轴曲线图的不是时间序列曲线图。我这里用到两个包,pandas和matplotlib.pyplot包。画时间序列的时候,用pandas包的method,结合plt包使用,这个就需要我的数据以pd.Series或者pd.DataFrame形式保存。
series 或者 dataframe 可能需要有日期作为index,才能显示到横轴上面。#绘制时间序列数据的双Y轴图
import pandas as pd
import matplotlib.pyplot as plt
mpl.rcParams['axes.unicode_minus']=False #用来正常显示负号 #有效
mpl.rcParams['font.sans-serif']=['SimHei'] #用来正常显示中文标签 #interactive mode(选中点F9)有效,script mode(三角形run)无效
#假设我们有三个series,series1的数据范围和series2、series3的数据范围差异较大,或者scale差异较大,需要双Y轴去画。
fig,left_axis=plt.subplots(figsize = (26,16))
#建立一个大型的空白图。
#这是用了plt包的method。
series1.plot(color = 'red')
#画第一条时间序列数据,左轴。
#这个是用了pd包的method plot。
plt.legend(labels = [u"series1曲线名字_左轴"], loc = 'upper left', fontsize=16)
#加上左轴曲线画的时间序列名称
#曲线名字后面加上左轴,表示该颜色曲线刻度在左边。
#左轴的legend放在左边,下面右轴的legend可以放在右边。不要放在同一个位置就可以。可以自己安排。
#开始画右轴,画两条曲线
right_axis = left_axis.twinx()
series2.plot(color = 'blue')
series3.plot(color ='magenta' )
label = [u"series2曲线名字_右轴", u"series3曲线名字_右轴"]
plt.legend(label, loc = 'upper right', fontsize =16, ncol = 2)
plt.title(u"显示在图片上方的图片名称", fontsize =18)
plt.savefig(u"保存在本地的图片文件的名称.png")
plt.close()
series 或者 dataframe 可能需要有日期作为index,才能显示到横轴上面。#绘制时间序列数据的双Y轴图
import pandas as pd
import matplotlib.pyplot as plt
mpl.rcParams['axes.unicode_minus']=False #用来正常显示负号 #有效
mpl.rcParams['font.sans-serif']=['SimHei'] #用来正常显示中文标签 #interactive mode(选中点F9)有效,script mode(三角形run)无效
#假设我们有三个series,series1的数据范围和series2、series3的数据范围差异较大,或者scale差异较大,需要双Y轴去画。
fig,left_axis=plt.subplots(figsize = (26,16))
#建立一个大型的空白图。
#这是用了plt包的method。
series1.plot(color = 'red')
#画第一条时间序列数据,左轴。
#这个是用了pd包的method plot。
plt.legend(labels = [u"series1曲线名字_左轴"], loc = 'upper left', fontsize=16)
#加上左轴曲线画的时间序列名称
#曲线名字后面加上左轴,表示该颜色曲线刻度在左边。
#左轴的legend放在左边,下面右轴的legend可以放在右边。不要放在同一个位置就可以。可以自己安排。
#开始画右轴,画两条曲线
right_axis = left_axis.twinx()
series2.plot(color = 'blue')
series3.plot(color ='magenta' )
label = [u"series2曲线名字_右轴", u"series3曲线名字_右轴"]
plt.legend(label, loc = 'upper right', fontsize =16, ncol = 2)
plt.title(u"显示在图片上方的图片名称", fontsize =18)
plt.savefig(u"保存在本地的图片文件的名称.png")
plt.close()
相关文章推荐
- Python绘制时间序列数据的时序图、自相关图和偏自相关图
- 利用python进行数据分析-时间序列1
- 2017 Top 15 Python 数据科学类库;时间序列异常点检测;如何加入开源项目
- 6、python时间序列数据分析
- 人工智能:python 实现 第十一章,从时间序列数据中提取统计信息
- Python 收集Twitter时间序列数据
- 利用Python进行数据分析——时间序列[十](1) .
- Python+pandas实现时间序列数据扩展案例一则
- Python 数据分析(二 本实验将学习利用 Python 数据聚合与分组运算,时间序列,金融与经济数据应用等相关知识
- Python数据分析——时间序列
- [置顶] Python时间序列案例分析实战--奶牛产奶量预测
- Python 数据分析(二 本实验将学习利用 Python 数据聚合与分组运算,时间序列,金融与经济数据应用等相关知识
- 利用python进行数据分析-时间序列3
- python、matplotlib画股票分时图、时间序列图的时候如何跳过没有数据的区域
- python数据分析之:时间序列一
- Python数据分析与机器学习-Python时间序列分析
- 利用python进行数据分析-时间序列2
- Python数据分析基础(八)——时间序列
- Python 收集Twitter时间序列数据
- Pandas 时间序列数据绘制X轴主要刻度和次要刻度