2017-08-13 11 views
0

私は5 csvファイルを読みたいと思っていました。私はグラフを別々にプロットする以下の関数を持っています。そして、私は各プロットに凡例を追加したいと思っていました。しかし、私のラベルに関数が追加されていても、凡例がプロットに追加されていないという警告が表示されています。凡例のラベルは、複数のプロットをPythonで追加していません

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

どのように我々は、プロットに伝説のショーを行うことができますか?

答えて

0

プロット時に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="->")) 
関連する問題