如何保存 pycaret 图?

How to save a pycaret plot?

我正在尝试保存 pycaret 图,但只得到一个空白文件:

plt.figure(figsize = (18,9))
plot_model(pycaret_xgboost, 'auc')
plt.savefig('ROC_xboost.svg')

您正在交替使用 pyplot 和 pycaret。 我建议你仔细阅读文档。 “ROC_xboost.svg”为空的原因是您没有使用 pyplot 绘制任何内容。 您显然使用了 pycaret 的 "plotmodel" 来绘制它。 Pycaret 提供 "save_model()" 来保存创建的模型,但它不会保存绘图。 请参考 https://pycaret.org/plot-model/, https://pycaret.org/save-model/ 。 使用 pyplot 绘制模型。

当您尝试将图形保存为 svg 文件时,可能会出现此问题。 Here 是 Whosebug 上的一个答案,可能对您有帮助

@maria_g 在答案中分享了一个正确的 reference.As 这个人只使用 pyplot 来绘制和保存图形。

将 PyCaret 更新到 2.0

将 pycaret 更新到 2.0 (pip install pycaret==2.0)。 plot_model() 函数中添加了一个新参数 save。当 save 设置为 True 时,根据绘图类型的 png / html 文件将保存在当前工作目录中。每个地块的名称是 pre-defined.

在 PyCaret 2.0 中,您可以在 plot_model.

中传递 save 参数

例如:

plot_model(model, plot = 'AUC', save=True)

这会将 AUC.png 保存在您当前的工作目录中。

附件是如何使用 yellowbrick 从 pycaret 模型导出矢量图(pdf、svg、eps)的示例。它已通过 googlecolab 和 pycaret 2.3.4 测试。

#---- data
from pycaret.datasets import get_data
dataset = get_data('diamond')

#---- model pycaret
from pycaret.regression import *
exp_reg101 = setup(data = dataset, target = 'Price', session_id=123, 
                   remove_multicollinearity = True, multicollinearity_threshold = 0.95) 

lightgbm = create_model('lightgbm')

#---- plot
from yellowbrick.regressor import ResidualsPlot

X_train, X_test, y_train, y_test = get_config('X_train'), get_config('X_test'), get_config('y_train'), get_config('y_test')

visualizer = ResidualsPlot(lightgbm) # regression model
visualizer.fit(X_train, y_train) # Fit the training data to the visualizer
visualizer.score(X_test, y_test) # Evaluate the model on the test data
visualizer.poof(outpath="ResidualsPlot.pdf") # VECTOR .pdf .eps .svg, RASTER .png .jpg .tif
#visualizer.poof()  # Finalize and render the figure

#---- file extensions supported
import matplotlib.pyplot as plt
plt.figure().canvas.get_supported_filetypes()