【发布时间】:2021-09-09 03:09:47
【问题描述】:
TL;DR:
在我看来,问题一定出在我试图从选择中获取端点的方式上:(isDefined(brush1.y) ? (brush1.y[0]) : 1)
我使用来自 n 个样本的两类(A 和 B)粒子的大小数据。我想将 A 与 B 的散点图作为任何可能大小子范围内的粒子百分比。
为了以交互方式选择这些大小子范围,我使用了两个辅助图(每个类别一个),我在其中添加了区间选择,以便设置和移动所需的范围。
从另一个问题here 我已经了解到聚合操作不能通过间隔选择来更新(这是一个vega-lite issue)。因此,我准备了我的数据框以包含任何可能的大小箱以及 A 和 B 的任何可能的大小箱组合的预先计算的百分比值。现在,我 “仅” 需要找到一种方法来过滤它将数据集扩展到辅助图中当前选择的内容。
数据框结构示例:
sample A lower_A upper_A B lower_B upper_B
0 S3 20.1 0 100 97.7 0 100
1 S3 20.1 0 100 0.9 100 200
... ... ... ... ... ... ... ...
673 S2 6.0 300 500 2.5 200 500
674 S2 6.0 300 500 0.9 300 500
代码使用transform_calculate 获取选择的端点(灵感来自here)和transform_filter 使用提取的值来过滤代表大小上限和下限的列上的数据集A 和 B 的百分比(灵感来自 here)。
为了防止在区间边界不在数据集中存在的值处(大小下限和上限在 0、100、200、300、400 和 500 处离散)时从过滤中选择空,计算的端点是固定的通过ceil() 或floor(),as it was suggested below 到下一个完整的一百。但是,绘制的点似乎对选择的间隔没有反应。在 vega-lite 编辑器的数据视图中,我可以看到过滤产生的行始终固定在 lower_0 和 upper_100,与选择的内容无关。
包含工作玩具数据框的示例:
import pandas as pd
import altair as alt
df = pd.DataFrame({'sample':['S3','S3','S3','S3','S3','S3','S3','S3','S3','S3','S3','S3','S3','S3','S3','S1','S1','S1','S1','S1','S1','S1','S1','S1','S1','S1','S1','S1','S1','S1','S2','S2','S2','S2','S2','S2','S2','S2','S2','S2','S2','S2','S2','S2','S2','S3','S3','S3','S3','S3','S3','S3','S3','S3','S3','S3','S3','S3','S3','S3','S1','S1','S1','S1','S1','S1','S1','S1','S1','S1','S1','S1','S1','S1','S1','S2','S2','S2','S2','S2','S2','S2','S2','S2','S2','S2','S2','S2','S2','S2','S3','S3','S3','S3','S3','S3','S3','S3','S3','S3','S3','S3','S3','S3','S3','S1','S1','S1','S1','S1','S1','S1','S1','S1','S1','S1','S1','S1','S1','S1','S2','S2','S2','S2','S2','S2','S2','S2','S2','S2','S2','S2','S2','S2','S2','S3','S3','S3','S3','S3','S3','S3','S3','S3','S3','S3','S3','S3','S3','S3','S1','S1','S1','S1','S1','S1','S1','S1','S1','S1','S1','S1','S1','S1','S1','S2','S2','S2','S2','S2','S2','S2','S2','S2','S2','S2','S2','S2','S2','S2','S3','S3','S3','S3','S3','S3','S3','S3','S3','S3','S3','S3','S3','S3','S3','S1','S1','S1','S1','S1','S1','S1','S1','S1','S1','S1','S1','S1','S1','S1','S2','S2','S2','S2','S2','S2','S2','S2','S2','S2','S2','S2','S2','S2','S2','S3','S3','S3','S3','S3','S3','S3','S3','S3','S3','S3','S3','S3','S3','S3','S1','S1','S1','S1','S1','S1','S1','S1','S1','S1','S1','S1','S1','S1','S1','S2','S2','S2','S2','S2','S2','S2','S2','S2','S2','S2','S2','S2','S2','S2','S3','S3','S3','S3','S3','S3','S3','S3','S3','S3','S3','S3','S3','S3','S3','S1','S1','S1','S1','S1','S1','S1','S1','S1','S1','S1','S1','S1','S1','S1','S2','S2','S2','S2','S2','S2','S2','S2','S2','S2','S2','S2','S2','S2','S2','S3','S3','S3','S3','S3','S3','S3','S3','S3','S3','S3','S3','S3','S3','S3','S1','S1','S1','S1','S1','S1','S1','S1','S1','S1','S1','S1','S1','S1','S1','S2','S2','S2','S2','S2','S2','S2','S2','S2','S2','S2','S2','S2','S2','S2','S3','S3','S3','S3','S3','S3','S3','S3','S3','S3','S3','S3','S3','S3','S3','S1','S1','S1','S1','S1','S1','S1','S1','S1','S1','S1','S1','S1','S1','S1','S2','S2','S2','S2','S2','S2','S2','S2','S2','S2','S2','S2','S2','S2','S2','S3','S3','S3','S3','S3','S3','S3','S3','S3','S3','S3','S3','S3','S3','S3','S1','S1','S1','S1','S1','S1','S1','S1','S1','S1','S1','S1','S1','S1','S1','S2','S2','S2','S2','S2','S2','S2','S2','S2','S2','S2','S2','S2','S2','S2','S3','S3','S3','S3','S3','S3','S3','S3','S3','S3','S3','S3','S3','S3','S3','S1','S1','S1','S1','S1','S1','S1','S1','S1','S1','S1','S1','S1','S1','S1','S2','S2','S2','S2','S2','S2','S2','S2','S2','S2','S2','S2','S2','S2','S2','S3','S3','S3','S3','S3','S3','S3','S3','S3','S3','S3','S3','S3','S3','S3','S1','S1','S1','S1','S1','S1','S1','S1','S1','S1','S1','S1','S1','S1','S1','S2','S2','S2','S2','S2','S2','S2','S2','S2','S2','S2','S2','S2','S2','S2','S3','S3','S3','S3','S3','S3','S3','S3','S3','S3','S3','S3','S3','S3','S3','S1','S1','S1','S1','S1','S1','S1','S1','S1','S1','S1','S1','S1','S1','S1','S2','S2','S2','S2','S2','S2','S2','S2','S2','S2','S2','S2','S2','S2','S2','S3','S3','S3','S3','S3','S3','S3','S3','S3','S3','S3','S3','S3','S3','S3','S1','S1','S1','S1','S1','S1','S1','S1','S1','S1','S1','S1','S1','S1','S1','S2','S2','S2','S2','S2','S2','S2','S2','S2','S2','S2','S2','S2','S2','S2','S3','S3','S3','S3','S3','S3','S3','S3','S3','S3','S3','S3','S3','S3','S3','S1','S1','S1','S1','S1','S1','S1','S1','S1','S1','S1','S1','S1','S1','S1','S2','S2','S2','S2','S2','S2','S2','S2','S2','S2','S2','S2','S2','S2','S2'],'A':[20.1,20.1,20.1,20.1,20.1,20.1,20.1,20.1,20.1,20.1,20.1,20.1,20.1,20.1,20.1,20.9,20.9,20.9,20.9,20.9,20.9,20.9,20.9,20.9,20.9,20.9,20.9,20.9,20.9,20.9,16.5,16.5,16.5,16.5,16.5,16.5,16.5,16.5,16.5,16.5,16.5,16.5,16.5,16.5,16.5,58.1,58.1,58.1,58.1,58.1,58.1,58.1,58.1,58.1,58.1,58.1,58.1,58.1,58.1,58.1,56.5,56.5,56.5,56.5,56.5,56.5,56.5,56.5,56.5,56.5,56.5,56.5,56.5,56.5,56.5,53.6,53.6,53.6,53.6,53.6,53.6,53.6,53.6,53.6,53.6,53.6,53.6,53.6,53.6,53.6,17.2,17.2,17.2,17.2,17.2,17.2,17.2,17.2,17.2,17.2,17.2,17.2,17.2,17.2,17.2,18.9,18.9,18.9,18.9,18.9,18.9,18.9,18.9,18.9,18.9,18.9,18.9,18.9,18.9,18.9,22.6,22.6,22.6,22.6,22.6,22.6,22.6,22.6,22.6,22.6,22.6,22.6,22.6,22.6,22.6,3.1,3.1,3.1,3.1,3.1,3.1,3.1,3.1,3.1,3.1,3.1,3.1,3.1,3.1,3.1,3.1,3.1,3.1,3.1,3.1,3.1,3.1,3.1,3.1,3.1,3.1,3.1,3.1,3.1,3.1,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,1.6,1.6,1.6,1.6,1.6,1.6,1.6,1.6,1.6,1.6,1.6,1.6,1.6,1.6,1.6,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,1.2,1.2,1.2,1.2,1.2,1.2,1.2,1.2,1.2,1.2,1.2,1.2,1.2,1.2,1.2,20.1,20.1,20.1,20.1,20.1,20.1,20.1,20.1,20.1,20.1,20.1,20.1,20.1,20.1,20.1,20.9,20.9,20.9,20.9,20.9,20.9,20.9,20.9,20.9,20.9,20.9,20.9,20.9,20.9,20.9,16.5,16.5,16.5,16.5,16.5,16.5,16.5,16.5,16.5,16.5,16.5,16.5,16.5,16.5,16.5,78.2,78.2,78.2,78.2,78.2,78.2,78.2,78.2,78.2,78.2,78.2,78.2,78.2,78.2,78.2,77.4,77.4,77.4,77.4,77.4,77.4,77.4,77.4,77.4,77.4,77.4,77.4,77.4,77.4,77.4,70.1,70.1,70.1,70.1,70.1,70.1,70.1,70.1,70.1,70.1,70.1,70.1,70.1,70.1,70.1,95.3,95.3,95.3,95.3,95.3,95.3,95.3,95.3,95.3,95.3,95.3,95.3,95.3,95.3,95.3,96.3,96.3,96.3,96.3,96.3,96.3,96.3,96.3,96.3,96.3,96.3,96.3,96.3,96.3,96.3,92.8,92.8,92.8,92.8,92.8,92.8,92.8,92.8,92.8,92.8,92.8,92.8,92.8,92.8,92.8,98.4,98.4,98.4,98.4,98.4,98.4,98.4,98.4,98.4,98.4,98.4,98.4,98.4,98.4,98.4,99.5,99.5,99.5,99.5,99.5,99.5,99.5,99.5,99.5,99.5,99.5,99.5,99.5,99.5,99.5,98.8,98.8,98.8,98.8,98.8,98.8,98.8,98.8,98.8,98.8,98.8,98.8,98.8,98.8,98.8,58.1,58.1,58.1,58.1,58.1,58.1,58.1,58.1,58.1,58.1,58.1,58.1,58.1,58.1,58.1,56.5,56.5,56.5,56.5,56.5,56.5,56.5,56.5,56.5,56.5,56.5,56.5,56.5,56.5,56.5,53.6,53.6,53.6,53.6,53.6,53.6,53.6,53.6,53.6,53.6,53.6,53.6,53.6,53.6,53.6,75.2,75.2,75.2,75.2,75.2,75.2,75.2,75.2,75.2,75.2,75.2,75.2,75.2,75.2,75.2,75.4,75.4,75.4,75.4,75.4,75.4,75.4,75.4,75.4,75.4,75.4,75.4,75.4,75.4,75.4,76.3,76.3,76.3,76.3,76.3,76.3,76.3,76.3,76.3,76.3,76.3,76.3,76.3,76.3,76.3,78.3,78.3,78.3,78.3,78.3,78.3,78.3,78.3,78.3,78.3,78.3,78.3,78.3,78.3,78.3,78.6,78.6,78.6,78.6,78.6,78.6,78.6,78.6,78.6,78.6,78.6,78.6,78.6,78.6,78.6,82.3,82.3,82.3,82.3,82.3,82.3,82.3,82.3,82.3,82.3,82.3,82.3,82.3,82.3,82.3,17.2,17.2,17.2,17.2,17.2,17.2,17.2,17.2,17.2,17.2,17.2,17.2,17.2,17.2,17.2,18.9,18.9,18.9,18.9,18.9,18.9,18.9,18.9,18.9,18.9,18.9,18.9,18.9,18.9,18.9,22.6,22.6,22.6,22.6,22.6,22.6,22.6,22.6,22.6,22.6,22.6,22.6,22.6,22.6,22.6,20.2,20.2,20.2,20.2,20.2,20.2,20.2,20.2,20.2,20.2,20.2,20.2,20.2,20.2,20.2,22.0,22.0,22.0,22.0,22.0,22.0,22.0,22.0,22.0,22.0,22.0,22.0,22.0,22.0,22.0,28.7,28.7,28.7,28.7,28.7,28.7,28.7,28.7,28.7,28.7,28.7,28.7,28.7,28.7,28.7,3.1,3.1,3.1,3.1,3.1,3.1,3.1,3.1,3.1,3.1,3.1,3.1,3.1,3.1,3.1,3.1,3.1,3.1,3.1,3.1,3.1,3.1,3.1,3.1,3.1,3.1,3.1,3.1,3.1,3.1,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0],'lower_A':[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300],'upper_A':[100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500],'B':[97.7,0.9,0.2,0.5,0.4,97.7,98.6,98.8,99.3,0.9,1.1,1.6,0.2,0.6,0.5,91.3,4.7,1.8,1.2,0.6,91.3,96.1,97.9,99.0,4.7,6.5,7.7,1.8,3.0,1.2,90.3,6.5,1.7,0.9,0.4,90.3,96.8,98.5,99.4,6.5,8.2,9.1,1.7,2.5,0.9,97.7,0.9,0.2,0.5,0.4,97.7,98.6,98.8,99.3,0.9,1.1,1.6,0.2,0.6,0.5,91.3,4.7,1.8,1.2,0.6,91.3,96.1,97.9,99.0,4.7,6.5,7.7,1.8,3.0,1.2,90.3,6.5,1.7,0.9,0.4,90.3,96.8,98.5,99.4,6.5,8.2,9.1,1.7,2.5,0.9,97.7,0.9,0.2,0.5,0.4,97.7,98.6,98.8,99.3,0.9,1.1,1.6,0.2,0.6,0.5,91.3,4.7,1.8,1.2,0.6,91.3,96.1,97.9,99.0,4.7,6.5,7.7,1.8,3.0,1.2,90.3,6.5,1.7,0.9,0.4,90.3,96.8,98.5,99.4,6.5,8.2,9.1,1.7,2.5,0.9,97.7,0.9,0.2,0.5,0.4,97.7,98.6,98.8,99.3,0.9,1.1,1.6,0.2,0.6,0.5,91.3,4.7,1.8,1.2,0.6,91.3,96.1,97.9,99.0,4.7,6.5,7.7,1.8,3.0,1.2,90.3,6.5,1.7,0.9,0.4,90.3,96.8,98.5,99.4,6.5,8.2,9.1,1.7,2.5,0.9,97.7,0.9,0.2,0.5,0.4,97.7,98.6,98.8,99.3,0.9,1.1,1.6,0.2,0.6,0.5,91.3,4.7,1.8,1.2,0.6,91.3,96.1,97.9,99.0,4.7,6.5,7.7,1.8,3.0,1.2,90.3,6.5,1.7,0.9,0.4,90.3,96.8,98.5,99.4,6.5,8.2,9.1,1.7,2.5,0.9,97.7,0.9,0.2,0.5,0.4,97.7,98.6,98.8,99.3,0.9,1.1,1.6,0.2,0.6,0.5,91.3,4.7,1.8,1.2,0.6,91.3,96.1,97.9,99.0,4.7,6.5,7.7,1.8,3.0,1.2,90.3,6.5,1.7,0.9,0.4,90.3,96.8,98.5,99.4,6.5,8.2,9.1,1.7,2.5,0.9,97.7,0.9,0.2,0.5,0.4,97.7,98.6,98.8,99.3,0.9,1.1,1.6,0.2,0.6,0.5,91.3,4.7,1.8,1.2,0.6,91.3,96.1,97.9,99.0,4.7,6.5,7.7,1.8,3.0,1.2,90.3,6.5,1.7,0.9,0.4,90.3,96.8,98.5,99.4,6.5,8.2,9.1,1.7,2.5,0.9,97.7,0.9,0.2,0.5,0.4,97.7,98.6,98.8,99.3,0.9,1.1,1.6,0.2,0.6,0.5,91.3,4.7,1.8,1.2,0.6,91.3,96.1,97.9,99.0,4.7,6.5,7.7,1.8,3.0,1.2,90.3,6.5,1.7,0.9,0.4,90.3,96.8,98.5,99.4,6.5,8.2,9.1,1.7,2.5,0.9,97.7,0.9,0.2,0.5,0.4,97.7,98.6,98.8,99.3,0.9,1.1,1.6,0.2,0.6,0.5,91.3,4.7,1.8,1.2,0.6,91.3,96.1,97.9,99.0,4.7,6.5,7.7,1.8,3.0,1.2,90.3,6.5,1.7,0.9,0.4,90.3,96.8,98.5,99.4,6.5,8.2,9.1,1.7,2.5,0.9,97.7,0.9,0.2,0.5,0.4,97.7,98.6,98.8,99.3,0.9,1.1,1.6,0.2,0.6,0.5,91.3,4.7,1.8,1.2,0.6,91.3,96.1,97.9,99.0,4.7,6.5,7.7,1.8,3.0,1.2,90.3,6.5,1.7,0.9,0.4,90.3,96.8,98.5,99.4,6.5,8.2,9.1,1.7,2.5,0.9,97.7,0.9,0.2,0.5,0.4,97.7,98.6,98.8,99.3,0.9,1.1,1.6,0.2,0.6,0.5,91.3,4.7,1.8,1.2,0.6,91.3,96.1,97.9,99.0,4.7,6.5,7.7,1.8,3.0,1.2,90.3,6.5,1.7,0.9,0.4,90.3,96.8,98.5,99.4,6.5,8.2,9.1,1.7,2.5,0.9,97.7,0.9,0.2,0.5,0.4,97.7,98.6,98.8,99.3,0.9,1.1,1.6,0.2,0.6,0.5,91.3,4.7,1.8,1.2,0.6,91.3,96.1,97.9,99.0,4.7,6.5,7.7,1.8,3.0,1.2,90.3,6.5,1.7,0.9,0.4,90.3,96.8,98.5,99.4,6.5,8.2,9.1,1.7,2.5,0.9,97.7,0.9,0.2,0.5,0.4,97.7,98.6,98.8,99.3,0.9,1.1,1.6,0.2,0.6,0.5,91.3,4.7,1.8,1.2,0.6,91.3,96.1,97.9,99.0,4.7,6.5,7.7,1.8,3.0,1.2,90.3,6.5,1.7,0.9,0.4,90.3,96.8,98.5,99.4,6.5,8.2,9.1,1.7,2.5,0.9,97.7,0.9,0.2,0.5,0.4,97.7,98.6,98.8,99.3,0.9,1.1,1.6,0.2,0.6,0.5,91.3,4.7,1.8,1.2,0.6,91.3,96.1,97.9,99.0,4.7,6.5,7.7,1.8,3.0,1.2,90.3,6.5,1.7,0.9,0.4,90.3,96.8,98.5,99.4,6.5,8.2,9.1,1.7,2.5,0.9,97.7,0.9,0.2,0.5,0.4,97.7,98.6,98.8,99.3,0.9,1.1,1.6,0.2,0.6,0.5,91.3,4.7,1.8,1.2,0.6,91.3,96.1,97.9,99.0,4.7,6.5,7.7,1.8,3.0,1.2,90.3,6.5,1.7,0.9,0.4,90.3,96.8,98.5,99.4,6.5,8.2,9.1,1.7,2.5,0.9],'lower_B':[0,100,200,300,400,0,0,0,0,100,100,100,200,200,300,0,100,200,300,400,0,0,0,0,100,100,100,200,200,300,0,100,200,300,400,0,0,0,0,100,100,100,200,200,300,0,100,200,300,400,0,0,0,0,100,100,100,200,200,300,0,100,200,300,400,0,0,0,0,100,100,100,200,200,300,0,100,200,300,400,0,0,0,0,100,100,100,200,200,300,0,100,200,300,400,0,0,0,0,100,100,100,200,200,300,0,100,200,300,400,0,0,0,0,100,100,100,200,200,300,0,100,200,300,400,0,0,0,0,100,100,100,200,200,300,0,100,200,300,400,0,0,0,0,100,100,100,200,200,300,0,100,200,300,400,0,0,0,0,100,100,100,200,200,300,0,100,200,300,400,0,0,0,0,100,100,100,200,200,300,0,100,200,300,400,0,0,0,0,100,100,100,200,200,300,0,100,200,300,400,0,0,0,0,100,100,100,200,200,300,0,100,200,300,400,0,0,0,0,100,100,100,200,200,300,0,100,200,300,400,0,0,0,0,100,100,100,200,200,300,0,100,200,300,400,0,0,0,0,100,100,100,200,200,300,0,100,200,300,400,0,0,0,0,100,100,100,200,200,300,0,100,200,300,400,0,0,0,0,100,100,100,200,200,300,0,100,200,300,400,0,0,0,0,100,100,100,200,200,300,0,100,200,300,400,0,0,0,0,100,100,100,200,200,300,0,100,200,300,400,0,0,0,0,100,100,100,200,200,300,0,100,200,300,400,0,0,0,0,100,100,100,200,200,300,0,100,200,300,400,0,0,0,0,100,100,100,200,200,300,0,100,200,300,400,0,0,0,0,100,100,100,200,200,300,0,100,200,300,400,0,0,0,0,100,100,100,200,200,300,0,100,200,300,400,0,0,0,0,100,100,100,200,200,300,0,100,200,300,400,0,0,0,0,100,100,100,200,200,300,0,100,200,300,400,0,0,0,0,100,100,100,200,200,300,0,100,200,300,400,0,0,0,0,100,100,100,200,200,300,0,100,200,300,400,0,0,0,0,100,100,100,200,200,300,0,100,200,300,400,0,0,0,0,100,100,100,200,200,300,0,100,200,300,400,0,0,0,0,100,100,100,200,200,300,0,100,200,300,400,0,0,0,0,100,100,100,200,200,300,0,100,200,300,400,0,0,0,0,100,100,100,200,200,300,0,100,200,300,400,0,0,0,0,100,100,100,200,200,300,0,100,200,300,400,0,0,0,0,100,100,100,200,200,300,0,100,200,300,400,0,0,0,0,100,100,100,200,200,300,0,100,200,300,400,0,0,0,0,100,100,100,200,200,300,0,100,200,300,400,0,0,0,0,100,100,100,200,200,300,0,100,200,300,400,0,0,0,0,100,100,100,200,200,300,0,100,200,300,400,0,0,0,0,100,100,100,200,200,300,0,100,200,300,400,0,0,0,0,100,100,100,200,200,300,0,100,200,300,400,0,0,0,0,100,100,100,200,200,300,0,100,200,300,400,0,0,0,0,100,100,100,200,200,300],'upper_B':[100,200,300,400,500,200,300,400,500,300,400,500,400,500,500,100,200,300,400,500,200,300,400,500,300,400,500,400,500,500,100,200,300,400,500,200,300,400,500,300,400,500,400,500,500,100,200,300,400,500,200,300,400,500,300,400,500,400,500,500,100,200,300,400,500,200,300,400,500,300,400,500,400,500,500,100,200,300,400,500,200,300,400,500,300,400,500,400,500,500,100,200,300,400,500,200,300,400,500,300,400,500,400,500,500,100,200,300,400,500,200,300,400,500,300,400,500,400,500,500,100,200,300,400,500,200,300,400,500,300,400,500,400,500,500,100,200,300,400,500,200,300,400,500,300,400,500,400,500,500,100,200,300,400,500,200,300,400,500,300,400,500,400,500,500,100,200,300,400,500,200,300,400,500,300,400,500,400,500,500,100,200,300,400,500,200,300,400,500,300,400,500,400,500,500,100,200,300,400,500,200,300,400,500,300,400,500,400,500,500,100,200,300,400,500,200,300,400,500,300,400,500,400,500,500,100,200,300,400,500,200,300,400,500,300,400,500,400,500,500,100,200,300,400,500,200,300,400,500,300,400,500,400,500,500,100,200,300,400,500,200,300,400,500,300,400,500,400,500,500,100,200,300,400,500,200,300,400,500,300,400,500,400,500,500,100,200,300,400,500,200,300,400,500,300,400,500,400,500,500,100,200,300,400,500,200,300,400,500,300,400,500,400,500,500,100,200,300,400,500,200,300,400,500,300,400,500,400,500,500,100,200,300,400,500,200,300,400,500,300,400,500,400,500,500,100,200,300,400,500,200,300,400,500,300,400,500,400,500,500,100,200,300,400,500,200,300,400,500,300,400,500,400,500,500,100,200,300,400,500,200,300,400,500,300,400,500,400,500,500,100,200,300,400,500,200,300,400,500,300,400,500,400,500,500,100,200,300,400,500,200,300,400,500,300,400,500,400,500,500,100,200,300,400,500,200,300,400,500,300,400,500,400,500,500,100,200,300,400,500,200,300,400,500,300,400,500,400,500,500,100,200,300,400,500,200,300,400,500,300,400,500,400,500,500,100,200,300,400,500,200,300,400,500,300,400,500,400,500,500,100,200,300,400,500,200,300,400,500,300,400,500,400,500,500,100,200,300,400,500,200,300,400,500,300,400,500,400,500,500,100,200,300,400,500,200,300,400,500,300,400,500,400,500,500,100,200,300,400,500,200,300,400,500,300,400,500,400,500,500,100,200,300,400,500,200,300,400,500,300,400,500,400,500,500,100,200,300,400,500,200,300,400,500,300,400,500,400,500,500,100,200,300,400,500,200,300,400,500,300,400,500,400,500,500,100,200,300,400,500,200,300,400,500,300,400,500,400,500,500,100,200,300,400,500,200,300,400,500,300,400,500,400,500,500,100,200,300,400,500,200,300,400,500,300,400,500,400,500,500,100,200,300,400,500,200,300,400,500,300,400,500,400,500,500,100,200,300,400,500,200,300,400,500,300,400,500,400,500,500,100,200,300,400,500,200,300,400,500,300,400,500,400,500,500]})
brush1 = alt.selection_interval(name="brush1", encodings=['y'])
brush2 = alt.selection_interval(name="brush2", encodings=['x'])
scatter = alt.Chart(df
).transform_calculate(
b1l='floor((isDefined(brush1.y) ? (brush1.y[0]) : 1) / 100) * 100',
b1u='ceil((isDefined(brush1.y) ? (brush1.y[1]) : 1) / 100) * 100',
b2l='floor((isDefined(brush2.x) ? (brush2.x[0]) : 1) / 100) * 100',
b2u='ceil((isDefined(brush2.x) ? (brush2.x[1]) : 1) / 100) * 100',
).mark_point().encode(
x = 'B',
y = 'A',
tooltip = 'sample'
).transform_filter(
'(datum.lower_A == datum.b1l) &&'
'(datum.upper_A == datum.b1u) &&'
'(datum.lower_B == datum.b2l) &&'
'(datum.upper_B == datum.b2u)'
)
A = alt.Chart(df).mark_line().encode(
x = 'mean(A)',
y = alt.Y('lower_A', axis=alt.Axis(title='Select size range for A'))
).transform_filter(
'(datum.lower_A == datum.lower_B) &&'
'(datum.upper_A == datum.upper_B)'
).add_selection(
brush1
).properties(
height = 300,
width = 100
)
B = alt.Chart(df).mark_line().encode(
x = alt.X('lower_B', axis=alt.Axis(title='Select size range for B')),
y = 'mean(B)'
).transform_filter(
'(datum.lower_A == datum.lower_B) &&'
'(datum.upper_A == datum.upper_B)'
).add_selection(
brush2
).properties(
height = 100,
width = 400
)
A | scatter & B
如果我在这里做错了什么,有人可以发现吗?或者提示我是否应该以完全不同的方式解决它?
【问题讨论】: