# Copyright (c) Streamlit Inc. (2018-2022) Snowflake Inc. (2022) # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. import inspect import textwrap import plotly.graph_objects as go import streamlit as st def show_code(demo): """Showing the code of the demo.""" show_code = st.sidebar.checkbox("Show code", True) if show_code: # Showing the code of the demo. st.markdown("## Code") sourcelines, _ = inspect.getsourcelines(demo) st.code(textwrap.dedent("".join(sourcelines[1:]))) def plotly_line_chart(data, columns, styles={}, yaxis={}, index_name=None, title=''): fig = go.Figure() for c in columns: if c not in data: continue ls = styles[c] if c in styles else None y = yaxis[c] if c in yaxis else 'y1' fig.add_trace( go.Scatter(x=data.index if index_name is None else data[index_name], y=data[c], line=ls, yaxis=y, name=c), ) fig.update_layout(title=go.layout.Title(text=title, xref='paper', x=0.35), yaxis2=dict(side='right')) st.plotly_chart(fig)