我有一个熊猫数据框,看起来像:

        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的简单线图-LMLPHP

关于python - Altair的简单线图,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/50997512/

10-11 06:06