Matplotlib savefig不保存轴

时间:2013-10-24 20:47:00

标签: matplotlib

我正在尝试保存一个在IPython内联中工作正常的数字,但不会将数字保存到包含轴和标题的磁盘中。

默认情况下我在matplotlibrc中使用TKAgg后端

任何想法可能会出错?我已经在IPython内联图中清楚地设置了xlabel和刻度标记。

   import matplotlib.pylab as plt  
    x = [1,2,3,3]
    y = map(lambda(x): x * 2, x)
    fig = plt.figure()
    ax = fig.add_axes([0,0,1,1])
    ax.set_title("bleh")
    ax.set_xlabel("xlabel")
    ax.plot(x, y, 'r--')
    fig.savefig("fig.png")

Savefig image without axes labels

5 个答案:

答案 0 :(得分:4)

您正在将轴设置为从图的最左下角开始并填充整个图形。轴标签或标题没有空间。试试这个:

import matplotlib.pylab as plt  
x = [1,2,3,3]
y = map(lambda(x): x * 2, x)
fig = plt.figure()
ax = fig.add_axes([0.1,0.1,0.75,0.75]) # axis starts at 0.1, 0.1
ax.set_title("bleh")
ax.set_xlabel("xlabel")
ax.plot(x, y, 'r--')
fig.savefig("fig.png")

plot with axis showing

答案 1 :(得分:4)

在开始时定义 fig = plt.figure(figsize=(15,10)),将文件另存为 .jpg 并设置 bbox_inches='tight' - plt.savefig('filename.jpg',bbox_inches='tight', dpi=150) 为我解决了这个问题。 bbox_inches='tight' 似乎修复了裁剪问题,但对 .png 不起作用。

答案 2 :(得分:2)

我在使用Jupyter笔记本和命令时遇到了同样的问题:%matplotlib notebook。该图在笔记本中正确显示,但在使用fig.savefig()保存时没有打印轴和标题。我将%matplotlib笔记本更改为%matplotlib内联,这解决了问题。

答案 3 :(得分:1)

可能是facecolor。我在 jupyter 实验室工作,facecolor 默认设置为黑色,因此您看不到轴,即使它们正在绘制。

fig = plt.figure(facecolor=(1, 1, 1))

将背景颜色设置为白色。

答案 4 :(得分:0)

通过将格式从“png”更改为“jpg”以及参数“plt.subplots(tight_layout=True)”,我能够解决该问题(在 Visual Studio 代码 jupyter 扩展中)。