使用带有 yellowbrick 的子图并丢失图例和标题时的问题

Issues when using subplots with yellowbrick and losing legend and titles

我在将多个 yellowbrick 图表放入子图排列时遇到问题。标题和图例只显示最后一张图表。我尝试了多种方法来编写代码,但无法让所有方法都显示图例和标题。我确定上班很简单。

这是一段代码:

f, ((ax1, ax2), (ax3, ax4)) = plt.subplots(2, 2,figsize=(14, 10))

viz = FeatureImportances(LinearRegression(), ax=ax1)
viz.fit(X_train, y_train)

viz = LearningCurve(LinearRegression(), scoring='r2',cv=10, ax=ax2)
viz.fit(X_train, y_train)

viz = ResidualsPlot(clf, ax=ax3)
viz.fit(X_train, y_train) 

viz = PredictionError(LinearRegression(), ax=ax4)
viz.fit(X_train, y_train) 
viz.score(X_test, y_test) 

viz.poof()

image of plots

@chris-mangum 很抱歉,您遇到了这个问题。除了 show 我们还有另一个方法叫做 finalize 在这种情况下,finalize 比 show 更好——show 调用 finalize 然后 show 或 savefig 结束这个数字,所以在像你这样的多轴图中,你不想叫 poof。

f, ((ax1, ax2), (ax3, ax4)) = plt.subplots(2, 2,figsize=(14, 10))

viz = FeatureImportances(LinearRegression(), ax=ax1)
viz.fit(X_train, y_train)
viz.finalize()

viz = LearningCurve(LinearRegression(), scoring='r2',cv=10, ax=ax2)
viz.fit(X_train, y_train)
viz.finalize()

viz = ResidualsPlot(clf, ax=ax3)
viz.fit(X_train, y_train) 
viz.finalize()

viz = PredictionError(LinearRegression(), ax=ax4)
viz.fit(X_train, y_train) 
viz.score(X_test, y_test) 

viz.finalize()