У меня есть тепловая карта, построенная с использованием Altair, которая включает цветную полосу, но отсутствующие данные (пустые / белые) в тепловой карте не помечены на цветовой панели. Есть ли способ добавить отдельную метку в легенду (например, под цветовой шкалой), чтобы показать, как отсутствующие данные представлены на диаграмме?
Я придумала решение, которое включает слой «призрак»на вершине моей диаграммы - линейка с размером = 0 (так что линия невидима), которая окрашена столбцом, заполненным строковыми значениями «Нет данных» (см. код ниже). Это заставляет предмет легенды, но мне интересно, есть ли лучший способ. (См. Мой полный пример по ссылке здесь: график тепловых карт )
import numpy as np
import altair as alt
import pandas as pd
# Example heatmap data
heatmap_df = pd.DataFrame([["NY",1999,1],["NY",2000,np.nan], ["MA",1999,np.nan], ["MA",2000,4]], columns = ["state","year","rate"])
# Example Legend dataframe
legend_no_data = pd.DataFrame([[1999, "No Data"]], columns = ["year", "text"])
# Example chart with "No Data" label
heatmap = alt.Chart(heatmap_df).mark_rect().encode(alt.X("year:O"), alt.Y("state:N"), alt.Color("rate:Q"))
# Chart for "No Data" legend item
vacc_legend_no_data = alt.Chart(legend_no_data).mark_line(
size=0
).encode(
x='year:O',
color = alt.Color("text:N", legend = alt.Legend(title = "", symbolType = "square")))
heatmap + vacc_legend_no_data
«Слой-призрак» добавляет пустой квадрат с надписью «Нет данных» в нижней части цветовой шкалы, но янадеюсь, есть лучший способ представить это!