1.导入数据库
import pandas as pd
import matplotlib.pyplot as plt
import numpy as np
plt.rcParams['font.sans-serif'] = ['SimHei']
2.导入数据
path=r'path'
df = pd.read_csv(path)
x = df['date']
y1 = df['psavert']
y2 = df['unemploy']
3.绘制左侧曲线
fig,ax1 = plt.subplots(1,1,figsize = (16,7),dpi = 80)
plot_l = ax1.plot(x,y1,color = 'tab:red')
4.绘制右侧曲线
ax2 = ax1.twinx()
plot_r = ax2.plot(x,y2,color = 'tab:blue')
ax2 = ax1.twinx()函数简介:
在Matplotlib中,ax1.twinx() 方法用于创建一个共享x轴的第二个轴(ax2),这在需要在同一个图表上展示两个不同尺度或度量的数据时非常有用。这种方法常用于创建双y轴图表,其中一个轴显示左侧y轴的数据,另一个轴显示右侧y轴的数据。以下是使用 ax1.twinx() 方法创建双y轴图表的基本步骤:
- 创建主轴:首先,创建一个主轴(ax1),并在其上绘制数据。
- 创建第二个轴:使用 ax1.twinx() 方法创建第二个轴(ax2),这个轴将共享 ax1 的x轴。
- 在第二个轴上绘制数据:在 ax2 上绘制第二组数据,通常使用不同的y轴刻度。
- 设置第二个轴的刻度和标签:为 ax2 设置合适的刻度、标签和标题。
5.设置坐标轴
ax1.set_xlabel('日期',fontsize = 16)
ax1.set_ylabel('储蓄率',color = 'tab:red',fontsize = 16)
ax1.tick_params(axis = 'y',rotation = 0,labelcolor = 'tab:red')
ax2.set_ylabel('失业人数(1000)',color = 'tab:blue',fontsize = 16)
ax2.tick_params(axis = 'y',labelcolor = 'tab:blue')
ax2.set_title('储蓄率vs失业率',fontsize = 16)
ax2.set_xticks(np.arange(0,len(x),60))
ax2.set_xticklabels(x[::60],rotation = 90,fontdict = {'fontsize':10})
6.添加图例
plt.legend([plot_l[0],plot_r[0]],['储蓄率','失业人数'],
frameon = False,
framealpha = 1,
ncol = 2,
shadow = True,
borderpad = 1,
loc = 'upper right')
plt.show()
plt.legend() 函数简介:
plt.legend() 函数用于显示图表中的图例。图例是图表中用来解释不同数据系列的标记,通常包括线条样式、颜色和标签。以下是一些关于plt.legend()函数的关键点:
位置:可以通过位置参数(loc)来指定图例的位置。常用的位置参数包括:
“best”:自动选择最不干扰图表的位置。
“upper right”:右上角。
“upper left”:左上角。
“lower left”:左下角。
“lower right”:右下角。
“center”:中心位置。图例样式:可以通过prop参数来指定图例中文字的属性,如字体大小、颜色等。
标题:可以通过title参数来为图例添加标题。
边框:可以通过frameon参数来控制是否显示图例边框。
阴影:可以通过shadow参数来给图例添加阴影效果。
图例项:如果需要手动指定图例中的项,可以在调用绘图函数时使用label参数为每个数据系列指定标签。
输出结果展示:
完整代码
## (1)导入数据库
import pandas as pd
import matplotlib.pyplot as plt
import numpy as np
plt.rcParams['font.sans-serif'] = ['SimHei']
##(2)导入数据
path=r'D:\05工作记录\工作薄\python\Python数据分析\data\economics.csv'
df = pd.read_csv(path)
x = df['date']
y1 = df['psavert']
y2 = df['unemploy']
##(3)绘制左侧曲线
fig,ax1 = plt.subplots(1,1,figsize = (16,7),dpi = 80)
plot_l = ax1.plot(x,y1,color = 'tab:red')
## (4)绘制右侧曲线
ax2 = ax1.twinx()
plot_r = ax2.plot(x,y2,color = 'tab:blue')
## (5)设置坐标轴
ax1.set_xlabel('日期',fontsize = 16)
ax1.set_ylabel('储蓄率',color = 'tab:red',fontsize = 16)
ax1.tick_params(axis = 'y',rotation = 0,labelcolor = 'tab:red')
ax2.set_ylabel('失业人数(1000)',color = 'tab:blue',fontsize = 16)
ax2.tick_params(axis = 'y',labelcolor = 'tab:blue')
ax2.set_title('储蓄率vs失业率',fontsize = 16)
ax2.set_xticks(np.arange(0,len(x),60))
ax2.set_xticklabels(x[::60],rotation = 90,fontdict = {'fontsize':10})
##(6)添加图例
plt.legend([plot_l[0],plot_r[0]],['储蓄率','失业人数'],
frameon = False,
framealpha = 1,
ncol = 2,
shadow = True,
borderpad = 1,
loc = 'upper right')
plt.show()
说明:该案例来源于《Python数据分析》
1.本站内容仅供参考,不作为任何法律依据。用户在使用本站内容时,应自行判断其真实性、准确性和完整性,并承担相应风险。
2.本站部分内容来源于互联网,仅用于交流学习研究知识,若侵犯了您的合法权益,请及时邮件或站内私信与本站联系,我们将尽快予以处理。
3.本文采用知识共享 署名4.0国际许可协议 [BY-NC-SA] 进行授权
4.根据《计算机软件保护条例》第十七条规定“为了学习和研究软件内含的设计思想和原理,通过安装、显示、传输或者存储软件等方式使用软件的,可以不经软件著作权人许可,不向其支付报酬。”您需知晓本站所有内容资源均来源于网络,仅供用户交流学习与研究使用,版权归属原版权方所有,版权争议与本站无关,用户本人下载后不能用作商业或非法用途,需在24个小时之内从您的电脑中彻底删除上述内容,否则后果均由用户承担责任;如果您访问和下载此文件,表示您同意只将此文件用于参考、学习而非其他用途,否则一切后果请您自行承担,如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。
5.本站是非经营性个人站点,所有软件信息均来自网络,所有资源仅供学习参考研究目的,并不贩卖软件,不存在任何商业目的及用途
暂无评论内容