我试图在散点图中使用乳胶符号\odot
作为标记,但我也需要乳胶样式滴答,但由于某些原因,这两者在一起播放不好。我可以成功使用marker=$\\odot$
和usetex=False
,like this,但是当我将它设置为true时(为了得到正确的刻度),我得到了! LaTeX Error: File 'type1cm.sty' not found.
我已经通过确认我已经安装了sty文件并且在正确的目录中并且我已经安装了所有依赖项(如建议here)。此外,我仍然可以使用usetex=True
并使用任何正常的pyplot标记,只是不涉及任何数学字体,但是我可以在图例的标签中使用\odot
。我也试着用amsmath附加rc params,但仍然得到type1cm错误。我也尝试使用原始字符串文字无济于事。当使用 odot作为标记时,Matplotlib /乳胶问题
所以基本上当usetex=True
时,我可以在图例的标签中使用数学符号,而不是实际的标记。有没有人遇到过这个问题?
我目前的工作只涉及绘制一个大的未填充圆和绘制一个小的实心圆(基本上模拟odot)。然后我遇到了一个与传说有关的问题,所以我基本上必须创建一个透明的图例来显示大的未填充的圆,然后用手like this在它后面绘制较小的实心圆,最终会出现歪斜,但这有我需要的轴刻度字体。如果我必须改变坐标轴的极限,这会变得非常令人沮丧,因为我必须重复确定在哪里再次绘制小的实心圆的过程。
有谁知道是否有比这更好的工作?是否有可能像我一样使用重叠打印方案,然后创建一个自定义代理艺术家以在图例中显示\odot
符号(以不同的颜色/大小)?
的Mac OSX,matplotlib 1.4.2,蟒蛇2.7,matplotlib使用pdfTeX的通TeX Live中2017年/ MAC端口2017年
编辑:这是我的代码
plt.rc('text', usetex=True)
plt.rc('font', family='serif')
f, ax1 = plt.subplots(1,1)
x = np.arange(20)
y = x
ax1.scatter(x, y, marker='$\\odot$', edgecolors='b', s=200, label = 'Test') #used with usetex=False
#ax1.scatter(x, y, marker='o', edgecolors='b', s=200, label = 'Test') #used with usetex=True
ax1.tick_params(labelsize=24)
leg = ax1.legend(scatterpoints=1, loc='lower right', borderaxespad=0., handletextpad=0.)#, fontsize=18) # borderpad=0.,)
它会是更新matplotlib的选项吗?看来你的版本比较老。我不知道这是否会解决问题,因为它可能会取决于你的tex安装。至于解决方法,您需要使用乳胶的原因究竟是什么?也许你可以使用一种类似于你想要的乳胶字体的字体? (请参阅,例如[这个问题](https://stackoverflow.com/questions/42249945/matplotlib-2-inconsistent-font)) – ImportanceOfBeingErnest
我需要有乳胶格式化的蜱与我的一些其他情节一致。什么字体会模仿乳胶风格?将字体设置为更改刻度? – Courtney
尝试用更新的matplotlib 2.0.2创建一个新的conda env,并且仍然有相同的结果。 – Courtney