我有一个熊猫数据框,看起来像:
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
差异指数
Index(['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct',
'Nov', 'Dec'],
dtype='object', name='months')
差异列
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'
)
关于python - Altair的简单线图,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/50997512/