如何解决Altair用于机场之间连接的交互式图时间序列
我是altair的新手,我正在尝试将altair画廊Connections Among U.S. Airports Interactive中的情节改编为时间序列。
数据帧如下,其中每个机场均由其ICAO代码标识。想法是让交互式滑块在年份之间移动,而气泡大小随变量“ size ”的值而不是不同机场之间的连接数变化。
icao size longitude latitude year
0 RKPC 1.00 126.49 33.51 2017
1 RKSS 0.88 126.79 37.55 2017
2 ZGSZ 0.43 113.81 22.63 2017
3 RJTT 0.43 139.77 35.55 2017
4 VHHH 0.38 113.91 22.30 2017
... ... ... ... ... ... ... ...
2486 YBLA 0.76 146.00 -36.55 2018
2487 YCOM 0.52 148.97 -36.30 2018
2488 YPCC 0.22 96.83 -12.18 2018
2489 YWGT 0.12 146.30 -36.41 2018
2490 ZBNY 0.03 116.38 39.78 2018
以下代码来自之前引用的示例。
import altair as alt
from vega_datasets import data
# Since these data are each more than 5,000 rows we'll import from the URLs
airports = data.airports.url
flights_airport = data.flights_airport.url
states = alt.topo_feature(data.us_10m.url,feature="states")
# Create mouSEOver selection
select_city = alt.selection_single(
on="mouSEOver",nearest=True,fields=["origin"],empty="none"
)
# Define which attributes to lookup from airports.csv
lookup_data = alt.LookupData(
airports,key="iata",fields=["state","latitude","longitude"]
)
background = alt.Chart(states).mark_geoshape(
fill="lightgray",stroke="white"
).properties(
width=750,height=500
).project("albersUsa")
connections = alt.Chart(flights_airport).mark_rule(opacity=0.35).encode(
latitude="latitude:Q",longitude="longitude:Q",latitude2="lat2:Q",longitude2="lon2:Q"
).transform_lookup(
lookup="origin",from_=lookup_data
).transform_lookup(
lookup="destination",from_=lookup_data,as_=["state","lat2","lon2"]
).transform_filter(
select_city
)
points = alt.Chart(flights_airport).mark_circle().encode(
latitude="latitude:Q",size=alt.Size("routes:Q",scale=alt.Scale(range=[0,1000]),legend=None),order=alt.Order("routes:Q",sort="descending"),tooltip=["origin:N","routes:Q"]
).transform_aggregate(
routes="count()",groupby=["origin"]
).transform_lookup(
lookup="origin",from_=lookup_data
).transform_filter(
(alt.datum.state != "PR") & (alt.datum.state != "VI")
).add_selection(
select_city
)
(background + connections + points).configure_view(stroke=None)
谢谢您的帮助。
解决方法
您可以按照Filter Transform上的示例,使用US Population Over Time进行此操作。这就是您的数据的样子:
class User < ApplicationRecord
has_one :seller
end
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。