我想展示这个图中的框架。 我试着运行下面的代码,但没有成功:
ax = self.canvas.figure.add_subplot(111)
ax.spines['top'].set_visible(True)
ax.spines['right'].set_visible(True)
ax.spines['bottom'].set_visible(True)
ax.spines['left'].set_visible(True)
ax.plot(diff)
我也试过:
plt.tight_layout()
但它会产生这个错误:
> File "runme.py", line 54, in autocorr_function
> plt.tight_layout() File "/usr/local/lib/python2.7/dist-packages/matplotlib/pyplot.py", line
> 1406, in tight_layout
> fig.tight_layout(pad=pad, h_pad=h_pad, w_pad=w_pad, rect=rect) File "/usr/local/lib/python2.7/dist-packages/matplotlib/figure.py",
> line 1753, in tight_layout
> rect=rect) File "/usr/local/lib/python2.7/dist-packages/matplotlib/tight_layout.py",
> line 326, in get_tight_layout_figure
> max_nrows = max(nrows_list) ValueError: max() arg is an empty sequence
谢谢你的帮助。
编辑:这是画布的代码:
from matplotlib.backends.backend_qt4agg import FigureCanvasQTAgg as FigureCanvas
import matplotlib.pyplot as plt from PyQt4 import QtGui
class Canvas(FigureCanvas):
def __init__(self, parent=None):
self.figure = plt.figure() #plt.tight_layout(pad=4)
FigureCanvas.__init__(self, self.figure)
self.setParent(parent)
FigureCanvas.setSizePolicy(self,
QtGui.QSizePolicy.Expanding,
QtGui.QSizePolicy.Expanding)
FigureCanvas.updateGeometry(self)
边界(或脊椎)已经可见,但为白色。您需要更改此响应中解释的颜色:https://stackoverflow.com/a/43265998/1773344
例如某种灰色:
如果你想要围绕轴的边界,没有简单的解决方案。除了可能把轴放在一个有调整边界的轴内,正如这个答案中部分解释的那样:https://stackoverflow.com/a/22608025/1773344
主要的一点是你似乎在使用海伯恩或者至少是海伯恩·达格丽德的风格。如果确实需要这样做,但仍然需要围绕轴设置边框,则需要更改样式。
这是(正如@Wli提到的)在this answer中解释的。
这完全独立于
tight_layout
。使用手头的信息无法确定plt.tight_layout()
产生所示错误的原因。但是,通常调用图的方法比在GUI中使用pyplot
要好。所以你可以试试self.canvas.figure.tight_layout()
。相关问题 更多 >
编程相关推荐