Altair 中的聚合函数块绘图交互

考虑以下改编自的代码:Altair 网站

import altair as alt

import pandas as pd


source = pd.DataFrame({

    'a': ['A', 'B', 'B', 'B', 'E', 'F', 'G', 'H', 'I'],

    'b': [28, 55, 43, 91, 81, 53, 19, 87, 52]

})


alt.Chart(source).mark_bar().encode(

    x='a',

    y='b:Q'

).interactive()


输出此图:

http://img2.mukewang.com/643e3d180001b79e02270342.jpg

这是交互式的(我们可以放大)。但是,如果我将 Y 编码字段更改为以下内容(这是我需要的)——通过添加聚合函数:


import altair as alt

import pandas as pd


source = pd.DataFrame({

    'a': ['A', 'B', 'B', 'B', 'E', 'F', 'G', 'H', 'I'],

    'b': [28, 55, 43, 91, 81, 53, 19, 87, 52]

})


alt.Chart(source).mark_bar().encode(

    x='a',

    y='sum(b):Q'

).interactive()


剧情不再互动。是否可以在使用Aggregative Function时使其具有交互性,即:四处移动、放大、缩小?


呼如林
浏览 96回答 1
1回答

拉丁的传说

作为解决方法,您可以将预先聚合的数据传递给图表:import altair as altimport pandas as pdsource = pd.DataFrame({    'a': ['A', 'B', 'B', 'B', 'E', 'F', 'G', 'H', 'I'],    'b': [28, 55, 43, 91, 81, 53, 19, 87, 52]})data = source.groupby('a').sum().reset_index()alt.Chart(data).mark_bar().encode(    x='a',    y=alt.Y('b', title='Sum of b')).interactive()
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python