问题标签 [ipycanvas]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
111 浏览

python - 如何在 Jupyter-lab 中将 ipycanvas 画布对象显示到单独的选项卡或面板中

我正在尝试在 Jupyter 笔记本(https://ipycanvas.readthedocs.io/en/latest/)中使用 ipycanvas。它工作正常。但是,当您添加新的“部分”时,Jupyter 笔记本会向下滚动。如果画布对象显示在上方,并且当您想要在底部的部分中操作画布对象时,您将看不到更新,因为您需要向上滚动。

我想做一些类似于在单独的选项卡中显示熊猫数据框的事情(将熊猫数据框显示到另一个选项卡中)。是否有任何工具或 jupyter-lab 插件可以做到这一点?

0 投票
1 回答
63 浏览

python - 类型不是 ipycanvas 中的 JSON 可序列化错误

我正在尝试在 Jupyter notebook 中使用 SageMath 9.3(我也尝试过 9.3.rc2)在 macOS 11.4 和 Python 3 中使用 ipycanvas。当我使用 SageMath 9.2 和 Python 3 时,ipycanvas 工作正常,但是当我将 sage 更新到 SageMath 9.3 时我开始遇到问题。

我做的第一件事是在我的 mac 终端上再次安装 ipycanvas

$ sage —pip install ipycanvas

安装显然是成功的。

但是,即使运行 ipycanvas 的最小实例也会产生 JSON 类型的可序列化错误,例如,

在此处输入图像描述

我无法弄清楚为什么这次我会出错。我如何序列化圣人理性?

我找到的解决方案是将每个圣人数字转换为浮点数。但是,这在打字时有点烦人。我错过了什么吗?

0 投票
1 回答
47 浏览

python - 如何在同一个笔记本单元格中打印字符串和显示画布

在使用 ipycanvas 的 jupyter notebook 工作时,我遇到了打印内容并同时显示画布的问题。

打印工作或画布显示工作正常,但两者都不会。

有没有办法在同一个单元格中做这两个?

这基本上是这里的示例代码。以这种方式执行单元格可以正确显示画布,但缺少测试消息。如果我手动调用该handle_mouse_down()函数,它将被打印出来。

由于我目前正在使用此示例笔记本的更复杂版本,因此我希望在使用画布时查看错误/调试消息。

0 投票
1 回答
20 浏览

jupyter-lab - ipycanvas 显示最终的 stroke_lines 动画

所以我在玩一些贝塞尔曲线的动画——只是学习如何使用 ipycanvas (0,10,2) 的一部分——我制作的动画真的让我头疼。我期望看到的是 4 个贝塞尔控制点之间的一组直线,它们在画布周围“弹跳”,贝塞尔曲线也随之移动。

我确实得到了移动的贝塞尔曲线——但控制点保持静止。更奇怪的是,他们在最后的位置上是静止的,曲线来迎接他们。

现在有时 Python 的结构和引用会变得有点棘手,所以如果你没有真正考虑清楚,有时会得到令人困惑的结果——这完全可能是正在发生的事情——但我不知所措。

因此,为了确保我不感到困惑,我在开始时打印了控制点(pts),然后将它们显示到画布上。这证实了我的猜想。通过量子隧道或其他一些神奇的时间旅行,这条线canvas.stroke_lines(pts)到达未来并抓住未来pts存在的阵列并将控制点保持在其最终状态。

其他所有使用都pts使用当前时间状态。

所以我需要知道的是 A) 物理定律是安全的,我只是太笨了,无法理解我自己的代码。B)我应该报告 ipycanvas 中有一些奇怪的错误。C)如何通过这种时间旅行代码获利——比如,我们可以用它来以某种方式分解大量数字吗?

说真的,我试图思考可能发生的事情,但我却一头雾水。由于 ipycanvas 正在与浏览器/javascript 对话,因此可能首先呈现帧的所有数据,并且用于保存pts数据的数组stroke_lines最终得到最终值......而 B 数组在每个循环中重新创建...... . 这是一个猜测。