将带有 LaTeX 字体的 Matplotlib 图形保存为 eps
Saving Matplotlib graphs with LaTeX fonts as eps
我正在尝试使用 matplotlib 和 LaTeX 字体在 Jupyter-lab 中实现出版质量。我按照此处的说明创建了一个简单的文档:
https://matplotlib.org/stable/tutorials/text/usetex.html
图形是用漂亮的字体创建的;但是,保存的 eps 文件是空白的。相同的图形可以成功保存为 png,但即使使用 dpi=2400
选项导入到 LaTeX 时看起来也很模糊。没有 LaTeX 字体的 Eps 文件在导入 LaTeX 文件时像剃刀一样锋利。
建议?解决方法?
谢谢,
拉多万
PS。我发现的一种解决方法是使用 gnuplot 和 cairolatex
终端...生成的 *.tex 文件可以用 Pdflatex
编译并获得很好的结果。但这是一个不同的故事:-)。
我又试了一次。最后,它确实起作用了!这是代码:
import numpy as np
import matplotlib.pyplot as plt
## reset defaults
plt.rcdefaults()
## Set up LaTeX fonts
plt.rcParams.update({
"text.usetex": True,
"font.family": "serif",
"font.serif": ["Computer Modern Roman"],
"font.size": 14,
})
## Data for plotting
t = np.arange(0.0, 2.0, 0.01)
s = 1 + np.sin(2 * np.pi * t)
fig, ax = plt.subplots(figsize=(4.5,3))
ax.plot(t, s, linewidth=3)
ax.set(xlabel=r'time $\tau_p$ [$\mu$s]', ylabel=r'voltage (mV)')
ax.set(title=r'$ E = m c^2 $')
fig.savefig("test600.png", format="png", dpi=600, bbox_inches="tight")
fig.savefig("test1200t.eps", format="eps", dpi=1200, bbox_inches="tight", transparent=True)
fig.savefig("test1200t.pdf", format="pdf", dpi=1200, bbox_inches="tight", transparent=True)
plt.show()
我不确定之前哪里出了问题。这次我做了不同的字体声明。
干杯,
拉多万
我正在尝试使用 matplotlib 和 LaTeX 字体在 Jupyter-lab 中实现出版质量。我按照此处的说明创建了一个简单的文档: https://matplotlib.org/stable/tutorials/text/usetex.html
图形是用漂亮的字体创建的;但是,保存的 eps 文件是空白的。相同的图形可以成功保存为 png,但即使使用 dpi=2400
选项导入到 LaTeX 时看起来也很模糊。没有 LaTeX 字体的 Eps 文件在导入 LaTeX 文件时像剃刀一样锋利。
建议?解决方法?
谢谢, 拉多万
PS。我发现的一种解决方法是使用 gnuplot 和 cairolatex
终端...生成的 *.tex 文件可以用 Pdflatex
编译并获得很好的结果。但这是一个不同的故事:-)。
我又试了一次。最后,它确实起作用了!这是代码:
import numpy as np
import matplotlib.pyplot as plt
## reset defaults
plt.rcdefaults()
## Set up LaTeX fonts
plt.rcParams.update({
"text.usetex": True,
"font.family": "serif",
"font.serif": ["Computer Modern Roman"],
"font.size": 14,
})
## Data for plotting
t = np.arange(0.0, 2.0, 0.01)
s = 1 + np.sin(2 * np.pi * t)
fig, ax = plt.subplots(figsize=(4.5,3))
ax.plot(t, s, linewidth=3)
ax.set(xlabel=r'time $\tau_p$ [$\mu$s]', ylabel=r'voltage (mV)')
ax.set(title=r'$ E = m c^2 $')
fig.savefig("test600.png", format="png", dpi=600, bbox_inches="tight")
fig.savefig("test1200t.eps", format="eps", dpi=1200, bbox_inches="tight", transparent=True)
fig.savefig("test1200t.pdf", format="pdf", dpi=1200, bbox_inches="tight", transparent=True)
plt.show()
我不确定之前哪里出了问题。这次我做了不同的字体声明。
干杯, 拉多万