我有几个按钮可以生成图像。所有的一切都在木星笔记本中完美地工作,但是当我点击Voila,点击按钮,什么都不会发生。第一个按钮工作,但代码非常类似于运行其他模型,但其他按钮不工作。在这个问题上有工作要做吗?
编辑:我的代码,它在单击按钮时不显示输出:
compare = {}
button9 = widgets.Button(description = "Report All")
output = widgets.Output()
display(button9, output)
dt = DecisionTreeClassifier(random_state=42)
dt = dt.fit(X_train, y_train)
y_pred = dt.predict(X_test)
compare['Decision Trees'] = [accuracy_score(y_test, y_pred), precision_score(y_test, y_pred), recall_score(y_test, y_pred), f1_score(y_test, y_pred)]
def report_button(b):
compare = pd.DataFrame.from_dict(compare).T
compare.columns = ['Accuracy', 'Precision', 'Recall', 'F1 Score']
compare = com.sort_values('Accuracy', ascending=False)
sns.heatmap(compare, center = True, fmt='.4f', cmap='Blues', annot=True)
button9.on_click(report_button)但是,当单击此代码时,将显示输出:
button3 = widgets.Button(description="Decision Trees")
output3 = widgets.Output()
display(button3, output3)
def dt_button(b):
# Decision Trees Classifier
dt = DecisionTreeClassifier(random_state=42)
dt = dt.fit(X_train, y_train)
y_pred = dt.predict(X_test)
compare['Decision Trees'] = [accuracy_score(y_test, y_pred), precision_score(y_test, y_pred_dt), recall_score(y_test, y_pred), f1_score(y_test, y_pred)]
CM = confusion_matrix(y_test, y_pred_dt)
sns.heatmap(CM, center = True, fmt='', cmap='Blues', annot=True)
plt.title('Decision Trees Confusion Matrix')
plt.show()
button3.on_click(dt_button)此外,我遇到了使用Voila呈现文件的MyBinder问题,但几分钟后,MyBinder链接显示了错误404。
发布于 2022-05-05 20:32:06
我在这里回答您的最后一个问题(关于下载按钮),因为我需要添加代码块,注释不允许这样做。
您正在使用面板在您的笔记本进行下载,因此它的工作。对于Voila,您需要坚持使用与ipywidget兼容的解决方案,正如我前面所讨论的。您不能仅仅添加另一个仪表板扩展Panel,并期望它在Voila中工作。
这里让人觉得这并不像看起来那么容易。
建议的选项:
基于https://stackoverflow.com/a/60013735/8508004,以SVM_Confusion_Matrix.jpg为例。
%%html
<a href="SVM_Confusion_Matrix.jpg" download="SVM_Confusion_Matrix.jpg">Click to Download SVM image</a>这条线上的选项甚至可以被编码,以便在VOila中的事件之后动态显示,参见示例代码使用。
不建议,但可能对类似情况有用:
基于https://github.com/jupyter-widgets/ipywidgets/issues/2471#issuecomment-580965788 (这只是将图像作为单独的打开,您必须右键单击并将图像保存为)
from IPython.display import display, FileLink
local_file = FileLink('./SVM_Confusion_Matrix.jpg', result_html_prefix="Click here to download: ")
display(local_file)https://stackoverflow.com/questions/72036644
复制相似问题