gpt4 book ai didi

python - Altair 中特定于 Pandas 时间序列的操作

转载 作者:行者123 更新时间:2023-12-04 02:38:50 24 4
gpt4 key购买 nike

是否可以使用 transform_aggregate 函数对 Altair 中的 datetime 对象执行 groupby 操作?我正在尝试从 Jake VDP 的书的“示例:可视化西雅图自行车计数”示例中复制一些时间序列图 - https://jakevdp.github.io/PythonDataScienceHandbook/03.11-working-with-time-series.html

transform_aggregate 是否允许像重采样这样的时间序列特定操作?

最佳答案

Altair 使用 TimeUnit transform 内置时间分组,可以通过显式转换或编码速记来使用。

这是一个重现本书该部分图表的示例——请注意,当数据增长到数万个条目时,Vega-Lite 渲染器会变慢,所以我使用 altair_data_server提供数据并将图表限制为第一年:

# Load the data
# !curl -o FremontBridge.csv https://data.seattle.gov/api/views/65db-xm6k/rows.csv?accessType=DOWNLOAD

import pandas as pd
data = pd.read_csv('FremontBridge.csv', parse_dates=['Date'])
data.columns = ['Date', 'Total', 'East', 'West']
df = data.iloc[:24 * 365] # limit to first year of data

# Draw the chart
import altair as alt
alt.data_transformers.enable('data_server') # handle larger datasets

alt.Chart(df).mark_line().transform_fold(
['Total', 'East', 'West'],
).encode(
x='hours(Date):T',
y='sum(value):Q',
color='key:N'
)

enter image description here

timeUnit 语法非常灵活,允许您在单个图表中按多个日期属性进行拆分和分组;例如,这是按星期几分面的趋势:

alt.Chart(df).transform_fold(
['Total', 'East', 'West']
).mark_line().encode(
x='hours(Date):T',
y='sum(value):Q',
color='key:N',
facet=alt.Facet('day(Date):O', columns=4)
).properties(width=200, height=150)

enter image description here

关于python - Altair 中特定于 Pandas 时间序列的操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60354652/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com