Matplotlib无法在自定义图例中显示阴影线。

7
我创建了一个自定义图例,但它不显示块的填充色。出现了什么问题?
import matplotlib.pyplot as plt
from matplotlib.patches import Patch
from pylab import *
t = arange(0.0, 2.0, 0.01)
s = sin(2*pi*t)
fig1 = plt.figure(1,(10,10))
plt.plot(t, s)
plt.xlabel('time (s)')
plt.ylabel('voltage (mV)')
plt.title('About as simple as it gets, folks')
plt.grid(True)
far_patch = Patch(color=[168/256,175/256,175/256], label='Farshore')
near_patch = Patch(color=[168/256,175/256,175/256], label='Nearshore',     hatch ='o')
legend=plt.legend(handles=[far_patch, near_patch],loc='upper left',     handlelength=1, handleheight=1,labelspacing=0,    fontsize=8,borderaxespad=0.3,handletextpad=0.2)

frame = legend.get_frame()
frame.set_edgecolor('none')

figureName='test'

plt.savefig(figureName+'.pdf',bbox_inches='tight',dpi=fig1.dpi)
plt.show()

谢谢


1
请提供一个简洁的示例: http://stackoverflow.com/help/how-to-ask - hitzg
1个回答

6
Patch对象的颜色关键字将覆盖面颜色和边缘颜色。因此,它可能正确显示图案,但与补丁相同的颜色。具体设置facecolor会解决这个问题,并可以使用edgecolor来着色填充。所以尝试一下:

near_patch = Patch(facecolor=[168/256,175/256,175/256], 
                   label='Nearshore', hatch ='o')

这里输入图片描述

如果您只想看到箭头,请将linewidth设置为零。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接