Sar*_*ssi 3 python time-series matplotlib pandas
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)
Run Code Online (Sandbox Code Playgroud)
我也尝试过:
plt.tight_layout()
Run Code Online (Sandbox Code Playgroud)
但它会产生此错误:
> 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
Run Code Online (Sandbox Code Playgroud)
您的帮助将不胜感激,谢谢。
编辑:这是画布的代码:
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)
Run Code Online (Sandbox Code Playgroud)
边框(或刺)已经可见,但为白色。您需要按照此响应中的说明更改颜色:https : //stackoverflow.com/a/43265998/1773344
某种灰色的示例:
ax.spines['bottom'].set_color('0.5')
ax.spines['top'].set_color('0.5')
ax.spines['right'].set_color('0.5')
ax.spines['left'].set_color('0.5')
Run Code Online (Sandbox Code Playgroud)
如果您希望轴周围有边界,则没有简单的解决方案。除了可能将轴放入具有调整边界的轴之内(如此答案部分所述):https : //stackoverflow.com/a/22608025/1773344
要点是你似乎正在使用seaborn或至少是seaborn darkgrid风格。如果这确实是需要的,但您仍然想要轴周围有边框,则需要更改样式。
plt.rcParams["axes.edgecolor"] = "black"
plt.rcParams["axes.linewidth"] = 1
Run Code Online (Sandbox Code Playgroud)
这是(正如@Wli提到的)在这个答案中解释的。
这一切都是独立于tight_layout. plt.tight_layout()根据现有信息无法确定产生所示错误的原因。然而,一般来说,调用图形的方法可能比pyplot在 GUI 中使用更好。所以你可以尝试self.canvas.figure.tight_layout()一下。
| 归档时间: |
|
| 查看次数: |
6218 次 |
| 最近记录: |