使用 vaex 绘制大数据
Plot large data with vaex
我一直在努力创建一个包含数百万行的 csv 图。我正在尝试使用 vaex 模块,但我卡住了..
import vaex
# converts and reads large csv into hdf5 format
df = vaex.open("mydir/cov2.csv", convert='hdf5')
df.head()
Output
# chr pos cov index
<i style='opacity: 0.6'>0</i> NC_024468.2 1.34986e+08 6 0
<i style='opacity: 0.6'>1</i> NC_024468.2 1.34986e+08 6 1
<i style='opacity: 0.6'>2</i> NC_024468.2 1.34986e+08 6 2
csv 被转换为 hdf5 并加载,但现在有 2 个索引,其中 1 个具有奇怪的 HTML 格式。当我尝试像 documentation and and the solution benchmarked in this thread:
那样绘制它时
df.plot_widget(df.pos, df.cov)
我得到一个值错误。
ValueError: <bound method DataFrame.cov of
# chr pos cov index
0 NC_024468.2 134986302 6 0
1 NC_024468.2 134986303 6 1
... ... ... ... ...
2,704,117 NC_024468.2 137690419 0 2704117
2,704,118 NC_024468.2 137690420 0 2704118 > is not of string or Expression type, but <class 'method'>
解决办法是改成df.col.cov或df["cov"]。不过,现在我从 plot_widget 方法得到一个空输出:
PlotTemplate(components={'main-widget': VBox(children=(VBox(children=(Figure(axes=[Axis(color='#666', grid_col…
Plot2dDefault(w=None, what='count(*)', x='pos', y='cov', z=None)
谁能帮帮我?
亲切的问候,
里卡多
编辑
csv 数据样本。列 pos 每行增加 1 (1.37 亿),cov 几乎始终为 0,但在某些区域达到 1-400:
chr,pos,cov
NC_024468.2,1,0
NC_024468.2,2,0
NC_024468.2,3,0
.....
NC_024468.2,137690418,7
NC_024468.2,137690419,6
NC_024468.2,137690420,6
这里有很多问题:
- 制表打破了他们的 HTML 输出:https://github.com/vaexio/vaex/issues/675。我们很快就会计划解决方法。
- vaex.open 调用 http://docs.vaex.io/en/latest/api.html#vaex.from_csv which takes copy_index, instead call
vaex.open('...', convert=True, copy_index=False)
. I opened an issue for that https://github.com/vaexio/vaex/issues/754 更改默认值。
- df。是一个 shorthand for df[""] when df.不存在,df.cov 已经存在 :),运气不好。
- widget问题是一般的ipywidgets安装问题,先确保可以正常显示ipywidgets.Button()。
我一直在努力创建一个包含数百万行的 csv 图。我正在尝试使用 vaex 模块,但我卡住了..
import vaex
# converts and reads large csv into hdf5 format
df = vaex.open("mydir/cov2.csv", convert='hdf5')
df.head()
Output
# chr pos cov index
<i style='opacity: 0.6'>0</i> NC_024468.2 1.34986e+08 6 0
<i style='opacity: 0.6'>1</i> NC_024468.2 1.34986e+08 6 1
<i style='opacity: 0.6'>2</i> NC_024468.2 1.34986e+08 6 2
csv 被转换为 hdf5 并加载,但现在有 2 个索引,其中 1 个具有奇怪的 HTML 格式。当我尝试像 documentation and and the solution benchmarked in this thread:
那样绘制它时df.plot_widget(df.pos, df.cov)
我得到一个值错误。
ValueError: <bound method DataFrame.cov of
# chr pos cov index
0 NC_024468.2 134986302 6 0
1 NC_024468.2 134986303 6 1
... ... ... ... ...
2,704,117 NC_024468.2 137690419 0 2704117
2,704,118 NC_024468.2 137690420 0 2704118 > is not of string or Expression type, but <class 'method'>
解决办法是改成df.col.cov或df["cov"]。不过,现在我从 plot_widget 方法得到一个空输出:
PlotTemplate(components={'main-widget': VBox(children=(VBox(children=(Figure(axes=[Axis(color='#666', grid_col…
Plot2dDefault(w=None, what='count(*)', x='pos', y='cov', z=None)
谁能帮帮我?
亲切的问候, 里卡多
编辑
csv 数据样本。列 pos 每行增加 1 (1.37 亿),cov 几乎始终为 0,但在某些区域达到 1-400:
chr,pos,cov
NC_024468.2,1,0
NC_024468.2,2,0
NC_024468.2,3,0
.....
NC_024468.2,137690418,7
NC_024468.2,137690419,6
NC_024468.2,137690420,6
这里有很多问题:
- 制表打破了他们的 HTML 输出:https://github.com/vaexio/vaex/issues/675。我们很快就会计划解决方法。
- vaex.open 调用 http://docs.vaex.io/en/latest/api.html#vaex.from_csv which takes copy_index, instead call
vaex.open('...', convert=True, copy_index=False)
. I opened an issue for that https://github.com/vaexio/vaex/issues/754 更改默认值。 - df。是一个 shorthand for df[""] when df.不存在,df.cov 已经存在 :),运气不好。
- widget问题是一般的ipywidgets安装问题,先确保可以正常显示ipywidgets.Button()。