使用matplotlib时严重的ValueError

好的,这是我第一次在这里问一个问题,所以请耐心等待我;-)

我试图用matplotlib在图中创建一系列子图(每个都有两个y轴),然后保存该图。 我使用GridSpec为子图创建网格,并意识到它们重叠了一点,这是我不想要的。 所以我试图用tight_layout()来解决这个问题,根据matplotlib文档应该可以正常工作。 简化一下,我的代码看起来像这样:

import matplotlib.pyplot as plt
import matplotlib.gridspec as gridspec

fig = plt.figure(num=None, facecolor='w', edgecolor='k')
grid = gridspec.GridSpec(2, numRows) 
# numRows comes from the number of subplots required

# then I loop over all the data files I'm importing and create a subplot with two y-axes each time
  ax1 = fig.add_subplot(grid[column, row])
  # now I do all sorts of stuff with ax1...
  ax2 = ax1.twinx()
  # again doing some stuff here

数据处理循环完成后,我创建了所有的子图,最终以

fig.tight_layout()
fig.savefig(str(location))

据我所知,这应该工作,但是当调用tight_layout()时,我从函数self.subplotpars中得到一个ValueError:left不能>> =正确。 我的问题是:如何找出导致此错误的原因,以及如何解决该错误?


我以前有过这个错误,并且我有一个适合我的解决方案。 我不确定它是否会为你工作。 在matplotlib中,该命令

plt.fig.subplots_adjust() 

可以用来拉伸情节。 左边和底部拉伸的越多,数字越小,而顶部和右边的拉伸越多,数字越大。 因此,如果左边大于或等于右边,或者底部大于或等于顶部,那么图形将会翻转。 我调整了我的命令,看起来像这样:

fig = plt.figure()
fig.subplots_adjust(bottom = 0)
fig.subplots_adjust(top = 1)
fig.subplots_adjust(right = 1)
fig.subplots_adjust(left = 0)

然后你可以填写你自己的数字来调整它,只要你保持左侧和右侧较小。 我希望这能解决你的问题。

链接地址: http://www.djcxy.com/p/19673.html

上一篇: ValueError when using matplotlib tight

下一篇: Rails paperclip and SVG images