2

「original_filtered_df」という名前のデータフレームがあります。2 つの列 (「COLOR」、「SIZE」)、他の 2 つの列 (「WEIGHT」、「HEIGHT」) からの値の可能なペアごとに、時間の経過 (「DATE」) をプロットしようとしています。

以下のコードは正しくプロットされます。("COLOR", "SIZE") の 1 つの可能な値ごとに、複数のプロットを作成します。各プロットには、"WEIGHT" 用と "HEIGHT" 用の 2 つの線が含まれています。ただし、凡例の名前には「WEIGHT」または「HEIGHT」とは記載されていません。どちらも「DATE」(x 軸) と言います。名前が「WEIGHT」と「HEIGHT」になるように、凡例に 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)
4

1 に答える 1

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 軸ラベルを使用しました。

于 2015-02-23T19:56:46.460 に答える