gpt4 book ai didi

python - Matplotlib savefig 到 eps 忽略 visibility=False

转载 作者:行者123 更新时间:2023-11-28 18:43:30 25 4
gpt4 key购买 nike

我正在尝试将流线图保存为 EPS,然后使用 epstopdf 将其转换为 PDF,因为这样文件大小要小得多。

我使用共享 x 轴和 y 轴的多个子图。我添加了一个总体子图,因此我可以轻松添加 xlabel 和 ylabel。我设置了frameon=False,所以它不会出现。之后,我关闭了该轴的脊椎和刻度线。显示图形时,我从大轴上看不到任何东西。到目前为止,还不错。

保存图形时出现问题。保存为 EPS,然后转换为 PDF 会使刻度标 checkout 现,并干扰我的文本。完全删除刻度标签也不好,因为间距会将标签放在我确实想看的图的刻度标签之间。奇怪的是,保存为pdf没有这个问题,但文件大小却大了11倍。

有谁知道我做错了什么,或者发生了什么事?

工作示例:

import matplotlib.pyplot as plt
import numpy as np
import subprocess

fig, ax = plt.subplots(2, 2, sharex=True, sharey=True)
ax = ax.flatten()
ax = np.append(ax, fig.add_subplot(1, 1, 1, frameon=False))
ax[-1].spines['top'].set_color('none')
ax[-1].spines['bottom'].set_color('none')
ax[-1].spines['left'].set_color('none')
ax[-1].spines['right'].set_color('none')
ax[-1].tick_params(
labelcolor='none', top='off', bottom='off', left='off', right='off')
ax[-1].set_xlabel('$u$', fontsize=14)
ax[-1].set_ylabel('$v$', fontsize=14)
plt.setp(ax[-1].get_xticklabels(), visible=False)

fig.savefig('TestPdf.pdf')
fig.savefig('TestEps.eps')
subprocess.check_call(['epstopdf', 'TestEps.eps'])
plt.show()

最佳答案

您可以尝试其他一些后端。例如 pgf 后端(在 matplotlib 1.3+ 中可用)也能够生成 pdf:

import matplotlib
matplotlib.use("pgf")

您可以获得可用的后端列表:

matplotlib.rcsetup.all_backends

并且您可以检查枯萎后端是否支持 eps 或 pdf:

import matplotlib
matplotlib.use("BACKEND")
import matplotlib.pyplot as plt
fig = plt.figure()
print fig.canvas.get_supported_filetypes()

关于python - Matplotlib savefig 到 eps 忽略 visibility=False,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23324706/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com