gpt4 book ai didi

python - 使用 Datashader 和 Holoviews 具有多种颜色和图例的时间序列

转载 作者:行者123 更新时间:2023-12-04 03:47:45 25 4
gpt4 key购买 nike

我想绘制一个包含 3 列的时间序列数据框,每条曲线一列。我希望每条曲线都有自己的颜色并显示一个图例,正如 hvplot() 默认情况下所做的那样。
这是一个独立的示例:

import numpy as np
import pandas as pd
import hvplot.pandas
import datetime
from holoviews.operation.datashader import datashade

n=1000
start = datetime.datetime(2010, 10, 1, 0) # Start time
datetimerange = [start + datetime.timedelta(minutes=1)*i for i in range(n)]
A = np.random.randint(5, size=n)
B = np.random.randint(20, 40, size=n)
C = np.random.randint(10, 20, size=n)
d = {'datetime': datetimerange, 'A': A, 'B': B, 'C': C}
df = pd.DataFrame(d).set_index('datetime')

df.hvplot(cmap=['red', 'blue', 'green']) + datashade(df.hvplot(cmap=['red', 'blue', 'green']))
这是结果(左侧没有数据着色器,右侧有数据着色器):
enter image description here
将绘图传递给数据着色器时,颜色和图例将丢失。使用 datashade=Truehvplot 参数具有相同的结果。
a tutorial on timeseries plotting in the Datashader documentation 但它相当复杂,它使用 datashader.transfer_functions.shade() 作为基础来操作图形,而没有太多介绍它的工作原理和 the API isn't much clearer 。我只想保留默认情况下 bokeh/hvplot 提供的这些基本绘图功能,我不确定 datashader 不保留它们的原因,所以我不知道要修复什么。
如何向数据着色器发出信号以保留不同的颜色并绘制图例?

最佳答案

这是答案的一半,不幸的是这并没有给出一个传说。请注意,.hvplot() 内置了参数 datashade=True:

df.reset_index().melt(id_vars='datetime').hvplot.line(
x='datetime',
y='value',
by='variable',
datashade=True,
dynamic=False,
)

关于python - 使用 Datashader 和 Holoviews 具有多种颜色和图例的时间序列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64886000/

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