1

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

        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 = ???
)
4

1 回答 1

2

根据数据的存储方式,您可以做很多事情。

假设您的月份存储在一列时间戳中,您可以执行以下操作,使用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'
)

在此处输入图像描述

于 2018-06-23T15:10:04.863 回答