gpt4 book ai didi

python - 使用数据着色器绘制时间序列图

转载 作者:太空宇宙 更新时间:2023-11-04 04:30:25 25 4
gpt4 key购买 nike

我的目标是利用数据着色器绘制时间序列数据,并在可能的情况下使用 Bokeh 或数据着色器本身使其具有交互性。

我尝试遵循本教程 - http://datashader.org/user_guide/3_Timeseries.html并想出了显示在 url 页面末尾的图表。

代码如下:

n = 100000
points = 10
data = np.random.normal(0, 100, size = (n, points))
df = ds.utils.dataframe_from_multiple_sequences(np.arange(points), data)
cvs = ds.Canvas(plot_height=400, plot_width=1000)
agg = cvs.line(df, 'x', 'y', ds.count())
img = tf.shade(agg, how='eq_hist')

在上面的代码中形成了一个图像对象,现在我如何利用这个 img 对象使它成为一个交互式图形(使用 Bokeh 或数据着色器)显示 x 和 y 轴,显示悬停在每个点的细节图表并带有放大和缩小功能。

另外,上面的数据框有多个列,但为了绘制,多列被添加为数据框中的行,由数据框中的 NA 行分隔(如上面的代码所示)。是否可以在交互式图形中绘制不同颜色的列,以便在数据着色器图形中轻松区分列。

请帮忙。

最佳答案

使用 HoloViews 很容易从中制作交互式 Bokeh 图:

import datashader as ds, numpy as np, holoviews as hv
from holoviews.operation.datashader import datashade

n = 100000
points = 10
data = np.random.normal(0, 100, size = (n, points))
df = ds.utils.dataframe_from_multiple_sequences(np.arange(points), data)

hv.extension("bokeh")
datashade(hv.Curve(df)).options(width=1000)

Unzoomed

Zoomed

对于着色,你需要多少种不同的颜色?人类无法区分 100,000 种颜色,但我正在研究 https://github.com/pyviz/colorcet/issues/11获得至少几百种可区分的颜色。如果您只需要几十个(例如按类别着色)现有的颜色循环应该可以正常工作。数据会以某种方式首先需要指明类别...

关于python - 使用数据着色器绘制时间序列图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52730204/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com