Skip to content

Examples

Line Charts

data = pd.DataFrame({"x": range(10), "y": np.random.randn(10).cumsum()})
chart = go.Chart(data).map(x="x", y="y").geom("line")

data = pd.DataFrame({"x": range(10), "y": np.random.randn(10).cumsum()})
chart = go.Chart(data).title("Basic Line Chart").map(x="x", y="y").geom("line")

data = pd.DataFrame(
    {
        "x": list(range(10)) * 3,
        "y": np.random.randn(30).cumsum(),
        "series": ["A"] * 10 + ["B"] * 10 + ["C"] * 10,
    }
)
chart = go.Chart(data).map(x="x", y="y", color="series").geom("line")

data = pd.DataFrame({"x": range(10), "y": np.random.randn(10).cumsum()})
chart = go.Chart(data).map(x="x", y="y").geom("line").geom("point")

Bar Charts

data = pd.DataFrame(
    {"category": ["A", "B", "C", "D", "E"], "value": [23, 45, 12, 67, 34]}
)
chart = go.Chart(data).map(x="category", y="value").geom("bar")

data = pd.DataFrame(
    {"category": ["A", "B", "C", "D", "E"], "value": [23, 45, 12, 67, 34]}
)
chart = go.Chart(data).map(x="value", y="category").geom("bar")

data = pd.DataFrame(
    {
        "category": ["A", "A", "B", "B", "C", "C"],
        "group": ["X", "Y"] * 3,
        "value": [10, 15, 20, 25, 30, 35],
    }
)
chart = go.Chart(data).map(x="category", y="value", color="group").geom("bar")

Scatter Charts

data = pd.DataFrame({"x": np.random.randn(50), "y": np.random.randn(50)})
chart = go.Chart(data).map(x="x", y="y").geom("point")

data = pd.DataFrame(
    {
        "x": np.random.randn(50),
        "y": np.random.randn(50),
        "group": np.random.choice(["A", "B", "C"], 50),
    }
)
chart = go.Chart(data).map(x="x", y="y", color="group").geom("point")

data = pd.DataFrame(
    {
        "x": np.random.randn(30),
        "y": np.random.randn(30),
        "size": np.random.randint(10, 100, 30),
    }
)
chart = go.Chart(data).map(x="x", y="y", size="size").geom("point")

Faceted Charts

df = pd.DataFrame(
    {
        "Category": ["A", "A", "B", "B", "C", "C"],
        "Subgroup": ["X", "Y", "X", "Y", "X", "Z"],
        "Binary": [True, False, True, False, True, False],
        "Value": [10, 15, 20, 25, 30, 35],
    }
)
df_small = pd.DataFrame(
    {
        "Category": ["A", "B", "B", "C"],
        "Subgroup": ["X", "X", "Y", "Z"],
        "Binary": [True, True, True, False],
        "Value": [10, 14, 20, 30],
    }
)
df["Value_string"] = df["Value"].astype(str)
df_small["Value_string"] = df["Category"].astype(str)

gochart = (
    go.Chart(df)
    .map(x="Category", y="Value", color="Subgroup")
    .geom("bar")
    .geom(
        "line",
        data=df_small,
        map={
            "tooltip": "Subgroup",
            "x": "Category",
            "y": "Value",
            "color": "Subgroup",
        },
    )
    .matrix(col="Subgroup", row="Binary")
)
return gochart

df = pd.DataFrame(
    {
        "Category": ["A", "A", "B", "B", "C", "C"],
        "Subgroup": ["X", "Y", "X", "Y", "X", "Z"],
        "Binary": [True, False, True, False, True, False],
        "Value": [10, 15, 20, 25, 30, 35],
    }
)

df_small = pd.DataFrame(
    {
        "Category": ["A", "B", "B", "C"],
        "Subgroup": ["X", "X", "Y", "Z"],
        "Binary": [True, True, True, False],
        "Value": [10, 14, 20, 30],
    }
)

df["Value_string"] = df["Value"].astype(str)
df_small["Value_string"] = df["Category"].astype(str)

guillaume_style = (
    go.Theme()
    .axis.label(color="#aa3333")
    .facet.box(r=5, fill="#ffddff", stroke="#aa3333", lineWidth=2)
    .facet.label.col(color="#aa3333")
    .grid.facet.spacing(cols=10, rows=7)
    .grid.margin(left=15, bottom=20)
)

gochart = (
    go.Chart(df)
    .map(x="Category", y="Value", color="Subgroup")
    .geom("bar")
    .geom(
        "line",
        data=df_small,
        map={
            "tooltip": "Subgroup",
            "x": "Category",
            "y": "Value",
            "color": "Subgroup",
        },
    )
    .facet(col="Subgroup", row="Binary")
    .theme(guillaume_style)
    .title(title="Bar Chart with Facets")
)
return gochart

data = pd.DataFrame(
    {
        "x": list(range(10)) * 3,
        "y": np.random.randn(30),
        "group": ["A"] * 10 + ["B"] * 10 + ["C"] * 10,
    }
)
chart = go.Chart(data).map(x="x", y="y").geom("line").facet(col="group")

data = pd.DataFrame(
    {
        "x": list(range(10)) * 3,
        "y": np.random.randn(30),
        "group": ["A"] * 10 + ["B"] * 10 + ["C"] * 10,
    }
)
chart = go.Chart(data).map(x="x", y="y").geom("line").facet(row="group")

data = pd.DataFrame(
    {
        "x": list(range(10)) * 6,
        "y": np.random.randn(60),
        "row_var": (["R1"] * 10 + ["R2"] * 10) * 3,
        "col_var": ["C1"] * 20 + ["C2"] * 20 + ["C3"] * 20,
    }
)
chart = (
    go.Chart(data)
    .map(x="x", y="y")
    .geom("point")
    .facet(row="row_var", col="col_var")
)

Heatmaps

# Create correlation matrix data
vars = ["A", "B", "C", "D", "E"]
data = pd.DataFrame(
    {
        "x": vars * 5,
        "y": [v for v in vars for _ in range(5)],
        "value": np.random.rand(25),
    }
)
chart = go.Chart(data).map(x="x", y="y", z="value").geom("tile")

days = ["Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun"]
hours = [f"{h}:00" for h in range(24)]
data = pd.DataFrame(
    {
        "day": days * 24,
        "hour": [h for h in hours for _ in range(7)],
        "activity": np.random.randint(0, 100, 168),
    }
)
chart = go.Chart(data).map(x="hour", y="day", z="activity").geom("tile")