gpt4 book ai didi

python - 栅格化 matplotlib 中的多个元素

转载 作者:太空狗 更新时间:2023-10-29 20:56:45 26 4
gpt4 key购买 nike

在使用 pdf 输出使用 rasterized=True 关键字栅格化绘图中的许多行时,我遇到了问题。一些版本信息:

  • matplotlib 版本 1.1.1rc
  • Ubuntu 12.04
  • python 2.7.3

这是一个演示我的问题的基本示例:

# Import matplotlib to create a pdf document
import matplotlib
matplotlib.use('Agg')
from matplotlib.backends.backend_pdf import PdfPages
pdf = PdfPages('rasterized_test.pdf')

import matplotlib.pylab as plt

# some test data
import numpy as np
ts = np.linspace(0,2*np.pi,100) * np.ones((200,100))
ts += (np.linspace(0, np.pi, 200)[np.newaxis] * np.ones((100,200))).T
ys = np.sin(ts)

fig = plt.figure()
ax = fig.add_subplot(111)
ax.plot(ts[0], ys.T, color='r', lw=0.5, alpha=0.5, rasterized=True)
pdf.savefig()

pdf.close()

本质上,我有很多(在本例中为 200 条)紧密重叠的线,这使得生成的图形(未光栅化)过于难以加载。我想将这些线栅格化,这样轴标签(和绘图的其他元素,未显示)保持矢量,而解决方案轨迹被展平为单个栅格背景。然而,使用上面的代码,图像仍然需要很长时间才能加载,因为每个轨迹都是独立光栅化的,导致多层。 (如果我用像 inkscape 这样的程序打开生成的 pdf,我可以独立地操作每个轨迹。)

是否可以将所有光栅化元素展平到一个图层中,从而大大减小 pdf 的大小?

谢谢!

最佳答案

将代码更改为:

ax = fig.add_subplot(111, rasterized=True)
ax.plot(ts[0], ys.T, color='r', lw=0.5, alpha=0.5)

关于python - 栅格化 matplotlib 中的多个元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12098331/

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