Как сделать так, чтобы разные столбцы отображались разными цветами в holoviews / hvplot? - PullRequest
0 голосов
/ 11 января 2019

У меня есть пандас с двумя столбцами данных временных рядов. В моих реальных данных, эти столбцы достаточно велики, чтобы рендеринг был громоздким без рычага данных. Я пытаюсь сравнить события из этих двух временных рядов. Тем не менее, я должен быть в состоянии сказать, какая точка данных из какого столбца. Простой функциональный пример приведен ниже. Как получить столбцы 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)

1 Ответ

0 голосов
/ 11 января 2019

Вам придется использовать агрегатор count_cat, который считает каждую категорию отдельно, например, в приведенном выше примере это будет выглядеть так:

import datashader as ds
df.hvplot(kind='scatter', aggregator=ds.count_cat('Variable'), datashade=True,
          height=500, width=1000)

'Variable' здесь соответствует значению group_label по умолчанию, которое hvplot назначает столбцам. Если вы указали другой 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'})

enter image description here

...