dub*_*dan 9 python matplotlib legend
我似乎可以弄清楚如何将句柄和标签传递matplotlib.patches.Patch
给图例。
import matplotlib.pyplot as plt
import matplotlib.patches as mpatches
a_val = 0.6
colors = ['#EA5739','#FEFFBE','#4BB05C']
circ1 = mpatches.Patch( facecolor=colors[0],alpha=a_val,hatch=['\\\\'],label='Label1')
circ2= mpatches.Patch( facecolor=colors[1],alpha=a_val,hatch='o',label='Label2')
circ3 = mpatches.Patch(facecolor=colors[2],alpha=a_val,hatch='+',label='Label3')
fig,(ax) = plt.subplots()
ax.legend(handles = [circ1,circ2,circ3],loc=2)
plt.tight_layout()
Run Code Online (Sandbox Code Playgroud)
为什么上例中的图例是空白的?
And*_*eak 11
要么我无法重现您的问题,要么您遗漏了一个巨大的错误。当我运行上面的代码时,我收到一个关于list
不可散列的错误,这似乎源于第一个Patch
调用的hatch=['\\\\']
kwarg。删除列表语法(并使用带有 4 个反斜杠的原始字符串以获得额外效果)似乎对我在 matplotlib 2.0.2 上有用:
import matplotlib.pyplot as plt
import matplotlib.patches as mpatches
a_val = 0.6
colors = ['#EA5739','#FEFFBE','#4BB05C']
circ1 = mpatches.Patch( facecolor=colors[0],alpha=a_val,hatch=r'\\\\',label='Label1')
circ2= mpatches.Patch( facecolor=colors[1],alpha=a_val,hatch='o',label='Label2')
circ3 = mpatches.Patch(facecolor=colors[2],alpha=a_val,hatch='+',label='Label3')
fig,(ax) = plt.subplots()
ax.legend(handles = [circ1,circ2,circ3],loc=2)
plt.tight_layout()
Run Code Online (Sandbox Code Playgroud)
这就是你所看到的吗?
归档时间: |
|
查看次数: |
9244 次 |
最近记录: |