Значения масок в Python графиков тепловых карт Альтаира - PullRequest
0 голосов
/ 07 августа 2020

Я хотел бы построить тепловую карту с замаскированными значениями с помощью Altair. Это можно сделать, передав массив масок методу seaborn heatmap, но я хочу сделать это с помощью Altair. Спасибо!

Желаемая тепловая карта с замаскированными значениями

1 Ответ

1 голос
/ 07 августа 2020

В Altair вы можете применить маску, удалив из набора данных любые данные, которые вы не хотите отображать. Например, вот замаскированная версия примера Simple Heatmap из документации Altair:

import altair as alt
import numpy as np
import pandas as pd

# Compute x^2 + y^2 across a 2D grid
x, y = np.meshgrid(range(-5, 5), range(-5, 5))
z = x ** 2 + y ** 2

# Convert this grid to columnar data expected by Altair
source = pd.DataFrame({'x': x.ravel(),
                       'y': y.ravel(),
                       'z': z.ravel()})

mask = np.random.rand(len(source)) < 0.9

alt.Chart(source.iloc[mask]).mark_rect().encode(
    x='x:O',
    y='y:O',
    color='z:Q'
)

enter image description here

If you want the masking to take place via the chart specification rather than via a preprocessing step, you can similarly filter rows using a Преобразование фильтра .

...