Вопрос: Как наносить twinx с Pandas & matplotlib
Я знаю, что на этот вопрос люди отвечали несколько раз, но я просто не могу разобраться с этим. Любая помощь будет оценена! В основном у меня есть этот код. Но мне нужно, чтобы ось x показывала годы, а вторичная ось y - спрос на различные марки автомобилей.
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-файл
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
Я знаю, что это код для создания twinx в качестве примера, но мне нужна помощь в его реализации
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')