pandas+matploblib画图 叠加两张图 您所在的位置:网站首页 花瓣网图片下载png格式的图片 pandas+matploblib画图 叠加两张图

pandas+matploblib画图 叠加两张图

#pandas+matploblib画图 叠加两张图| 来源: 网络整理| 查看: 265

《python数据分析与挖掘实战》原书上的例子:

import matplotlib.pyplot as plt import numpy as np import pandas as pd plt.rcParams['font.sans-serif'] = ['SimHei'] #用来正常显示中文标签 plt.rcParams['axes.unicode_minus'] = False #用来正常显示负号 x=pd.Series(np.exp(np.arange(20))) x.plot(label=u'原始数据图',legend=True) plt.grid(True) plt.show() x.plot(logy=True,label=u'对数数据图',legend=True) #这个函数里的参数logy=True时,是以10为底的 plt.grid(True) plt.show()

效果图如下:

现在想把它俩画在一张图上,是可以画一起的,但是,图例没法显示出来,最后查了官网的资料,需要使用using-proxy-artist ,代码如下:

import matplotlib.lines as mlines import matplotlib.pyplot as plt import numpy as np import pandas as pd plt.rcParams['font.sans-serif'] = ['SimHei'] #用来正常显示中文标签 plt.rcParams['axes.unicode_minus'] = False #用来正常显示负号 plt.figure() x=pd.Series(np.exp(np.arange(20))) p1=x.plot(label=u'原始数据图') plt.ylabel('正常坐标') x2=pd.Series(np.log10(x)) #np.log()是以e为底的 p2=x2.plot(secondary_y=True,style='--',color='r',) plt.yticks(plt.yticks()[0],['$10^%d$'%w for w in range(len(plt.yticks()[0]))]) #x.plot(logy=True,label=u'对数数据图',legend=True,secondary_y=True,style='--',color='r') #这里不能用这个,因为它会同时改变图中的x坐标轴和y坐标轴 plt.ylabel('指数坐标') blue_line = mlines.Line2D([],[],linestyle='-',color='blue',markersize=2, label=u'原始数据图') red_line= mlines.Line2D([],[],linestyle='--',color='red',markersize=2, label=u'对数数据图') plt.legend(handles=[blue_line,red_line],loc='upper left') plt.grid(True) plt.show()

效果如下:



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有