I want to draw a marker (a star) with dashed border lines instead of a solid border. Is there a way to do this in matplotlib? Here is a simple code that draws a marker with a solid border:
plot([1],[1],marker=(5,1,0),markersize=30,mfc='gold',mec='k',mew=1)
Thanks for your help in advance!
答案 0 :(得分:0)
好吧,我遇到了完全相反的问题,即我想用实线绘制标记(不是虚线,点缀等等)。
如果您将linestyle
传递给plot
,那么(不幸的是)我应该以传递的linestyle
的样式绘制标记边缘。
最小的工作示例:
import matplotlib.pyplot as plt
x = [0, 1, 2, 3, 4, 5];
y = [0, 1, 4, 9, 16, 25];
plt.plot(x, y,
label='y = x^2',
linestyle=':',
marker='s',
color='r',
mec='r',
markersize=10,
mfc=(1,1,1,0.0)
);
plt.legend(loc='best', ncol=1, fontsize=13);
plt.savefig('/tmp/test.eps', format='eps', dpi=400, bbox_inches='tight');
是的,我知道,python中没有分号。 :)
这很有趣,但plt.show()
后标记不可见 - 需要保存整个图。
如果您想要返回实体标记,只需将mfc
(我猜想的Alpha通道)中的最后一个值更改为,例如0.0001
。这样可以使标记保持稳定,但仍然“几乎”透明。