我正在尝试更改绘图上的轴背景,其中几个调用通过参数imshow()
在不同位置渲染图像。extent
当我使用 保存图形的 pdf 时,savefig()
如果轴显示多个图像,我会丢失背景颜色。请注意,导出相同图形的 png 时不会发生这种情况。
这是说明问题的最小脚本:
import matplotlib.pyplot as plt
from numpy.random import rand
fig, ax = plt.subplots(nrows=3, ncols=1, sharex=True)
ax[0].imshow(rand(15,15), extent=[0, 2, 15, 0], \
cmap=plt.cm.gray, aspect='auto', interpolation='Nearest')
ax[0].set_axis_bgcolor('k')
ax[1].imshow(rand(15,15), extent=[0, 2, 15, 0], \
cmap=plt.cm.gray, aspect='auto', interpolation='Nearest')
ax[1].imshow(rand(15,15), extent=[4, 6, 15, 0], \
cmap=plt.cm.gray, aspect='auto', interpolation='Nearest')
ax[1].set_axis_bgcolor('k')
ax[2].imshow(rand(15,15), extent=[0, 2, 15, 0], \
cmap=plt.cm.gray, aspect='auto', interpolation='Nearest')
ax[2].imshow(rand(15,15), extent=[4, 6, 15, 0], \
cmap=plt.cm.gray, aspect='auto', interpolation='Nearest')
ax[2].imshow(rand(15,15), extent=[8, 10, 15, 0], \
cmap=plt.cm.gray, aspect='auto', interpolation='Nearest')
ax[2].set_axis_bgcolor('k')
ax[-1].set_xlim([0, 12])
fig.savefig('test.pdf', format='PDF')
fig.savefig('test.png', format='PNG')
这是脚本的 pdf 输出(eps 输出相同):
这是脚本的预期输出(保存为 png):
我是否遇到了 matplotlib 错误,或者是否有一些我缺少的命令可以修复 pdf 输出?
编辑:我用默认值重新绘制了数字matplotlibrc
。