【问题标题】:Legend label is not adding for multiple plots in python图例标签没有为python中的多个图添加
【发布时间】:2017-08-13 22:22:33
【问题描述】:

我想阅读 5 个csv 文件。我有以下函数分别绘制图形,我想为每个图添加一个图例。但是,我收到此警告,即使我在函数中添加了标签,也没有将图例添加到绘图中。

UserWarning: No labelled objects found. Use label='...' kwarg on individual plots. warnings.warn("No labelled objects found. "

import pandas as pd
import matplotlib.pyplot as plt


df1 = pd.read_csv('test1.csv')
df2 = pd.read_csv('test2.csv')
df3 = pd.read_csv('test3.csv')
df4 = pd.read_csv('test4.csv')
df5 = pd.read_csv('test5.csv')


def runplot(df, title, label):   
    rows, cols = df.shape

    fig, ax = plt.subplots()
    ax.plot(df['price'].values, df['cost'].values)
    ax.legend()


    plt.title(title)
    plt.annotate('test!', 
                 xy=(rows, df.ix[rows-1,'cost']),  
                 xycoords='data',
                 xytext=(-30,30),
                 textcoords='offset points',
                 arrowprops=dict(arrowstyle="->"))


runplot(df1, 'test1.csv', label='test1')
runplot(df2, 'test2.csv', label='test2')
runplot(df3, 'test3.csv', label='test3')
runplot(df4, 'test4.csv', label='test4')
runplot(df5, 'test5.csv', label='test5')

我们怎样才能让图例显示在情节中?

【问题讨论】:

    标签: python matplotlib legend


    【解决方案1】:

    绘图时设置lebel参数并使用handle制作图例。试着这样写:

    def runplot(df, title, label):   
        rows, cols = df.shape
    
        fig, ax = plt.subplots()
        line1, = ax.plot(df['price'].values, df['cost'].values, label=label)
        ax.legend(handles=[line1])
    
        plt.title(title)
        plt.annotate('test!', 
                     xy=(rows, df.ix[rows-1,'cost']),  
                     xycoords='data',
                     xytext=(-30,30),
                     textcoords='offset points',
                     arrowprops=dict(arrowstyle="->"))
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-01-22
      • 2021-05-26
      • 2016-07-09
      • 1970-01-01
      • 2017-08-30
      • 2014-04-12
      • 1970-01-01
      • 2016-06-11
      相关资源
      最近更新 更多