我想用虚线而不是实线绘制一个标记(星号)。有没有办法在 matplotlib 中做到这一点?这是一个简单的代码,可以绘制一个带有实线边框的标记:
plot([1],[1],marker=(5,1,0),markersize=30,mfc='gold',mec='k',mew=1)
提前感谢您的帮助!
最佳答案
好吧,我遇到了完全相反的问题,即我想使用实线(不是虚线、点线等)绘制标记。
如果您将 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 channel )中的最后一个值更改为,例如,0.0001
。这允许保持标记实心但仍然“几乎”透明。
关于python - 如何在 matplotlib 中绘制带有虚线/点线边缘的标记?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38316746/