当在xtick标签中使用带换行符的tex时,Matplotlib无法生成绘图

我正在生成一个带有多个xtick标签级别的图形。我可以通过使用额外的带有换行符的标签来实现。但是,如果我在绘图生成中使用tex,则该方法将不起作用,并会显示一条错误消息,提示我tex.cache中的.dvi文件丢失。我发现该tex文件存在,但是乳胶不生成dvi文件,因为没有页面可生成。

使用tex时,如果我将ax.set_xticklabels(labels + ["\nA to C"])更改为ax.set_xticklabels(labels + ["A to C"])ax.set_xticklabels(labels + ["DummyText\nA to C"]),则代码可以完美工作。

如何使用xtick标签中带有换行符的matplotlib + tex成功生成图形?


import matplotlib.pyplot as plt
import matplotlib
import numpy

# There will be errors in code if I uncomment the following
# matplotlib.rc('text',usetex = True)

fig,axs = plt.subplots(1,1,squeeze=False)
ax = axs[0,0]
labels = ["A","B","C","D","E"]
data1 = [1,2,3,4,5]
data2 = [1.5,2.5,3.5,7]
total_categories = len(data1)

width = 1
data1_color = '#fc8d62'
data2_color = '#66c2a5'
props = {'connectionstyle':'bar','arrowstyle':'-',\
                 'shrinkA':20,'shrinkB':20,'linewidth':2}

center_positions = numpy.arange(0,total_categories) * 2.5
ax.bar(center_positions - 0.5,data1,width=width,color=data1_color,align='center',edgecolor='black',hatch='//',label="Data1")
ax.bar(center_positions + 0.5,data2,color=data2_color,label="Data2")

# Setting xticks
ax.set_xticks(numpy.concatenate((center_positions,numpy.array([2.5]))))
ax.set_xticklabels(labels + ["\nA to C"])
ax.set_xticks([-1.25,6.25,8.75,11.25],minor=True)
ax.tick_params( axis='x',which='minor',direction='out',length= 45)
ax.tick_params( axis='x',which='major',bottom='off',top='off' )
ax.set_xlim(-1.25,11.25)
ax.set_xlabel("Methods",size=15)

ax.legend()
fig.savefig("Temp.pdf")

当在xtick标签中使用带换行符的tex时,Matplotlib无法生成绘图

% tex file auto generated by matplotlib
\documentclass{article}
\usepackage{type1cm}



\usepackage{textcomp}

\usepackage[utf8]{inputenc}

\usepackage[papersize={72in,72in},body={70in,70in},margin={1in,1in}]{geometry}
\pagestyle{empty}
\begin{document}
\fontsize{10.000000}{12.500000}{\sffamily } % When there are other texts,a dvi file will be generated
\end{document}
kewen163 回答:当在xtick标签中使用带换行符的tex时,Matplotlib无法生成绘图

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/3131163.html

大家都在问