我看到有可能在演示过程中这样做:https://youtu.be/2Tt0i823-ec?t=769
演示者那里有一个庞大的数据集,可以通过使用鼠标选择一个矩形来快速放大。
我还看到了本教程的“交互式小部件”部分:https://docs.vaex.io/en/latest/tutorial.html#Interactive-widgets
但是,我无法轻松复制该设置。实现它的最少步骤是什么?
在Ubuntu 19.04 vaex 2.0.2上,我已经尝试过:
python3 -m pip install --user vaex scipy pandas vaex-jupyter
jupyter nbextension enable --py widgetsnbextension
jupyter nbextension enable --py bqplot
jupyter nbextension enable --py ipyvolume
jupyter nbextension enable --py ipympl
jupyter nbextension enable --py ipyleaflet
jupyter nbextension enable --py ipyvuetify
jupyter notebook
然后我创建了一个笔记本并粘贴在笔记本中:
import vaex
import vaex.jupyter
import numpy as np
import pylab as plt
%matplotlib inline
df = vaex.example()
df.plot_widget(df.x, df.y, f='log1p', backend='bqplot')
但是我得到的只是没有图形和消息:
Plot2dDefault(w=None, what='count(*)', x='x', y='y', z=None)
如果相反,我这样做:
df.plot(df.x, df.y, f='log1p')
然后我得到了一个图,但这只是一个非交互式图像。
我还尝试了git clone笔记本,它是读取文档页面的源:https://github.com/vaexio/vaex/blob/0247f0673c5c0473001b0b66adcbc716560536aa/docs/source/tutorial.ipynb,但结果是相同的。
我的动机是要找到一个可以处理大量点的绘图程序,如Large plot: ~20 million samples, gigabytes of data
所述答案 0 :(得分:2)
使用virtualenv
不确定原因,但这已解决。我认为这是因为Jupyter可执行文件在Python 2上并且找不到Python 3扩展。
virtualenv --python=python3 .venv
. .venv/bin/activate
python3 -m pip install vaex scipy pandas vaex-jupyter
jupyter nbextension enable --py widgetsnbextension
jupyter nbextension enable --py bqplot
jupyter nbextension enable --py ipyvolume
jupyter nbextension enable --py ipympl
jupyter nbextension enable --py ipyleaflet
jupyter nbextension enable --py ipyvuetify
jupyter notebook
并在新笔记本中
import vaex
df = vaex.example()
df.plot_widget(df.x, df.y, f='log1p', backend='bqplot')
现在我看到具有缩放功能的交互式小部件!
版本:
pandas==0.25.0
scipy==1.3.0
vaex==2.0.2
vaex-jupyter==0.3.0
答案 1 :(得分:1)
Jupyter小部件存在前端代码和内核代码,内核代码(在这种情况下为Python)通常不是问题,如果您可以导入ipywidgets模块等,就可以了。
最大的问题是确保前端(经典笔记本或Jupyter实验室)已加载匹配的javascript库。假设您使用的是传统笔记本,调试方法如下:
由于ipywidgets库的javascript代码是使用nbextension机制添加到前端的,因此您可以检查是否使用启用并验证了所有库
$ jupyter nbextension list
应该显示所有绿色的“确定”和“已启用”(除非您明确禁用了它)。
如果未正确安装,则可能需要安装前端代码,例如:
$ jupyter nbextension install --py --symlink --sys-prefix ipywidgets
$ jupyter nbextension install --py --symlink --sys-prefix ipyvuetify
如果由于某种原因未自动启用扩展名(笔记本电脑的旧版本),请运行:
$ jupyter nbextension enable bqplot --py --sys-prefix
$ jupyter nbextension enable ipyvuetify --py --sys-prefix
如果事情不正常,您应该测试哪个库不正常,例如,从ipywidgets开始:
import ipywidgets as widgets
widget.FloatSlider()
如果没有显示滑块,则您有麻烦。继续使用其他库,并查看何时失败。如果失败,请检查JavaScript控制台(用于浏览器的Google)以获取错误消息,并查看是否从中获得提示。
最后,请确保您使用的是现代浏览器,Internet Explorer将不再删除它,因为它太旧了。我建议使用Chrome / Chromium或Firefox。