【问题标题】:Matplotlib graph legend for multiple entries多个条目的 Matplotlib 图图例
【发布时间】:2019-11-07 23:14:30
【问题描述】:

我在一个图中绘制了几个多边形:

from shapely.geometry import Polygon
import matplotlib.pyplot as plt

polygons.append(Polygon([(1,9), (4,9), (4,6), (1,6)]))
polygons.append(Polygon([(7,9), (10,9), (10,6), (7,6)]))
polygons.append(Polygon([(7,4), (10,4), (10,1), (7,1)]))
polygons.append(Polygon([(1,4), (4,4), (4,1), (1,1)]))
polygons.append(Polygon([(3,3), (3,7), (8,7), (8,3)]))

plt.figure()
for poly in polygons:
    plt.plot(*poly.exterior.xy)
plt.show()

生成的图正确显示了我的多边形,但我想知道哪一个对应于图上的哪个索引(例如:绿色多边形是polygons[2] 的多边形)。理想情况下,我想要一个将多边形颜色与其索引相关联的图例,但我不知道如何在这样的循环中添加这样的图例。我试过plt.legend(polygons.index(poly)),但没用。

多边形的数量是可变的,因此严格分配颜色是不可能的。

如何添加图例?

【问题讨论】:

    标签: python matplotlib plot


    【解决方案1】:

    我没有安装shapely,但您可以尝试这些方法。您可以使用label 参数通过使用enumerate 跟踪多边形索引来标记图例。

    plt.figure()
    
    for i, poly in enumerate(polygons):
        plt.plot(*poly.exterior.xy, label="Polygon %d"%i)
    plt.legend()
    plt.show()
    

    【讨论】:

    • 哦,这是 label 关键字...是的,非常有效,谢谢!
    猜你喜欢
    • 1970-01-01
    • 2017-10-07
    • 2017-06-11
    • 2021-07-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-06
    相关资源
    最近更新 更多