import matplotlib.pyplot as plt
# generate some data
x = [1,2,3,4,5,8]
y= [i**2 for i in x]
y2= [60-i**2+3*i for i in x]
# plot markers with thick borders
plt.subplot(121)
plt.scatter(x,y, s=500, marker='s', edgecolor='black', linewidth=3, facecolor='green', hatch='|')
# compare with no borders, and denser hatch.
plt.subplot(122)
plt.scatter(x,y2, s=500, marker='s', edgecolor='black', linewidth=0, facecolor='green', hatch='||||')
plt.show()
3条答案
按热度按时间rdlzhqv91#
1.要控制标记边框的粗细,您只需为
scatter()
设置linewidth
(或为plot()
设置markeredgewidth
)。1.可以通过重复符号(在下面的示例中,
'|'
在R/H窗格中重复;注意,为了获得NW->SE对角线,符号必须被转义,因此需要两倍的字符才能真正使其加倍-'\\\\'
是密度2,而'||||'
是密度4)。但是,我不认为阴影内的各条线的粗细是可控的。请参见下面的代码示例以生成如下散点图:
matplotlib关于集合和分散的文档。
osh3o9ms2#
这是在你提出这个问题的几年后,但我发现的唯一方法是改变matplotlib.rc。
您可以在实际的.rc文件中或在Python脚本中执行此操作,例如:
import matplotlib as mpl
mpl.rc('hatch', color='k', linewidth=1.5)
这将使脚本中的所有填充线都变成黑色,厚度为1.5,而不是默认的1.0。
bmvo0sr53#
如果使用
plt.plot
,则需要传递参数markeredgewidth
。