Carto-RSE / pp_viz.py
Ilyas KHIAT
chatbot and bug fix
38cf0bb
raw
history blame
2.14 kB
import streamlit as st
import pandas as pd
import numpy as np
import re
import altair as alt
from session import get_parties_prenantes
import os
from streamlit_vertical_slider import vertical_slider
from st_draggable_list import DraggableList
def display_viz():
parties_prenantes = get_parties_prenantes()
if parties_prenantes is None or len(parties_prenantes) == 0:
st.write("aucune partie prenante n'a été définie")
else:
partie_prenante_non_filtre = [item.lower().capitalize() for sublist in parties_prenantes for item in sublist]
partie_prenante = sorted(list(set(partie_prenante_non_filtre)))
pouvoir = [ 50 for _ in range(len(partie_prenante))]
c = (
alt.Chart(st.session_state['partie_prenante_grouped'])
.mark_circle(size=800)
.encode(x="partie_prenante", y=alt.Y("pouvoir",scale=alt.Scale(domain=[0,100])), color="Code couleur",tooltip=["partie_prenante","pouvoir"])
).configure_legend(orient='bottom',direction="vertical").properties(height=600)
number_of_sliders = len(partie_prenante)
st.write("Modifiez le pouvoir des parties prenantes en utilisant les sliders ci-dessous")
bar = st.columns(number_of_sliders)
for i in range(number_of_sliders):
with bar[i]:
st.session_state['partie_prenante_grouped']['pouvoir'][i] = vertical_slider(
label=partie_prenante[i],
height=100,
key=partie_prenante[i],
default_value=int(st.session_state['partie_prenante_grouped']['pouvoir'][i]),
thumb_color= "orange", #Optional - Defaults to Streamlit Red
step=1,
min_value=0,
max_value=100,
value_always_visible=False,
)
st.altair_chart(c, use_container_width=True)
# data = [{'id':partie_prenante[i], 'name':partie_prenante[i],'pouvoir':int(df["pouvoir"][i])} for i in range(len(partie_prenante))]
# slist = DraggableList(data)
# st.write(slist)