Python pandas和matplotlib:将两个绘图合并为一个图例项

Python pandas和matplotlib:将两个绘图合并为一个图例项,python,pandas,matplotlib,Python,Pandas,Matplotlib,我有以下代码: 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'

我有以下代码:

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()
    plt.show()
它将创建以下绘图:


我想要相同的情节,但是,在传说中,我想要“下限”和“上限”合二为一,比如说“边界”。当然,这两个边界现在将是相同的颜色(无论“边界”的图例上给出了什么颜色)。

似乎这就成功了:

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()
我猜为什么颜色会按这种顺序排列:熊猫必须在绘图之前对列名进行排序。你会认为是的

colors=[“蓝色”、“红色”、“蓝色”]

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


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

这已经是一半了,但图例中仍然有两个不同的项,“下限”和“上限”。我想用“边界”来代替这两个项目。对不起,忘了那个部分!我想我对专栏的类型太着迷了。请参阅更新的答案。