pandas和matplotlib:将两个图组合成一个图例项

时间:2016-04-10 16:30:08

标签: python pandas matplotlib

我有以下代码:

[Test()]
public void TestCase()
{
    var service = new ExtendedService();
}

它创建了以下图:

plot

我想要相同的情节,但是,在传奇中,我想要"下限"和"上限"结合成一个,比如说," Bounds"。当然,这两个边界现在将是相同的颜色(在#34; Bounds"的图例上给出了什么颜色。)

1 个答案:

答案 0 :(得分:3)

似乎这样做了诀窍:

from pandas import DataFrame
import matplotlib.pyplot as plt

if __name__ == '__main__':
    lower_bound = [0, 1, 2, 3]
    value = [1, 2, 3, 4]
    upper_bound = [2, 3, 4, 5]
    d = {'Lower bound': lower_bound, 'Value': value, 'Upper bound': upper_bound}
    df = DataFrame(data=d)
    ax = df.plot(color=["Blue", "Blue", "Red"])
    lines, labels = ax.get_legend_handles_labels()
    ax.legend([lines[0], lines[2]], ["Bounds", "Value"])
    plt.show()

我猜测为什么颜色按顺序排列: pandas必须在绘制之前对列名进行排序。你认为它会是

colors = ["Blue", "Red", "Blue"]

但请注意,“下限”,“上限”和“值”是键的字母顺序。

注意:这是anaconda 2.7,Python 3的行为可能有所不同。