【问题标题】:How to rasterize a color bar axis spines in Matplotlib?如何在 Matplotlib 中栅格化彩条轴刺?
【发布时间】:2020-07-08 19:58:48
【问题描述】:

我正在生成一个包含许多页面的大型 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】:

    事实证明,有必要直接访问彩条的轴。下面的 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')
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-05-13
      • 1970-01-01
      • 2020-12-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多