Благодаря ImportanceOfBeingErnest я получил то, что хотел. Вот полная подправленная версия кода, для тех, кому она может понадобиться в будущем. Я добавил legend = False, без этого val1 и val2 написаны друг на друга и выглядят грязно.
аюсь перебрать объект groupby и построить каждую группу. Но у меня есть некоторые проблемы. Может кто-нибудь сказать, пожалуйста, где я иду не так?
df = pd.DataFrame([['item1',2000,1, 2], ['item1',2001,1, 2], ['item1',2002,1, 2],
['item2',2000,1, 2], ['item2',2001,1, 2], ['item2',2002,1, 2]],
columns=['mykey', 'year','val1','val2'])
grouped = df.groupby('mykey')
for name,group in grouped:
fig = plt.figure()
ax1 = fig.add_subplot(111)
group.val1.plot.line(ax=ax1, ylim=[5,20], color='red',x=group.year)
ax1.set_ylabel('val1')
ax2 = ax1.twinx()
group.val2.plot.line(ax=ax2, ylim=[5,20], color='blue' ,x=group.year)
ax2.set_ylabel('val2')
plt.title(str(name), fontsize=15);
Кажется, я близко, но есть некоторые проблемы, где-то.
Как я могу установить столбец / ключ группы в качестве оси X, я пробовал это x = group.desiredx, но он ничего не делает.
MyKey | год | знач1 | val2
item1 | 2000 | 5 | 34
item2 | 2001 | 45 | 34
item3 | 2002 | 34 | 34
item1 | 2000 | 22 | 65
item2 | 2001 | 34 | 54
item3 | 2002 | 12 | 54
item1 | 2000 | 23 | 54
item2 | 2001 | 34 | 34
item3 | 2002 | 21 | 21