我希望在散点图上使用阿拉伯数字作为标记。到目前为止,我已经能够获得以下代码模板:
plt.figure()
plt.scatter(20,20,marker ='o', s=20*2**5, facecolors='r',edgecolors='none',alpha=0.75)
plt.scatter(20,20,c='k',marker="$"+str(5)+"$",s=5*2**5)
但我对字体不满意。我想要一个类似于沿轴显示的数字的字体。任何人都可以提出解决方案/替代方案吗?
答案 0 :(得分:0)
有一个使用TeX后端的解决方案,如果你对此很好:
import matplotlib
matplotlib.rcParams['text.usetex'] = True
matplotlib.rcParams['text.latex.preamble'] = [
r'\usepackage{sansmath}',
r'\sansmath'
]
import matplotlib.pyplot as plt
plt.figure()
plt.scatter(20,20,marker ='o', s=20*2**5, facecolors='r',edgecolors='none',alpha=0.75)
plt.scatter(20,20,c='k',marker="$5$",s=5*2**5,edgecolors='none')
plt.text(21, 20, '5', fontsize=16)
plt.xlim(19, 22)
plt.savefig('t.png')
请注意:
edgecolors='none'
添加到第二个scatter()
来电,否则该号码会显示为粗体。$$
内指定自定义标记,并且必须在数学模式之前显示\sansmath
。因此,切换到无数学是全局的。可以使用\mathsf
后端在数学模式下使lualatex
在本地工作,但是您在制作刻度标签时没有问题(尽管如果您只是需要)相同的风格,使刻度标签和标记衬线都很容易)。