如题,最近有绘图的工作,要求就是使用python绘图库来画线并打上坐标点的标志,这时候就遇到了问题,这个线上的标志如果是实心的话就难以有区分度,但是设置为空心就需要考虑标志的边线粗细等问题,于是便有了本文。


给出自己的绘图代码:


import matplotlib.pyplot as plt


plt.plot([0, 1, 2, 3, 4, 5], [0.1, 0.2, 0.3, 0.4, 0.5, 0.6],\
color='r', label="Hello World", lw=1.5, ls='-', clip_on=False,\
marker='d', markersize=10, markerfacecolor='none', markeredgecolor='r',markeredgewidth=1.5)


plt.legend(loc="lower right", framealpha=1.0, edgecolor="black")

plt.xlabel('XXX')
plt.ylabel('YYY')
plt.xlim(0, 5)
plt.ylim(0, 1)

plt.xticks([0,1,2,3,4,5], [0,10,20,30,40,50])
plt.grid()

plt.show()

python绘图库matplotlib:画线的标志marker的设置——类型/size/空心/边线颜色及大小/显示marker超出边界部分_matplotlib(Python)

===================================================

关键语句:


本文重点说明的参数:

clip_on=False          关闭标志marker被画布框覆盖,不设置该值的话与画布框碰撞的标志marker会被覆盖。

marker='d' 设置标志marker的具体图形

markersize=10 设置标志marker的大小

markerfacecolor='none' 设置标志marker是否使用空心显示,不设置该值的话默认为实心marker标志

markeredgecolor='r' 设置标志marker的边线颜色,marker的内心颜色随线走保持一直,marker的边框颜色可以在这里单独设置

markeredgewidth=1.5 设置标志marker的边框(边线)的粗细

另外再给出一个例子:

import matplotlib.pyplot as plt


plt.plot([0, 1, 2, 3, 4, 5], [0.1, 0.2, 0.3, 0.4, 0.5, 0.6],\
color='r', label="Hello World", lw=1.5, ls='-', clip_on=False,\
marker='d', markersize=10, \
# markerfacecolor='none',\
markeredgecolor='black',markeredgewidth=1.5)


plt.legend(loc="lower right", framealpha=1.0, edgecolor="black")

plt.xlabel('XXX')
plt.ylabel('YYY')
plt.xlim(0, 5)
plt.ylim(0, 1)

plt.xticks([0,1,2,3,4,5], [0,10,20,30,40,50])
plt.grid()

plt.show()

python绘图库matplotlib:画线的标志marker的设置——类型/size/空心/边线颜色及大小/显示marker超出边界部分_python_02

可以看到上图中标志marker并没有被画布框所遮盖,标志marker的外边线为黑色black而内心与线的颜色一致为红色。


参考:

​https://www.bianchengquan.com/article/216001.html​