我正在尝试保存一个 pycaret 图,但只得到一个空白文件:
plt.figure(figsize = (18,9))
plot_model(pycaret_xgboost, 'auc')
plt.savefig('ROC_xboost.svg')
我正在尝试保存一个 pycaret 图,但只得到一个空白文件:
plt.figure(figsize = (18,9))
plot_model(pycaret_xgboost, 'auc')
plt.savefig('ROC_xboost.svg')
在 PyCaret 2.0 中,您可以save
在内部传递参数plot_model
。
例如:
plot_model(model, plot = 'AUC', save=True)
这会将 AUC.png 保存在您当前的工作目录中。
将 pycaret 更新为 2.0 ( pip install pycaret==2.0
)。save
函数中添加了一个新参数plot_model()
。当 save 设置为 True 时,根据绘图类型的 png / html 文件将保存在当前工作目录中。每个地块的名称是预先定义的。
当您尝试将图形保存为 svg 文件时,可能会出现此问题。这是 StackOverflow 上的一个答案,可能会对您有所帮助
@maria_g 分享了一个正确的参考。正如答案中,这个人只使用 pyplot 来绘制和保存图表。
附件是一个示例,说明如何使用 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()
您正在交替使用 pyplot 和 pycaret。我建议您仔细阅读文档。“ROC_xboost.svg”的原因是空白的,因为您没有使用 pyplot 绘制任何内容。您显然使用了 pycaret 的“plotmodel”来绘制它。Pycaret 提供“save_model()”来保存创建的模型,尽管它不会保存绘图。请参考https://pycaret.org/plot-model/、https://pycaret.org/save-model/。使用 pyplot 绘制模型。