部分解决:通过Sage CLI在jmol中工作
Jupyter笔记本中的SageMath中的3D图仍为空白
编辑:这个问题仍然没有解决,我甚至尝试过引导到一个不同的操作系统(Debian而不是Kali)(不使用Anaconda,将(希望)得到更多的时间来尝试)
如标题所述,并通过此屏幕截图进行了说明:
而不是预期的三维图,只是一个白色的纯背景,其中有一个问号,当单击,显示一个菜单,如下图所示:
我现在已经在这个例子上(在我的系统上)做了相当多的实验,并且......举个例子:
这只显示了一个黑色正方形(而它应该显示一个球体):
sage: u = var('u')
sage: circle = (cos(u), sin(u))
sage: rp = revolution_plot3d
sage: rp(circle, (u, 0, 2*pi), axis=(0, 0),
....: show_curve=True, opacity=0.5).show(aspect_ratio=(1, 1, 1))
下面的代码(我猜)* 稍微 * 好一点,但仍然不是真正的“如它应该的那样”,或者“如预期的那样”:
sage: u = var('u')
sage: circle = (cos(u), sin(u))
sage: rp = revolution_plot3d
sage: rp(circle, (u, 0, 2*pi), axis=(0, 0), frame=False,
....: show_curve=True, opacity=0.5).show(aspect_ratio=(1, 1, 1))
(变更:在最后一行的某处包含frame=False
)。
灵感
我尝试从SageMath文档重新创建此3D图:
信息/日志:
- SageMath版本:
SageMath version 9.2, Release Date: 2020-10-24
- 操作系统:Linux
- 通过
apt
安装的SageMath:
sudo apt-get install sagemath
我不需要“得到”这个解决任何时候都很快,现在我主要是做矩阵运算,等等。所以-有没有“匆忙”想出一个解决方案在这里!这将只是一个[加+]能够做的问题描述,但它不是必要的。
任何帮助都非常感激!谢谢!
4条答案
按热度按时间gv8xihay1#
这个问题可能与Debian中的threejs包有关,它是为你得到的Sage的特定版本而提供的。
通过Conda或从二进制文件安装可能会更好。
以下是类似报告的清单(包括本报告),供参考:
ee7vknir2#
就像OP(原作者)一样,我在SageMath 9.6下的Jupyter笔记本中使用show 3d()时也出现了同样的错误。我没有使用JMOL。例如,在SageMath 9.7中,试图在Jupyter笔记本中使用show 3d(),而SageMath 9.7是在Windows 10系统上的WSL 2中的Ubuntu 20.10下编译的
导致以下错误。
(重新编排格式,以便印刷清晰。)
我的解决方法是将源代码从$HOME/sage/sage-9.7/src/sage/ext_data/threejs复制到$HOME/sage/local/lib/sage/ext_data/threejs。
这并不完全令人满意,因为目录命名表明threejs的安装没有按预期进行。我可以用SageMath开发列表来处理这个问题。
jhdbpxl93#
重大更新:
为了不把虚假的希望介绍给未来的读者:我还没有解决它在Jupyter笔记本。
但是
我已经(可能)用一个查看器修复了它,我的系统已经预装了Jmol;(可能是因为我以前喜欢它,用它做了一些练习,就像在Matlab中一样)
(部分)解决方案:
但这里的事情,当我访问一个SAGE终端(bash -〉
sage
),例如,绘制一些东西**,通常只会导致白色-或黑色屏幕在Jupyter无论我试图使它工作;**它打开一个jmol窗口 (实际应用程序- Jmol)
然后把它画出来
我不知道让Jmol和sage数学一起工作是这么容易的(一个实际的事实;我都不知道这是可能的
截图
这里有一些屏幕截图(Jupyter -黑屏,和完全相同的代码-但从
Sage Terminal
运行相同代码,但在Sage终端中:
(相同的结果)(这对我来说是不可能的,即使在我 * 可以 *(在木星)(丑陋)-绘图的时候,它也没有显示预期的结果,(颜色有点扭曲,形式与Sage Docs显示的实际绘图几乎没有共同之处)
老实说,我认为-我更喜欢这个,即使Jupyter已经工作(也许在未来的某个时候)这个- jmol应用程序有一些非常整洁的属性,(颜色,轴,和动画(旋转)和其他东西)我真的不知道这一点;在Jupyter中,人们可能可以用鼠标旋转并放大,但不能轻松地改变颜色-(不是说这是更期望的结果,但在我看来-在我的场景中-这是一个,(*)很好的解决方案,如果不是一个实际的解决方案,(在我的情况下,我将继续这样做,它是完美的)
希望这对将来的某个人有帮助!
35g0bw714#
添加另一个答案,因为这是很久以前的事了,而且是一个完全不同的解决方案
通过添加
Frame=False
,工程完美,可以肯定的是,这真的,工程我已经测试了许多以前的问题,我以前,它似乎工作,我不知道这是什么,但至少它的工作我还用
opacity=1
做了一些实验