Условная цветовая шкала с плотно - PullRequest
0 голосов
/ 17 апреля 2020

У меня есть две тепловые карты с одинаковыми данными выборки, каждая из которых имеет разные цветовые шкалы:

from plotly import graph_objs as go
import datetime
import numpy as np
np.random.seed(1)
pyo.init_notebook_mode()

programmers = ['Alex','Nicole','Sara','Etienne','Chelsea','Jody','Marianne']

base = datetime.datetime.today()
dates = base - np.arange(180) * datetime.timedelta(days=1)
z1 = np.random.beta(2,2,size=(len(programmers), len(dates)))
z2 = np.random.beta(2,2,size=(len(programmers), len(dates)))

green = '#00c703'
gray = '#d4d4d4'
red = '#c70000'

heatmap = go.Heatmap(
                        z=z1,
                        x=dates,
                        y=programmers,
                        zmin=0, 
                        zmax=1,
                        colorscale=[[0,"#00c703"], [0.5,"#d4d4d4"], [1,"#00c703"]]
                    )


fig = go.Figure()

fig.add_trace(heatmap)

fig.show()


heatmap = go.Heatmap(
                        z=z,
                        x=dates,
                        y=programmers,
                        zmin=0, 
                        zmax=1,
                        colorscale=[[0,"#c70000"], [0.5,"#d4d4d4"], [1,"#c70000"]]
                    )


fig = go.Figure()

fig.add_trace(heatmap)

fig.show()

enter image description here enter image description here

Для каждой тепловой карты цвет определяется значениями z1.

То, что я хочу сделать, - это тепловая карта, которая учитывает два значения z, z1 и z2. Для каждой комбинации (x, y), если значение z2 выше 0,5, используемая цветовая шкала должна быть зеленой, а окрашивание должно выполняться на основе значений z1 в соответствии с определенной цветовой шкалой. А для окрашивания значений z1 следует использовать красную шкалу красного цвета, если соответствующие значения z2 равны или ниже 0,5.

Таким образом, для значений z1 около 0,5 точка данных на тепловой карте должна быть окрашена в серый цвет, так как это один и тот же цвет для обеих цветовых гамм. А для экстремальных значений z1 вблизи 0 и 1 цвет должен приближаться к красному или зеленому в зависимости от значения z2 для этой точки данных.

Спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...