2016-07-05 20 views
6

Jeśli chcę używać parametrów labels i colors z funkcją addLegend() wewnątrz shinyApp, legenda jest wyświetlana na klatce schodowej, jak widać poniżej. Ale jeśli wyrenderuję mapę tylko z leaflet poza shinyApp, etykiety są prawidłowo wyświetlane w linii.
Widziałem z tym samym problemem, ale ich nie można odtworzyć, więc postanowiłem opublikować własne pytanie.Etykiety legendy nie wyświetlają się w linii podczas używania etykiet i kolorów na mapie ulotek na błyszczącym

  • Niewłaściwy Display (błyszczący deska rozdzielcza)

wrongDisplay

  • Prawidłowe Display (standalone ulotka)

correctDisplay

Zrobiłem reproductible przykład :

# ----- Load and install missing packages 
packages<-c("shiny","shinydashboard","leaflet") 
new.packages <- packages[!(packages %in% installed.packages()[,"Package"])] 
if(length(new.packages)) install.packages(new.packages) 
lapply(packages, require, character.only = TRUE) 
rm(list = c("new.packages","packages")) 

# ----- Reproductible Example 

# ----- UI 
header <- dashboardHeader(title = "Repoductible Example") 
sidebar <- dashboardSidebar(
    sidebarMenu(
    menuItem("map", tabName = "map", icon = icon("globe",lib="font-awesome")) 
) 
) 
body <- dashboardBody(
    tabItems(
    tabItem(tabName= "map", 
      column(width=12, 
        leafletOutput("mapExmpl", width="100%",height=600))) 
) 
) 

ui <- dashboardPage(header, sidebar, body,skin="blue") 

# ----- Server 
server <- function(input, output) { 
    labels=c("Label1","Label2","Label3","Label4","Label5") 
    colors<-c(rgb(243,87,26,maxColorValue=256) 
      ,rgb(225,205,19,maxColorValue=256) 
      ,rgb(62,3,79,maxColorValue=256) 
      ,rgb(17,126,147,maxColorValue = 256) 
      ,rgb(61,255,80,maxColorValue=256)) 
    output$mapExmpl<-renderLeaflet({ 
    leaflet()%>%addTiles(
    )%>% 
     addLegend("bottomright", colors = colors, labels =labels , 
       title = "Typo", 
       opacity = 1 
    ) 
    }) 


} 

shinyApp(ui,server) 

Odpowiedz

4

Jednym z powodów może być powiększenie strony internetowej, tzn. Poziom powiększenia przekracza 100%. Upewnij się, że nie jesteś powiększony. Naciśnij klawisze Control + 0 na klawiaturze, aby ustawić zoom na 100%. Spróbuj też użyć innej przeglądarki internetowej, jeśli problem będzie się powtarzał.

miałem ten sam problem głupie ponieważ moja przeglądarka została powiększona (> 100%).

4

miałem ten sam problem. W moim przypadku, dostosowując CSS legendy rozwiązał problem:

ui <- bootstrapPage( 
    tags$style(type="text/css", "div.info.legend.leaflet-control br {clear: both;}"), 
... 
) 
Powiązane problemy