如何在vaex交互式Jupyter bqplot plot_widget中更改点样式以使单个点更大且可见?

时间:2019-08-10 20:58:18

标签: vaex

我正在评估vaex,用于Large plot: ~20 million samples, gigabytes of data

中描述的交互式异常值选择用例

基本上,我有一些个别点是异常值,我想在图形上查看它们以手动选择它们,然后进一步检查它们。

问题在于,如果数据集的其余部分太大,则各个点将变得不可见。

如何使这些单个点可见?

例如,如果我生成一个数据集,该数据集具有10亿个点,并且在中心顶部有一个异常值:

import h5py
import numpy

size = 1000000000

with h5py.File('1b.hdf5', 'w') as f:
    x = numpy.arange(size + 1)
    x[size] =  size / 2
    f.create_dataset('x', data=x, dtype='int64')
    y = numpy.arange(size + 1) * 2
    y[size] =  3 * size / 2
    f.create_dataset('y', data=y, dtype='int64')
    z = numpy.arange(size + 1) * 4
    z[size] = -1
    f.create_dataset('z', data=z, dtype='int64')

,然后使用以下命令将其显示在Jupyter笔记本上:

import vaex
df = vaex.open('1b.hdf5')
df.plot_widget(df.x, df.y, backend='bqplot')

我在Jupyter上得到了这个

enter image description here

所以我看不到离群值应该在中间顶部。

但是我可以选择它,因为我知道它在哪里,并且确实会在selection=True方法上显示。只是没有显示。

https://vaex.readthedocs.io/en/latest/tutorial.html#Smaller-datasets-/-scatter-plot上有一些示例,这些示例看起来很明显,但是我尝试将额外的参数c="red", alpha=0.5, s=4添加到plot_widget上,但没有用,可能是该后端不支持它们

也许有一种方法可以配置bqplot来更改其打印样式?

在vaex 2.0.2上进行了测试。

1 个答案:

答案 0 :(得分:1)

这可能是小部件的布局问题。从顶部看,我似乎被剪裁了。但是,如果缩小,则应该可以看到它。

假设您这样做了,由于vaex的plot_widget不会绘制符号(否则它将无法显示10亿个点),因此您可能看不到太多,

如果要查看低密度区域,则可能要在日志中显示(通过f ='log',或打开左侧的抽屉并选择它)。如果在日志中显示,则其为空的区域将为-inf,将透明显示。因此,您现在应该能够更轻松地看到“异常像素”,特别是如果您降低分辨率(通过形状= 128)。

具有这两个选项:

df.plot_widget(df.x, df.y, f='log', shape=128, backend='bqplot')

输出看起来像这样:

enter image description here

,离群点在中心顶部清晰可见。