У меня есть физическая система с 10 каналами, и я записываю несколько измерений / напряжения с течением времени. С другой стороны, категории каналов (для описания различий каналов) повторяются в кадре данных.
Я хочу построить максимум каждого канала в зависимости от kdims (= категории).
Шаги для воспроизведения проблема:
import pandas as pd
import numpy as np
import holoviews as hv
hv.extension('bokeh')
# generate data
x = np.linspace(0, 10, 25)
y = {("channel" + str(i)): (i/5 + i/5*1.01*(np.sin(x))) for i in range(1,11)}
y["x"] = x
df_measures = pd.DataFrame(y)
# category
cat = {
"channel": ["channel1", "channel2", "channel3", "channel4", "channel5", "channel6", "channel7", "channel8", "channel9", "channel10"],
"size" : ["big", "small", "big", "small", "big", "small", "big", "small", "big", "small"],
"color" : ["red", "red", "red", "blue", "blue", "blue", "blue", "green", "green", "green"]
}
categories = pd.DataFrame(cat)
# tidying data : merging in on dataframe
df_melt = pd.melt(df_measures, id_vars=['x'], value_vars= ["channel1", "channel2", "channel3", "channel4", "channel5", "channel6", "channel7", "channel8", "channel9", "channel10"],
var_name="channel"
)
df=pd.merge(df_melt, categories, on='channel')
# annotating data (holoviews)
ds = hv.Dataset(df, ["x", "channel", "size", "color"], ['value'])
Первая попытка: ничего не происходит, нет сообщения об ошибке / предупреждения. Я делаю что-то не так с лежащим в основе Holomap?
# visualisation : scatter max
ds.aggregate(["size", "color"], np.max).to(hv.Scatter,"color", "value").opts(size=30)
Вторая попытка: что-то есть заговор, но я не могу исследовать данные по обоим kdims (через легенду или дополнительный виджет)
# visualisation : scatter max
ds.aggregate("color", np.max).to(hv.Scatter,"color", "value").opts(size=30)
Что я делаю неправильно?