Python Altair热图图中的遮罩值

Python Altair热图图中的遮罩值,python,altair,vega-lite,vega,Python,Altair,Vega Lite,Vega,我想用牵牛星绘制一张带有隐藏值的热图。这可以通过将遮罩阵列传递到seaborn的热图方法来实现,但我想使用Altair来实现。谢谢 在Altair中,您可以通过从数据集中删除任何不希望显示的数据来应用掩码。例如,以下是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(

我想用牵牛星绘制一张带有隐藏值的热图。这可以通过将遮罩阵列传递到seaborn的
热图
方法来实现,但我想使用Altair来实现。谢谢


在Altair中,您可以通过从数据集中删除任何不希望显示的数据来应用掩码。例如,以下是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'
)
将altair导入为alt
将numpy作为np导入
作为pd进口熊猫
#跨二维网格计算x^2+y^2
x、 y=np.meshgrid(范围(-5,5),范围(-5,5))
z=x**2+y**2
#将此网格转换为Altair期望的列数据
source=pd.DataFrame({'x':x.ravel(),
“y”:y.ravel(),
“z”:z.ravel()})
掩码=np.random.rand(len(源))<0.9
alt.Chart(source.iloc[mask]).mark_rect().encode(
x='x:O',
y='y:O',
color='z:Q'
)


如果您希望通过图表规范而不是通过预处理步骤进行屏蔽,您可以使用类似的方法过滤行。

谢谢您的回答。我懂了。我想我重新表述的问题是如何在热图中手动设置
xlim
ylim
。我这样问是因为我想在一个交互式网络应用程序中使用这个热图,并且我想在用户更改其他参数后更新热图图时,不同的热图在
xlim
ylim
方面具有可比性。您可以使用
scale.domain
设置轴域。因为它是顺序比例,所以不设置限制,而是列出要显示在轴上的值;例如
x=alt.x('x:O',scale=alt.scale(域=列表(范围(10)))