plot interval kepercayaan altair

Sep 23 2020

Saya berharap menggunakan altair untuk membuat plot yang mirip dengan gambar terlampir, yang diplot menggunakan matplotlib. Pada dasarnya, garis menggambarkan mean, dan interval kepercayaan.

Dataframe saya terlihat seperti ini.

dfr = pd.DataFrame(list(zip(mean, lower, upper)),
                       columns=["Mean", "Lower", "Upper"],
                       index=pd.RangeIndex(46, name="x"))

Ada ide bagaimana saya bisa mencapai ini? Saya tidak tahu sintaks dengan altair. Terima kasih

Jawaban

2 jakevdp Sep 23 2020 at 22:04

Anda dapat melakukan ini dengan melapisi plot garis dan plot area. Sebagai contoh:

import altair as alt
import numpy as np
import pandas as pd

np.random.seed(9)
mean = np.random.randn(46).cumsum()
lower = mean - 2
upper = mean + 2

dfr = pd.DataFrame(list(zip(mean, lower, upper)),
                       columns=["Mean", "Lower", "Upper"],
                       index=pd.RangeIndex(46, name="x"))

line = alt.Chart(dfr.reset_index()).mark_line().encode(
    x='x',
    y='Mean'
)

band = line.mark_area(opacity=0.5).encode(
    x='x',
    y='Lower',
    y2='Upper'
)

band + line