我使用Altair绘制了一个热图,其中包括一个色条,但是热图中缺少的数据(空白/白色)未在色条上标记。有没有办法在图例上添加单独的标签(例如,在颜色栏下方),以显示图表中缺失数据的表示方式?
我想出了一个解决方案,该解决方案在我的图表顶部包括一个“鬼”层-一个尺子图表,其大小= 0(使该行不可见),并用填充有字符串值的列着色“无数据”(请参见下面的代码)。这会强制使用图例,但我想知道是否有更好的方法。 (请参见以下链接,查看我的完整示例:heatmap plot)
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",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
“鬼魂层”在颜色栏的底部添加了一个标有“无数据”的空方块,但我希望有一种更好的方法来表示这一点!