gpt4 book ai didi

python - Matplotlib png 输出在 reportlab 的 pdf 中出现 "broken"

转载 作者:行者123 更新时间:2023-12-05 07:25:19 25 4
gpt4 key购买 nike

有谁知道我的 matplotlib 图在我通过 reportlab 以 PDF 格式打印时出现“损坏”的原因是什么。

所以,这是我正在使用的 Python 代码:

list = range(6)

fig = plt.figure(figsize=(10, 4))
ax = plt.subplot(111)

ax.plot(list, [2*x for x in list] , label='y = 2x')
ax.plot(list, [0.5*x for x in list], label='y = 0.5*x')
ax.plot(list, list, label='y = x')

plt.xlabel('x')
plt.ylabel('y')
plt.title("Sample Plot")

plt.grid(True, which='major', axis='y')

box = ax.get_position()
ax.set_position([box.x0, box.y0 + box.height * 0.1, box.width, box.height * 0.9])

ax.legend(loc='upper center', bbox_to_anchor=(0.5, -0.1), ncol=3,
fontsize='small')

plt.savefig('test.png',dpi=1000)

c = canvas.Canvas("hello.pdf")
c.drawImage('test.png', 100, 600, width=4 * 100, height=4 * 40)
c.showPage()
c.save()

matplotlib test.png 输出看起来不错:

enter image description here

但是,hello.pdf 文件中的同一张图片看起来很糟糕:

enter image description here

最佳答案

您不需要为 pdf 使用 canvas。您只需在以下行中将扩展名 .png 更改为 .pdf 即可将图像保存为具有所需质量的 pdf:

plt.savefig('test.pdf',dpi=1000)

此外,如果你想调整图像的大小 - 正如你在代码中所写的那样 - 你也可以这样做(增加 dpi 会提高图片质量,所以坏了线应该消失):

fig = plt.gcf()
fig.set_size_inches(32, 18)
plt.savefig('hello.pdf', bbox_inches='tight', dpi=1000)

关于python - Matplotlib png 输出在 reportlab 的 pdf 中出现 "broken",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54922882/

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