2014-09-20 65 views
2

我正在嘗試添加一個條目到在後臺有修補程序的圖例。期望的效果與here所示的相似,但我也想覆蓋一行。 Basicaly我想要得到的東西看起來是這樣的:在圖例條目中覆蓋幾位藝術家

enter image description here

但我不知道如何把藍色的虛線上的黃色補丁。如何結合藝術家來獲得這種效果?我沒有看到任何例子或明顯的方式來做到這一點。

+0

你能畫出一張圖嗎?在MSPaint中繪製的東西對於上下文來說已經足夠了。 – Veedrac 2014-09-20 03:55:36

+1

@Veedrac希望能清除一些東西 – Shep 2014-09-20 05:00:15

回答

1

基本思路是使用plt.legend([(X, Y)])在同一圖例條目中呈現XY。請注意額外的一對括號。

這裏是近似匹配您的示例演示:

import matplotlib.patches as mpatches 
import matplotlib.lines as mlines 
import matplotlib.pyplot as plt 

yellow_patch = mpatches.Patch(color='yellow') 
blue_dotted_line = mlines.Line2D([], [], linewidth=2, linestyle="--", dashes=(3.7, 2), color='blue') 
brown_line = mlines.Line2D([], [], linewidth=2, color='brown') 

plt.legend([(yellow_patch, blue_dotted_line), brown_line], ["Entry One", "Entry Two"]) 

plt.show() 

The legend approximately matching the wanted image.

你是正確的,雖然,這不是明顯的。

+0

哇,這非常簡單。我承認,這個想法超出了我的想法,但我認爲「沒有辦法,這將_just工作_」... – Shep 2014-09-20 15:13:48

+0

也有趣的是,它與'(red_pa​​tch,blue_dotted_line)''但不與'[red_pa​​tch,blue_dotted_line]' – Shep 2014-09-20 18:12:18