gpt4 book ai didi

python - Matplotlib,带有一个标签的多个不同标记的图例

转载 作者:太空狗 更新时间:2023-10-29 20:29:36 24 4
gpt4 key购买 nike

这是一个简化的情况图:

plot example

我希望能够为一组不同的标记设置一个标签,而不是让每个数据点标记都有一个单独的标签。我希望能够有这样的传说:

<triangle> <square> <hexagon> <diamond> <circle> Shotcrete strength data points
<green line> 10 minute strength
<blue line> 60 minute strength
<yellow line> 1 day strength
<orange line> 7 day strength
<red line> 28 day strength

我想这样做是因为在最终图中我将拥有三组数据点,并且显示 18(3 组 * 6 点/组)标记/标签组合会很困惑。

我在 Python 2.7 中使用 Matplotlib。

最佳答案

注意:此答案作为正确答案的指南而保留 - 但它不能解决所述问题。关于 matplotlib 不支持 Patch 集合的问题,请参阅下面的编辑。


如果您想完全自定义,一种方法是使用所谓的代理艺术家:

from pylab import *

p1 = Rectangle((0, 0), 1, 1, fc="r")
p2 = Circle((0, 0), fc="b")
p3 = plot([10,20],'g--')
legend([p1,p2,p3], ["Red Rectangle","Blue Circle","Green-dash"])

show()

在这里您可以准确地指定您希望图例的外观,甚至可以使用非标准的绘图形状(补丁)。

编辑: 这种方法有一些困难,matplotlib only supports these Artists in a legend无需调整。对于 matplotlib v1.0 及更早版本,支持的艺术家如下。

Line2D
Patch
LineCollection
RegularPolyCollection
CircleCollection

您对多个散点的请求将通过 Patch Collection 完成,上面不支持。从理论上讲,对于 v1.1,这是可能的,但我不知道如何实现。

关于python - Matplotlib,带有一个标签的多个不同标记的图例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9262307/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com