Spaces:
Running
Running
import pandas as pd | |
import plotly.graph_objects as go | |
import vizro.models as vm | |
import vizro.plotly.express as px | |
from plotly.subplots import make_subplots | |
from vizro import Vizro | |
from vizro.models.types import capture | |
gapminder = px.data.gapminder() | |
def column_and_line(data_frame: pd.DataFrame, x: str, y_column: str, y_line: str) -> go.Figure: | |
"""Creates a combined column and line chart using Plotly.""" | |
fig = make_subplots(specs=[[{"secondary_y": True}]]) | |
fig.add_trace( | |
go.Bar(x=data_frame[x], y=data_frame[y_column], name=y_column), | |
secondary_y=False, | |
) | |
fig.add_trace( | |
go.Scatter(x=data_frame[x], y=data_frame[y_line], name=y_line), | |
secondary_y=True, | |
) | |
fig.update_layout( | |
xaxis={"type": "category", "title": x}, | |
yaxis={"tickmode": "sync", "title": y_column}, | |
yaxis2={"tickmode": "sync", "overlaying": "y", "title": y_line}, | |
) | |
return fig | |
dashboard = vm.Dashboard( | |
pages=[ | |
vm.Page( | |
title="Column and line", | |
components=[ | |
vm.Graph( | |
figure=column_and_line( | |
gapminder.query("country == 'Vietnam'"), | |
y_column="gdpPercap", | |
y_line="lifeExp", | |
x="year", | |
) | |
) | |
], | |
) | |
] | |
) | |
Vizro().build(dashboard).run() | |