File size: 2,140 Bytes
b7289c6
 
 
 
 
 
796a4bb
b7289c6
 
796a4bb
b7289c6
 
a6409ad
7a766b7
796a4bb
ffd811b
796a4bb
 
7a766b7
ce4fc2a
796a4bb
7a766b7
38cf0bb
7a766b7
38cf0bb
74fce9f
ce4fc2a
38cf0bb
b7289c6
7a766b7
 
ce4fc2a
38cf0bb
7a766b7
 
 
38cf0bb
7a766b7
 
 
38cf0bb
7a766b7
 
 
 
 
 
796a4bb
38cf0bb
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
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)