如何在 Matplotlib 中栅格化颜色条轴脊柱?
How to rasterize a color bar axis spines in Matplotlib?
我正在生成包含许多页面的大型 PDF。我试图光栅化其中的所有内容以节省一些磁盘 space。然而,彩条特别难处理。
有人可以设法栅格化下例中的颜色条轴脊柱吗?
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 文件不是一种选择,因为我想保持图形标题不光栅化(这是我唯一不想光栅化的东西)
原来需要直接访问颜色条的轴。下面的 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')
我正在生成包含许多页面的大型 PDF。我试图光栅化其中的所有内容以节省一些磁盘 space。然而,彩条特别难处理。
有人可以设法栅格化下例中的颜色条轴脊柱吗?
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 文件不是一种选择,因为我想保持图形标题不光栅化(这是我唯一不想光栅化的东西)
原来需要直接访问颜色条的轴。下面的 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')