私はアルタイルの時間帯数日に渡る時系列のプロットのベガ-Liteの仕様を作成しようとしています。私の場合であるので、私がラベルが形式であるせることで、私の軸ラベルにノイズ軽減したい、ある日明らかになり'%H:%M'
、これは非明確なようにラベルを起こした場合でも、。
ここではいくつかのサンプルデータです。私の実際のデータは、5分間の解像度を持っていますが、私はそれが問題であまりここではないだろうと想像します。
import altair as alt
import numpy as np
import pandas as pd
# Create data spanning 30 hours, or just over one full day
df = pd.DataFrame({'time': pd.date_range('2018-01-01', periods=30, freq='H'),
'data': np.arange(30)**.5})
そうでない場合は些細な使用してyearmonthdatehoursminutes
変換を、私は以下のようになります。
alt.Chart(df).mark_line().encode(x='yearmonthdatehoursminutes(time):T',
y='data:Q')
さて、私の目標は、彼らのようなものになるので、横軸のラベルに日付を取り除くためにある['00:00', '03:00', ..., '21:00', '00:00', '03:00']
、または最高の作品何でも間隔。
ちょうど使用しての単純なアプローチhoursminutes
としては、変換しません作業、そのビンのように実際のデータ:
alt.Chart(df).mark_line().encode(x='hoursminutes(time):T', y='data:Q')
だから、これを行うの宣言方法はありますか?最終的には、可視化は、横軸の範囲を定義するための選択の使用を作ることになりますので、明示的に使用してラベルを指定するAxis
魅力的なようではありません。
fugledeの答え@上の展開するには、アルタイルの日付と時刻との遊び2つの異なる概念があります。
時刻形式は、あなたが時間が軸上に表示する方法を指定できます。彼らは次のようになります。
chart.encode(
x=alt.X('time:T', axis=alt.Axis(format='%H:%M'))
)
ALTAIRからフォーマットコードを使用D3-時間フォーマット。
時間単位は、あなたがデータをグループ化する方法を指定でき、そして彼らはまた、合わせて、デフォルトの時刻形式を調整します。彼らはこのような何かを見て:
chart.encode(
x=alt.X('time:T', timeUnit='hoursminutes')
)
または速記経由:
chart.encode(
x='hoursminutes(time):T'
)
利用可能な時間単位の一覧が表示され、ここで。
あなたは、軸の書式のみ、使用時間のフォーマットを調整したい場合。あなたはタイムスパンに基づいてグループ化したい場合は(年によってすなわちグループデータを、月別、時間によって、など)、時間単位を使用しています。この例としては、例えば、アルタイルのドキュメントに表示され、シアトル天気ヒートマップ Altairの例ギャラリーインチ