Altair用于机场之间连接的交互式图时间序列

如何解决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 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?
Java在半透明框架/面板/组件上重新绘画。
Java“ Class.forName()”和“ Class.forName()。newInstance()”之间有什么区别?
在此环境中不提供编译器。也许是在JRE而不是JDK上运行?
Java用相同的方法在一个类中实现两个接口。哪种接口方法被覆盖?
Java 什么是Runtime.getRuntime()。totalMemory()和freeMemory()?
java.library.path中的java.lang.UnsatisfiedLinkError否*****。dll
JavaFX“位置是必需的。” 即使在同一包装中
Java 导入两个具有相同名称的类。怎么处理?
Java 是否应该在HttpServletResponse.getOutputStream()/。getWriter()上调用.close()?
Java RegEx元字符(。)和普通点?