Holoviews: легенда формата и цвета наложения Spread и Curve - PullRequest
0 голосов
/ 31 мая 2018

Учитывая аккуратный столбец Панд с 4 или более столбцами, я хочу получить очень простой график: два столбца должны быть осями xy одной фигуры, а один из столбцов должен индексировать Overlay из N Curve объекты на основе столбцов xy и N Spread объекты, использующие последний столбец как ошибку.Поэтому, если N = 4, должно быть 4 кривых и четыре спреда.Кривые и спреды с одинаковым индексом должны быть одного цвета, и легенда должна это подтвердить.

Используя table.to(hv.Curve,'col1','col2'), я могу получить голограмму для кривых, и с некоторыми усилиями я могу сделать то же самое дляРаспространение.Если я тогда позвоню .overlay(), я получу хорошую фигуру для кривых, включая легенду, но когда я сделаю то же самое для спреда, легенда исчезнет.Если я наложу эти два параметра, легенда также исчезнет и , цветовой цикл перестает работать, делая все кривые и распространяя один и тот же цвет.Если я создаю Holomap из curve*spread объектов, то цвета совпадают, но легенда все еще исчезает.

Это похоже на очень стандартный сюжет, но я могу найти очень мало в документах Holoviews о соединении различных Элементовили контролируя легенду.

1 Ответ

0 голосов
/ 01 июня 2018

Немного сложно ответить без какого-либо конкретного кода, например, я не могу воспроизвести некоторые проблемы, которые вы описываете.Однако первая проблема заключается в том, что show_legend не включено по умолчанию для элемента Spread.В случае построения кривой и спреда с использованием .to и .overlay, вот что я могу подтвердить:

%%opts Spread [show_legend=True width=600] Overlay [legend_position='right']
df = pd.DataFrame({
    'index': np.arange(100), 'y': np.random.randn(100).cumsum(),
    'err': np.random.rand(100)+0.1, 'z': np.repeat(np.arange(10), 10)
})
ds = hv.Dataset(df)
ds.to(hv.Curve, 'index', 'y', 'z').overlay() * ds.to(hv.Spread, 'index', ['y', 'err']).overlay()

enter image description here

Если я создаю голограмму с растянутыми объектами кривой *, тогда цвета совпадают, но легенда все еще исчезает.

Это действительно текущее ограничение, так как мы рекомендовали таким способом против вложения объектов впрошлое, однако я только что открыл этот PR , который также позволит этот подход.

...