【问题标题】:Use dataframe column names as labels in pylab.plot在 pylab.plot 中使用数据框列名作为标签
【发布时间】:2016-01-06 09:57:52
【问题描述】:

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

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

但是得到了这个:

我希望使用pylabpylab 将蓝线标记为 a,将绿色标记为 b,而不是标记为 ['a','b']。

【问题讨论】:

    标签: python pandas matplotlib dataframe labels


    【解决方案1】:

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

    这是一个例子,我在这种情况下使用了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()
    

    编辑

    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()
    

    【讨论】:

    • df.plot() 如您所说,正确显示标签。 plot(df) 是我正在做的,但没有。似乎 plot(...) 调用的 'label=' 部分应该采用列表或系列或其他内容并根据其应用值,但我不知道如何。
    • 问题部分是关于在 pylab.plot 中设置标签,我仍然不知道该怎么做。如果其他人试图做同样的事情,而我接受这个答案,我认为这是不对的。你是说答案是“你不能用 pylab.plot 做到这一点,你必须使用 df.plot?
    • @lem 更好的是 plt.legend(df.columns.values,loc='upper left')。这就是我所缺少的。谢谢。
    猜你喜欢
    • 1970-01-01
    • 2020-02-07
    • 1970-01-01
    • 2014-08-18
    • 1970-01-01
    • 2017-04-19
    • 1970-01-01
    • 2023-03-31
    • 1970-01-01
    相关资源
    最近更新 更多