使用数据框列名称作为pylab.plot中的标签

TPM*_*TPM 2 python matplotlib labels dataframe pandas

我想在一个数据框中绘制数据,并将列标题作为标签。我尝试了这个:

dfm.columns = ['a','b']
plot(dfm.cumsum(), label= dfm.columns.values)
legend(loc='upper left')
Run Code Online (Sandbox Code Playgroud)

但是得到这个:

在此处输入图片说明

而不是将两行都标记为['a','b'],我希望蓝线是a,绿色是b,使用 pylab

Leb*_*Leb 5

我认为这是您在未显示的代码中设置数据的方式。

这是我df.plot()在这种情况下使用的示例。

import pandas as pd
import random
import matplotlib.pyplot as plt

x = [random.randint(10,20) for r in range(100)]
y = [random.randint(0,10) for r in range(100)]

df = pd.DataFrame([x,y]).T #T for transpose

df.columns=['a','b']

df.plot(kind='line')

plt.legend(loc='upper left')

plt.show()
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

编辑

pylab

import pandas as pd
import random
import matplotlib.pylab as plt

x = [random.randint(10,20) for r in range(100)]
y = [random.randint(0,10) for r in range(100)]

df = pd.DataFrame([x,y]).T

plt.plot(df)

plt.legend(['a','b'],loc='upper left')

plt.show()
Run Code Online (Sandbox Code Playgroud)

  • @lem 更好的是 plt.legend(df.columns.values,loc='upper left')。这就是我所缺少的。谢谢。 (3认同)