Ключевые измерения в кривой Holoviews для поиска значения в словаре - PullRequest
1 голос
/ 20 января 2020

Я хочу, чтобы пользователь моей кривой мог регулировать кривую с помощью ползунка (наклона), но я хочу, чтобы значения из наклона возвращали другой набор значений.

Так что кривая будет использовать значение 0,5, если пользователь выбирает 1, и 0,8, если пользователь выбирает 5.

Я пробовал с лямбда-выражением (как скрипт ниже) и некоторыми словарями (как я думаю, это путь к go), но я не могу заставить его работать.

import numpy as np
import holoviews as hv
hv.extension('bokeh')

slope = [1, 5, 10]

def curve(slope):
    x = np.linspace(1,10)
    m = slope.apply(lambda x: 0.5 if slope == 1 else (0.8 if slope == 5 else (1)))
    y = slope*0.5+x
    err = x*m
    return hv.Curve((x, y)) * hv.Spread((x,y,err))


curve_dict = {r:curve(r) for r in slope}

kdims = hv.Dimension(("slope", "slope"))

hv.HoloMap(curve_dict, kdims=kdims)

1 Ответ

2 голосов
/ 20 января 2020

np.select () изменяет значения в зависимости от условий:

slopes = [1, 5, 10]

def curve(slope):
    xs = np.linspace(1,10)
    slope = np.select(
        condlist=[slope==1, slope==5],
        choicelist=[0.5, 0.8],
        default=1,
    )
    ys = slope*0.5+xs
    return hv.Curve((xs, ys))


curve_dict = {slope: curve(slope) for slope in slopes}

hv.HoloMap(curve_dict, kdims='slope')
...