gpt4 book ai didi

python - 使用 Datashader 从 NumPy 数组绘制数据的最佳方法是什么?

转载 作者:太空狗 更新时间:2023-10-30 02:55:34 29 4
gpt4 key购买 nike

在关注 Datashader示例 notebook demonstrating lines ,输入是一个 Pandas DataFrame(尽管看起来 Dask DataFrame 也可以)。我的数据在 NumPy 数组中。我可以使用 Datashader 绘制 NumPy 数组中的线条,而无需先将它们放入 DataFrame 中吗?

line glyph 的文档似乎表明这是可能的,但我没有找到一个例子。我链接到的示例笔记本使用了我在文档中没有找到的 Canvas.line

最佳答案

如果不先将数据放入 DataFrame,我找不到在 NumPy 数组中绘制数据的方法。如何做到这一点并不是特别直观,似乎 Datashader 要求列标签是非数字字符串,因此可以使用 df.col_label 语法(而不是 df[ col_label] 语法,但也许有一个很好的理由)。

在当前系统中,我必须执行以下操作才能将 NumPy 数组放入具有 Datashader 可接受的列标签的 DataFrame 中。

df = pd.DataFrame(data=data.T)
data_cols = ['c{}'.format(c) for c in df.columns]
df.columns = data_cols
df['x'] = x_values

y_range = data.min(), data.max()
x_range = x_values[0], x_values[-1]

canvas = datashader.Canvas(x_range=x_range, y_range=y_range,
plot_height=300, plot_width=900)
aggs = collections.OrderedDict((c, canvas.line(df, 'q', c)) for c in data_cols)

merged = xarray.concat(saxs_aggs.values(), dim=pd.Index(cols, name='cols'))
saxs_img = datashader.transfer_functions.shade(merged.sum(dim='cols'),
how='eq_hist')

请注意,使用 data_cols 变量很重要,而不是简单地使用 df.columns,因为它必须排除 x 列(最初并不直观)。

这是使用 Bokeh 添加轴的结果示例。 enter image description here

关于python - 使用 Datashader 从 NumPy 数组绘制数据的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42162419/

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