在Vega-Lite的Scale Domains docs中指出:
# RubenB's code
indices_dup = [np.repeat(i, quantity) for i, quantity in enumerate(slots.Quantity.values)]
slots_ext = slots.loc[np.concatenate(indices_dup).ravel(), :]
# Calculate the cumulative sum of the delta per rota ID
slots_ext["delta_sum"] = slots_ext.groupby("ID")["Duration"].cumsum()
slots_ext["delta_sum"] = pd.to_timedelta(slots_ext["delta_sum"], unit="minutes")
# Use the cumulative sum to calculate the running end dates and then the start dates
first_value = slots_ext.StartDate[0]
slots_ext["EndDate"] = slots_ext.delta_sum.values + slots_ext.StartDate
slots_ext["StartDate"] = slots_ext.EndDate.shift(1)
slots_ext.loc[0, "StartDate"] = first_value
slots_ext.reset_index(drop=True, inplace=True)
除了一个区别:
实际上几乎相同(尽管过滤方法要慢得多,如文档中所述),
问题:通过“比例域”方法(与过滤选择方法相同),是否可以在移动选择时使y轴自动放大到选定的点?
为什么上述区别很重要?想象一下,去年股价平均每天平均上涨1美元(但在特定的一天内,它可能表现出任何种类的波动性行为),而我们正在用线条标记它。如果绘制整个年份,则会看到整个图片。但是,如果您在特定的一天放大而未重置y轴缩放,则您的日内价格图只会是一条平线,或者接近该水平线。
///我已经在vega-lite,altair repo和SO上检查了所有与规模域相关的问题,但是找不到任何相关的问题;我还posted this question参与了GH的vega-lite存储库,但被转发给了SO。
答案 0 :(得分:0)
不。除非另有说明,否则y比例是根据图中的所有数据确定的。
过滤数据时,图中的数据会发生变化,从而导致y轴发生变化。当您基于x选择更改比例而不过滤数据时,它不会更改图中的数据,因此y比例保持不变。
如果您要根据选择范围内的数据自动确定y比例,唯一的选择是对选择范围进行过滤。