在一个 Dataframe 中用python绘制多行图(每个类别一行)

pprl5pva  于 2021-09-29  发布在  Java
关注(0)|答案(1)|浏览(375)

我有一个数据框,我想在其中创建一个线图。我想要一行每一类和在 x 我要日期,在 y 12公斤重。我不知道如何把标签上的行,使不同的颜色每一类。
到目前为止,我已经尝试:

plt.plot(df['date'],datatoplot['12MKG'])

日期类别12Mkg202001Cat10.983695620002Cat10.983695620003Cat10.9831461202004cat10.97206706202005cat10.9698492202006cat10.9763033202007Cat10.978723420008Cat10.98106202009Cat10.9825784202010cat10.981651372011Cat10.976811620012Cat10.966664202101Cat10.965517202102102Cat10.95214105Cat10.9372197420210.9487105Cat10.89202106cat10.9189189202107cat10.9144603202001cat20.3118644202002cat20.3006993202003cat20.3017544202004cat20.29433963202005cat20.3030303202006cat20.30483273202007cat20.33206108202008cat20.337301582009CAT20.344202010cat20.340517252002012CAT20.3224299202101cat20.3302752420220220.31877320210320.2933884589202105cat20.2804878202106cat20.2804878202107cat20.2631579
亲切问候,,
沃克特

6ie5vjzr

6ie5vjzr1#

您可以使用cmap为每条线获取不同的颜色,使用df.loc过滤每个类别

import matplotlib.pylab as pl
import matplotlib.pyplot as plt

labels = set(df['categorie'].values)
colors = pl.cm.jet(np.linspace(0,1,len(labels)))
for key, color in zip(labels, range(len(labels))):
    data_x = df.loc[df['categorie']==key]['date']
    data_y = df.loc[df['categorie']==key]['12MKG']
    plt.plot(data_x, data_y, color=colors[color], label=key)
plt.legend()
plt.show()

有关颜色贴图的更多详细信息,请参见此处

相关问题