问题标签 [datashader]
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.
python - Geoviews + Datashader在投影点时很慢
我正在绘制 550,000,000 个纬度和经度datashader
。但是,为了使它有用,我需要使用geoviews
. 问题是geoviews.points()
相关的投影会导致大幅减速,从而使holoview
+bokeh
绘图的交互性质变得多余。
下面有一个可重现的示例,但简而言之 - 我正在尝试使 geoviews 实现 (3) 足够快以交互工作。
首先设置一些数据
例如,将数据的大小缩小 10。
(1) 只是数据着色器
仅使用不带全息视图或地理的数据着色器非常快 - 输出在 4 秒内渲染,包括聚合,因此如果交互,重新渲染会更快。
纯datashader版本的时间:
CPU 时间:用户 968 毫秒,系统:29.9 毫秒,总计:998 毫秒挂壁时间:506 毫秒
(2)datashader
在holoviews
没有geoviews
投影的情况下
没有任何投影,这相当于使用纯datashader
CPU 时间:用户 3.32 毫秒,系统:131 微秒,总计:3.45 毫秒挂壁时间:3.47 毫秒
(3)datashader
在瓦片holoviews
、geoviews
多边形和投影中
这是问题的症结所在 - 我想对齐数据着色器层与一些地图图块和地理空间多边形。这会导致速度大幅下降,对于我正在处理的数据大小,使得交互式可视化变得多余。(渲染总共需要 12 分钟的等待时间)。
我确定这与投影点相关的开销有关 - 有没有办法避免这种情况或任何其他解决方法,例如预先计算投影?
这与上面的添加gv.points()
和投影相同
CPU 时间:用户 11.8 秒,系统:3.16 秒,总计:15 秒挂壁时间:12.5 秒
python - conda install 'package' 后 Python 降级未出现在 python --version 中
我一直在尝试安装一个特定的包 - datashader。随后的步骤 -
基于上述降级信息,我假设我的 python 将在这个虚拟环境中降级。但那并没有发生。
(dashshader) > conda list
列出了上面的所有包,包括 dashshader。然而,当我这样做时,import pandas as pd
它失败了。也(dashshader) > python --version #3.7.0-hea74fb7_0
。
但是当我创建一个新的 env 并做时
(newenv) > pip install datashader
,又安装了一堆包,python --version
并且#Python 3.6.7 :: Anaconda custom
我的包导入很好。
当我pip list
在较旧的环境中进行操作时,我得到一个AssertionError: SRE Module mismatch
. 虽然我的问题已经解决了pip
;我对发生的事情知之甚少。显然conda
占用了一些不可变的空间,sre_compile.py
但是我不明白为什么在说它会降级python之后它没有降级python。
python - 在 Holoviews/Datashader 中更改分类数据的颜色图
我正在尝试使用 Datashader 和 Holoviews 可视化分类空间数据,类似于https://anaconda.org/jbednar/census-hv-dask/notebook。但是,当我尝试为类别分配不同的颜色时,我总是以相同的(可能是默认的)颜色结束(输出图像的示例。)
这是我在 Jupyter notebook 中运行的代码。谁能告诉我如何使自定义颜色图起作用?或者至少运行代码以查看您是否最终得到与图例匹配的颜色。谢谢!
python - 如何使用 Holoviews Bokeh Datashader 进行 ylim plot Limits
如何将 y-limits (ylim) 添加到使用 Holoviews Datashader 创建的绘图中?
我已经尝试了 hv.Dimension 函数并添加了 ylim=() 参数,但它要么是拒绝它的 Holoview,要么是不理解参数的 Datashader 函数。
ylim 未被识别且 hv.Dimension 无效
python - 使用 Datashader / Holoviews / Bokeh 循环子图
使用 datashade/holoviews/Bokeh 创建子图的一般表示法是使用“+”表示法:
但是,我正在尝试像使用 Matplotlib 一样在 for 循环中生成绘图。在 Seaborn 中,我可以这样做来创建子图,同时通过数据框递增:
如何将我下面用于 Datashade/Holoviews 的方法转换为更自动化的过程?
我最初的方法是使用创建自定义字符串来模仿正常的 Datashade 表示法并在其上运行 exec() ,但这在使用内部函数时不起作用或最终遇到其他错误。
python - 如何将后端的全息视图与 bokehjs 前端连接起来
嗨,我正在开发一个需要绘制数百万个点的网页,因此我在后端使用HoloViews生成绘图并将其作为Bokeh模型发送到使用Bokehjs的前端。
因此,在 API 中,我调用了一个执行此操作的函数
并返回一个以 JSON 格式发送到前端的 Bokeh 模型。
该函数hd.datashade
渲染散景图并在内部调用 datashader 以在您控制缩放时创建图像。但问题是,当我通过 API 调用此函数一次时,缩放控件不会创建新图像,而只会使像素变大。
我需要一种方法来让“实时 python 进程运行”作为文档状态,这样我就可以拥有缩放控件和工具提示。但我不知道如何实现这一目标。
python - 为什么我不能用 datashader 绘制这个 dask 数据框(没有足够的值来解包)?
我想用 datashader + holoviews 绘制一个大图,但我遇到了一个错误。
一些小而可重复的东西是:
失败了
ValueError: 没有足够的值来解包(预期 3,得到 0)
---> 17 graph = layout_nodes(hv.Graph(edges_df), layout=forceatlas2_layout)
但是,设置targets = [1, 1, 1, 1, 1]
我得到一个情节。
使用“故障” targets
,如果我使用random_layout
而不是 forceatlas2,我也会得到一个情节。
我很困惑!为什么我会收到该错误以及如何摆脱它?我正在使用数据着色器 0.7.0。
python - 如何使用数据着色器为图形的节点着色?
我想用 datashader 可视化一个图形(我有很多节点),如
这可行,但由于我的图表是二分的,我想用不同的颜色为sources
和targets
节点着色,例如使用调色板,如:(
my_colors_dict = {5: 'red', 3: 'blue', 1: 'blue', 2: 'blue', 4: 'blue'}
即所有节点均为蓝色,但我的单个节点为“5” targets
)
我怎样才能做到这一点?我对图书馆还不是很熟悉,到目前为止只能提出笨拙的尝试..
stream - 如何在带有全息视图的数据着色器中启用自动重采样以及通过管道进入 DynamicMap 的(实时)数据流?
虽然我有一个通过管道的数据流以及一个包含曲线的 holoviews.DynamicMap,在其上应用了 holoviews.operation.datashader.datashade():当使用缩放工具时,视图不会重新采样(对于静态数据)领先对我的数据进行非常像素化的可视化。我需要做什么才能启用此重采样?
我用 python3 在 jupyter notebook 中运行整个过程
当我只使用静态数据设置我的 holoviews.DynamicMap 并且我没有运行管道时,它可以正常工作。
当我开始填充管道(从未使用它)时,不再进行重新采样。(我根本不使用管道)
问题场景:
(jupyter notebook 中的 3 个单元格)
(1) 进口
(2) 设置管道和绘图
(3) 生成数据流
调试场景:
替代单元格 (2)
(备选方案 2)使用静态绘图设置管道和绘图
(只要不执行单元格(3)就可以工作,那么这个替代方案就会停止工作)
预期结果:
不断更新带有噪声的图(稍后使用真实数据)
因此实际图形被采样成图像,在放大采样时应调整到实际视图
实际结果:
放大不会触发对图像的采样调整。