如何解决转换后查看数据
在altair应用转换和聚合之后是否可以查看数据?
例如,您可以在进行以下转换后访问基础数据吗?
import altair as alt
from vega_datasets import data
source = data.seattle_weather.url
step = 20
overlap = 1
alt.Chart(source,height=step).transform_timeunit(
Month='month(date)'
).transform_joinaggregate(
mean_temp='mean(temp_max)',groupby=['Month']
).transform_bin(
['bin_max','bin_min'],'temp_max'
).transform_aggregate(
value='count()',groupby=['Month','mean_temp','bin_min','bin_max']
).transform_impute(
impute='value','mean_temp'],key='bin_min',value=0
).mark_area(...
)
解决方法
转换是使用Javascript进行评估的,并且没有任何内置的方式可以从Python后端访问javascript前端中的数据。但是,有一个名为altair_transform的实验性程序包,它能够评估Python中大多数Vega表达式。
对于您的图表,您可以像这样使用它:
import altair as alt
from vega_datasets import data
source = data.seattle_weather()
step = 20
overlap = 1
chart = alt.Chart(source,height=step).transform_timeunit(
Month='month(date)'
).transform_joinaggregate(
mean_temp='mean(temp_max)',groupby=['Month']
).transform_bin(
['bin_max','bin_min'],'temp_max'
).transform_aggregate(
value='count()',groupby=['Month','mean_temp','bin_min','bin_max']
).transform_impute(
impute='value','mean_temp'],key='bin_min',value=0
).mark_area().encode(
x='Month:T',y='value:Q'
)
import altair_transform
data = altair_transform.extract_data(chart)
print(data)
bin_min Month mean_temp bin_max value
0 0.0 1900-01-01 8.229032 -5.0 2.0
1 5.0 1900-01-01 8.229032 0.0 19.0
2 10.0 1900-01-01 8.229032 5.0 72.0
3 15.0 1900-01-01 8.229032 10.0 29.0
4 20.0 1900-01-01 8.229032 15.0 2.0
.. ... ... ... ... ...
103 20.0 1900-12-01 8.194355 15.0 4.0
104 25.0 1900-12-01 8.194355 NaN 0.0
105 30.0 1900-12-01 8.194355 NaN 0.0
106 35.0 1900-12-01 8.194355 NaN 0.0
107 40.0 1900-12-01 8.194355 NaN 0.0
[108 rows x 5 columns]
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。