首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >具有Twinx矩阵库的多个Y轴

具有Twinx矩阵库的多个Y轴
EN

Stack Overflow用户
提问于 2018-09-01 09:17:01
回答 1查看 3.6K关注 0票数 0

问题:如何在Pandas & matplotlib中应用孪生

我知道这个问题已经被人们多次回答了,但我就是无法理解它。任何帮助都将不胜感激!基本上,我有这个密码。但是我需要用x轴来表示年份,用二级y轴来表示不同汽车品牌的需求。

代码语言:javascript
复制
import pandas as pd
import csv
df3=pd.read_csv('comparison.csv'
df3.plot()
plt.legend (loc='best', fontsize=15)
plt.title('Comparison of Demand of Car Brand with COE 
prices ',fontsize = 15)
plt.xlabel('Year',fontsize=12)
plt.ylabel('Average Premium',fontsize=12)
plt.show()

在将代码写入新文件之后。然后,我将继续读取该文件,并将其转换为包含多个数据列的行图。

我现在要说的是:

我想让它看起来像:

这是我的csv文件

代码语言:javascript
复制
Year,Average Premium,Mercedes Benz,Nissan,Honda,Toyota,Mazda
2010,22931.0,4705.0,1798.0,3272.0,6927.0,1243.0
2011,35283.0,4166.0,800.0,942.0,3562.0,265.0
2012,48676.0,4705.0,1798.0,3272.0,6927.0,1243.0
2013,54672.0,3871.0,623.0,423.0,3459.0,635.0
2014,49301.0,4651.0,1829.0,1541.0,5431.0,1967.0
2015,47499.0,5408.0,5574.0,7916.0,12171.0,5287.0
2016,39158.0,6444.0,7028.0,19349.0,18491.0,7091.0
2017,37223.0,7976.0,5241.0,16013.0,19133.0,8509.0

我知道这是一个示例代码,但我需要帮助实现它。

代码语言:javascript
复制
fig, ax1 = plt.subplots()
t = np.arange(2010,2018,1)
ax1.plot(t, s1, 'b-')
ax1.set_xlabel('time (s)')
ax1.set_ylabel('rh', color='b')
ax1.tick_params('y', colors='b')

ax2 = ax1.twinx()
s2 = [1,2,4,9,10]
ax2.plot(t, s2, 'r.')
ax2.set_ylabel('tmp', color='r')
ax2.tick_params('y', colors='r')
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-09-03 08:48:48

以下是你如何做你想要达到的目标。我创建了两个轴ax1ax2 = ax1.twinx(),然后使用熊猫的plot函数绘制列的子集(使用y=[<list of columns>]),但导入部分是告诉熊猫在绘图时使用哪个轴,因此df.plot(..., ax=ax1)df.plot(..., ax=ax2)。剩下的代码只是装饰品。

代码语言:javascript
复制
fig, ax1 = plt.subplots()
ax2 = ax1.twinx()
df3.plot(x='Year',y='Average Premium', ax=ax1)
df3.plot(x='Year',y=['Mercedes Benz','Nissan','Honda','Toyota','Mazda'], ax=ax2)
ax1.set_title('Comparison of Demand of Car Brand with COE prices ',fontsize = 15)
ax1.set_xlabel('Year',fontsize=12)
ax1.set_ylabel('Average Premium', fontsize=12)
ax2.set_ylabel('2nd axis label',  fontsize=12)
plt.tight_layout()
plt.show()
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52126702

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档