surligner une barre dans un graph ggplot renderPlotly sous R shiny

Postez ici vos questions, réponses, commentaires ou suggestions - Les sujets seront ultérieurement répartis dans les archives par les modérateurs

Modérateur : Groupe des modérateurs

Carine Lambert
Messages : 37
Enregistré le : 18 Fév 2021, 15:16

surligner une barre dans un graph ggplot renderPlotly sous R shiny

Messagepar Carine Lambert » 08 Mar 2021, 08:46

Bonjour,

j'ai en output sous R shiny un graph ggplot geom bar.

Je voudrais que, quand l'utilisateur sélectionne une modalité de mon graph (ici un type de chauffage), la barre du graph correspondante se mette en valeur (change de couleur).

Je cherche depuis quelques jours et ne trouve pas... quelqu'un aurait peut etre une idée...

Voici l'UI :

...
checkboxGroupInput(inputId = "chauffage",
label = "Votre mode de chauffage :",
choices = list("électrique"=1, "gaz naturel individuel"=2, "gaz naturel collectif"=3,
"charbon"=4, "fioul domestique collectif"=5, "fioul domestique individuel"=6,
"GPL"=7, "réseau de chaleur"=8))),
...
box(id = "res2", title = "Estimer le chauffage :",
status = "success", solidHeader = FALSE, collapsible = FALSE,
width = NULL,
plotlyOutput("graph_chauffage"))



et le server :


output$graph_chauffage <- renderPlotly ({

cols <- c("électrique"= "#e72f3f", "gaz naturel individuel"="#e72f3f", "gaz naturel collectif"= "#e72f3f", "charbon"="#e72f3f",
"fioul domestique individuel"="#e72f3f","GPL"= "#e72f3f", "réseau de chaleur"="#e72f3f", "fioul domestique collectif"="#e72f3f")

cols['input$chauffage'] <- "#9184be"


g <- ggplot(periode(), aes(x = type_chauffage, y = chauffage_en_kWh_par_logement, fill=type_chauffage)) +
geom_bar( stat = "identity") +
xlab("Type de chauffage" ) + ylab("Consommation énergétique en kWh/m²") +
scale_fill_manual(values=cols)+
theme(axis.text.x = element_text(angle = 45, hjust = 1),panel.background = element_rect(fill = "transparent"), legend.position = "none")+
geom_text(aes(label=chauffage_en_euro),vjust=1.6,size=3.5, color = "navy")
theme_minimal()

ggplotly(g) %>%
config(displaylogo = FALSE, collaborate = FALSE,
displayModeBar = FALSE)
})



Merci encore pour votre aide, je suis désespérée :)

Pierre-Yves Berrard
Messages : 1029
Enregistré le : 12 Jan 2016, 23:30

Re: surligner une barre dans un graph ggplot renderPlotly sous R shiny

Messagepar Pierre-Yves Berrard » 08 Mar 2021, 10:25

Bonjour,

Je dirais qu'il faut remplacer cols['input$chauffage'] par cols[input$chauffage] ?

Pas testé, car l'exemple n'est pas reproductible.
PY


Retourner vers « Questions en cours »

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 1 invité

cron