2015-02-23 36 views
2

我有一个名为“original_filtered_df”的数据框。我试图绘制一段时间内(“日期”)两列(“颜色”,“尺寸”),另外两列(“重量”,“高度”)的每对可能值。将图例对应于Pandas/PyPlot中的y值

以下代码正确绘制。它创建了多个图,每个图都有一个可能的值(“颜色”,“尺寸”)。每个曲线包含两行,一个用于“WEIGHT”,另一个用于“HEIGHT”。但是,图例名称不会说“重量”或“高度”。他们都说“日期”(x轴)。我如何强制图例参考y轴数据,以便名称会显示“重量”和“高度”?

import matplotlib.pyplot as plt 

for combo in original_filtered_df.groupby(['COLOR', 'SIZE'], as_index=True): 
    color = combo[0][0] 
    size = combo[0][1] 
    filtered_df = original_filtered_df[(original_filtered_df["COLOR"] == color) & (original_filtered_df["SIZE"] == size)] 
    plt.figure() 
    filtered_df.plot(x="DATE", y="WEIGHT", color=(1,0,0)) 
    filtered_df.plot(x="DATE", y="HEIGHT", color=(0,1,0)) 

    #patches, labels = ax.get_legend_handles_labels() 
    #ax.legend(patches, labels, loc='center left', bbox_to_anchor=(1, 0.5)) 

    plt.legend(loc='center left', bbox_to_anchor=(1, 0.5)) 
    plt.title("COLOR " + str(color) + ", SIZE " + size) 

回答

1

我不知道为什么图例标签被默认为X轴,但我解决了这个通过执行下列打印时:

filtered_df.plot(x="DATE", y="WEIGHT", color=(1,0,0), label="WEIGHT") 
filtered_df.plot(x="DATE", y="HEIGHT", color=(0,1,0), label="HEIGHT") 

这样,传说功能使用了正确的Y轴标签。