带 altair 的简单折线图
Simple line graph with altair
我有一个 pandas 数据框,看起来像:
Difference
months
Jan 7552
Feb 8080
Mar 7707
Apr 7718
May 13895
Jun 14423
Jul 14375
Aug 11898
Sep 12326
Oct 12211
Nov 12739
Dec 12927
difference.index
Index(['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct',
'Nov', 'Dec'],
dtype='object', name='months')
difference.columns
Index(['Difference'], dtype='object')
我只想要一个折线图,其中 y 轴代表差异列中的数值,x 轴上的每个刻度代表一年中的一个月。
这应该非常接近我想要的,但我不确定如何正确分配 x。我以为我应该能够做 x = 'months' 或 x = difference.index,但这是一个错误。
alt.Chart( difference ).mark_line().encode(
y = 'Difference',
x = ???
)
根据数据的存储方式,您可以做很多事情。
假设您的月份存储在一列时间戳中,您可以这样做,使用 month
TimeUnit 从时间戳中仅提取月份:
import pandas as pd
import altair as alt
df = pd.DataFrame({'months': pd.date_range('2018-01-01', periods=12, freq='M'),
'Difference': [7552, 8080, 7707, 7718, 13895, 14423, 14375,
11898, 12326, 12211, 12739, 12927]})
alt.Chart(df).mark_line().encode(
x='month(months):T',
y='Difference'
)
我有一个 pandas 数据框,看起来像:
Difference
months
Jan 7552
Feb 8080
Mar 7707
Apr 7718
May 13895
Jun 14423
Jul 14375
Aug 11898
Sep 12326
Oct 12211
Nov 12739
Dec 12927
difference.index
Index(['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct',
'Nov', 'Dec'],
dtype='object', name='months')
difference.columns
Index(['Difference'], dtype='object')
我只想要一个折线图,其中 y 轴代表差异列中的数值,x 轴上的每个刻度代表一年中的一个月。
这应该非常接近我想要的,但我不确定如何正确分配 x。我以为我应该能够做 x = 'months' 或 x = difference.index,但这是一个错误。
alt.Chart( difference ).mark_line().encode(
y = 'Difference',
x = ???
)
根据数据的存储方式,您可以做很多事情。
假设您的月份存储在一列时间戳中,您可以这样做,使用 month
TimeUnit 从时间戳中仅提取月份:
import pandas as pd
import altair as alt
df = pd.DataFrame({'months': pd.date_range('2018-01-01', periods=12, freq='M'),
'Difference': [7552, 8080, 7707, 7718, 13895, 14423, 14375,
11898, 12326, 12211, 12739, 12927]})
alt.Chart(df).mark_line().encode(
x='month(months):T',
y='Difference'
)