簡體   English   中英

Matplotlib,帶有一個標簽的多個不同標記的圖例

[英]Matplotlib, legend with multiple different markers with one label

以下是情況的簡化情節:

情節例子

我希望能夠為一組不同的標記設置一個標簽,而不是讓每個數據點標記都有一個單獨的標記。 我希望能有一個像這樣的傳奇:

<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中不支持補丁集合的問題。


解決此問題的一種方法是,如果您想要完全自定義,請使用所謂的代理藝術家:

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僅支持傳奇中的這些藝術家而不進行調整。 對於matplotlib v1.0及更早版本,支持的藝術家如下。

Line2D
Patch
LineCollection
RegularPolyCollection
CircleCollection

您對多個散點的請求將使用上面不支持的Patch Collection完成。 理論上與v1.1,這是可能的,但我不知道如何。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM