Добавьте легенду в боковую панель блестящей гибкой панели - PullRequest
0 голосов
/ 27 марта 2019

После некоторых советов по тонкой настройке легенды на боковой панели моей flexdashboard. (Я в основном восстанавливаю функциональность Tableau с помощью R).

enter image description here

Как видите, мне удалось собрать что-то вместе, но мне действительно было бы интересно:

  • сопоставление цвета фона с боковой панелью

  • позиционирование лучше, так что вокруг него меньше "белого пространства" и он выровнен по левому краю

  • размер шрифта (и квадратов) немного больше, чем в настоящее время появление.

Очень ценю любые советы, которые вы все могли бы дать.

Дополнительные бонусные баллы вы можете предложить любому руководству для достижения этой цели с помощью ggplotly (мой следующий шаг), чтобы легенда стала интерактивной с помощью щелчков).

---
title: "dash"
output: flexdashboard::flex_dashboard
runtime: shiny
---

```{r setup, include=FALSE}

library(tidyverse)
library(plotly)

data_set <- iris %>% 
  gather(key, value, -Species) %>% 
  group_by(Species, key) %>% 
  summarise(average_value = mean(value))

```


SideBar {.sidebar}
---

```{r}

# radio button
radioButtons("species_filter", "Species:", choices = c("All", levels(data_set$Species)), selected = "All")


# this function retrieves the legend out of the ggplot
g_legend <- function(a.gplot){
tmp <- ggplot_gtable(ggplot_build(a.gplot))
leg <- which(sapply(tmp$grobs, function(x) x$name) == "guide-box")
legend <- tmp$grobs[[leg]]
return(legend)}

# plot the extracted legend in the sidebar
renderPlot(gridExtra::grid.arrange(g_legend(plot())))

```


Column
-----------------------------------------------------------------------

### Chart A

```{r}

# stacked bar plot

plot <- reactive(

  data_set %>% 
    {if (input$species_filter == "All") {.} 
      else {filter(., Species == input$species_filter)}} %>% 
  ggplot() +
  aes(key, average_value, fill = Species) %>%
  geom_bar(stat = "identity")

  )

renderPlot(plot() + theme(legend.position="none"))

```
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...