如何在Matplotlib中光栅化彩条轴的刺?

问题描述 投票:1回答:1

我正在生成一个包含许多页面的大型PDF。我试图对其进行栅格化以节省一些磁盘空间。但是,彩条很难处理。

在下面的示例中,有人可以光栅化颜色条轴的刺吗?

import matplotlib.pyplot as plt
import numpy as np

ax = plt.subplot(111)

im = ax.imshow(np.arange(100).reshape((10, 10)))
cb = plt.colorbar(im)

ax.set_rasterized(True)
plt.suptitle('Title')
plt.savefig('test.pdf')

目前,放大时,图像的轴看起来是像素化的,而不是彩色条的轴。我希望两者都被像素化。

我以为im.colorbar.solids.set_rasterized(True)会成功,但事实并非如此。不能将图像另存为PNG文件,因为我想不对图形标题进行栅格化(这是我不希望栅格化的唯一内容)

python matplotlib plot colorbar rasterizing
1个回答
0
投票

事实证明,有必要直接访问颜色栏的轴。下面的for循环可以解决问题

import matplotlib.pyplot as plt
import numpy as np

fig = plt.figure() # <--- New line
ax = plt.subplot(111)

im = ax.imshow(np.arange(100).reshape((10, 10)))
cb = plt.colorbar(im)

for ax in fig.get_axes():  # <--- New line
    ax.set_rasterized(True)  # <--- New line     

plt.suptitle('Title')
plt.savefig('test.pdf')
© www.soinside.com 2019 - 2024. All rights reserved.