我希望您能够在LaTeX中创建一个与文本完美对齐的matplotlib图形。这是我从这里获取的代码。
我调整了一些参数,但概念保持不变。 在Python中:
在LaTeX中:
我调整了一些参数,但概念保持不变。 在Python中:
import pylab
from pylab import arange,pi,sin,cos,sqrt
fig_width_pt = 430.00462 #246.0 # Get this from LaTeX using \showthe\columnwidth
inches_per_pt = 1.0/72.27 # Convert pt to inch
golden_mean = (sqrt(5)-1.0)/2.0 # Aesthetic ratio
fig_width = fig_width_pt*inches_per_pt # width in inches
fig_height = fig_width*golden_mean # height in inches
fig_size = [fig_width,fig_height]
params = {'backend': 'ps',
'axes.labelsize': 12, # 10
'text.fontsize': 12, # 10
'legend.fontsize': 12, # 10
'xtick.labelsize': 8, # 8
'ytick.labelsize': 8, # 8
'text.usetex': True,
'figure.figsize': fig_size}
pylab.rcParams.update(params)
# Generate data
x = pylab.arange(-2*pi,2*pi,0.01)
y1 = sin(x)
y2 = cos(x)
# Plot data
pylab.figure(1)
pylab.clf()
pylab.axes([0.125,0.2,0.95-0.125,0.95-0.2])
pylab.plot(x,y1,'g:',label='$\sin(x)$')
pylab.plot(x,y2,'-b',label='$\cos(x)$')
pylab.xlabel('$x$ (radians)')
pylab.ylabel('$y$')
pylab.legend()
pylab.savefig('fig1.pdf')
在LaTeX中:
\begin{figure}
\begin{center}
\includegraphics[width=\columnwidth]{fig1.pdf}
\end{center}
\end{figure}
我的LaTeX文件然后呈现出这个:
现在,实际上为了完美对齐,我认为应该更像这样:。不幸的是,我没有找到如何设置绘制图形的矩形宽度,也没有找到如何获取ylabel的宽度以从总figsize中减去它。如果我调整`pylab.axes()`,我可以改变pdf中图形的位置,但如果将其移动得太远,就会剪切图片的某些部分,因为调整是在pdf本身而不是LaTeX中执行的。此外,我不知道应该移动多少,因为未知ylabel的宽度。你有什么建议吗?