如何使不同的列在 holoviews/hvplot 中呈现为不同的颜色?
How can I make different columns render as different colors in holoviews / hvplot?
我有一个包含两列时间序列数据的 pandas 数据框。在我的实际数据中,这些列足够大,以至于在没有数据着色器的情况下渲染起来很笨重。我正在尝试比较这两个时间序列中的事件。但是,我需要能够分辨出哪个数据点来自哪一列。下面是一个简单的功能示例。如何让 A 列和 B 列使用不同的颜色映射?
import numpy as np
import hvplot.pandas
import pandas as pd
A = np.random.randint(10, size=10000)
B = np.random.randint(30, size=10000)
d = {'A':A,'B':B}
df = pd.DataFrame(d)
df.hvplot(kind='scatter',datashade=True, height=500, width=1000, dynspread=False)
您必须使用 count_cat 聚合器来分别计算每个类别,例如在上面的示例中,它看起来像这样:
import datashader as ds
df.hvplot(kind='scatter', aggregator=ds.count_cat('Variable'), datashade=True,
height=500, width=1000)
这里的'Variable'
对应hvplot分配给列的默认group_label
。如果您提供了不同的 group_label
,则必须更新聚合器以匹配。但是,除了显式提供聚合器之外,您还可以使用 by
关键字:
df.hvplot(kind='scatter', by='Variable', datashade=True,
height=500, width=1000)
hvplot 0.3.1 发布后,您还可以提供明确的 cmap
,例如:
df.hvplot(kind='scatter', by='Variable', datashade=True,
height=500, width=1000, cmap={'A': 'red', 'B': 'blue'})
我有一个包含两列时间序列数据的 pandas 数据框。在我的实际数据中,这些列足够大,以至于在没有数据着色器的情况下渲染起来很笨重。我正在尝试比较这两个时间序列中的事件。但是,我需要能够分辨出哪个数据点来自哪一列。下面是一个简单的功能示例。如何让 A 列和 B 列使用不同的颜色映射?
import numpy as np
import hvplot.pandas
import pandas as pd
A = np.random.randint(10, size=10000)
B = np.random.randint(30, size=10000)
d = {'A':A,'B':B}
df = pd.DataFrame(d)
df.hvplot(kind='scatter',datashade=True, height=500, width=1000, dynspread=False)
您必须使用 count_cat 聚合器来分别计算每个类别,例如在上面的示例中,它看起来像这样:
import datashader as ds
df.hvplot(kind='scatter', aggregator=ds.count_cat('Variable'), datashade=True,
height=500, width=1000)
这里的'Variable'
对应hvplot分配给列的默认group_label
。如果您提供了不同的 group_label
,则必须更新聚合器以匹配。但是,除了显式提供聚合器之外,您还可以使用 by
关键字:
df.hvplot(kind='scatter', by='Variable', datashade=True,
height=500, width=1000)
hvplot 0.3.1 发布后,您还可以提供明确的 cmap
,例如:
df.hvplot(kind='scatter', by='Variable', datashade=True,
height=500, width=1000, cmap={'A': 'red', 'B': 'blue'})