2017-05-28 6 views
0

Bitte beachten Sie den kurzen Code am Ende des Beitrags. Es erzeugt ein Balkendiagramm, wo alles ist, was ich will, abgesehen von einigen kleinere Abstimmung der Legende. Ich kann den Abstand zwischen dem Text in den zwei Reihen der Legende steuern, aber wie erzwinge ich einige Trennung zwischen den roten und den blauen Rechtecken in der Legende? Jeder Vorschlag ist willkommen.Gitter-Balkendiagramm: Kontrollseparation von Elementen in der Legende

library(lattice) 
library(latticeExtra) 


df_tot<-structure(list(country = structure(c(13L, 1L, 3L, 21L, 12L,  6L, 
22L, 14L, 19L, 20L, 4L, 16L, 9L, 11L, 18L, 17L, 7L, 8L, 2L, 15L, 
10L, 5L, 13L, 1L, 23L, 21L, 12L, 6L, 22L, 14L, 19L, 20L, 4L, 
16L, 9L, 11L, 24L, 18L, 25L, 28L, 26L, 17L, 7L, 8L, 2L, 27L, 
15L, 10L), .Label = c("BE", "PT", "CZ", "EL", "TR", "EE", "NO", 
"PL", "IE", "SI", "IL", "DK", "AT", "FI", "SE", "HU", "NL", "IT", 
"FR", "UK", "DE", "ES", "CY", "IS", "LT", "MT", "RS", "LV"), class = 
"factor"), 
number = c(12L, 1L, 2L, 42L, 11L, 4L, 78L, 12L, 35L, 41L, 
    2L, 21L, 8L, 9L, 25L, 24L, 4L, 4L, 1L, 12L, 8L, 3L, 5L, 1L, 
     1L, 32L, 16L, 3L, 75L, 20L, 16L, 29L, 3L, 9L, 10L, 5L, 1L, 
      33L, 1L, 2L, 1L, 6L, 7L, 2L, 3L, 1L, 11L, 3L), year = 
      c(2015, 
       2015, 2015, 2015, 2015, 2015, 2015, 2015, 2015, 
       2015, 2015, 
        2015, 2015, 2015, 2015, 2015, 2015, 2015, 
        2015, 2015, 2015, 
         2015, 2016, 2016, 2016, 2016, 2016, 2016, 
         2016, 2016, 2016, 
          2016, 2016, 2016, 2016, 2016, 2016, 
          2016, 2016, 2016, 2016, 
           2016, 2016, 2016, 2016, 2016, 
           2016, 2016)), .Names = 
           c("country", 
           "number", "year"), row.names = 
           c(NA, -48L), class = "data.frame") 



p1 <- barchart(number ~ country , 
      groups= as.factor(year), 
         data = df_tot## , 
             , origin=0, spect="fill", 

     par.settings = c(ggplot2like(col=c("blue", "red"))), 
         axis = axis.grid, xlab=list("Number of 
         Beneficiaries", cex=1.2), 
         ylab=list("Country", cex=1.2), 
             main=list(NULL), 
         between = list(x = 1), 
          scales=list(cex=1), auto.key = 
         list(title = "Year", 
         columns=1,space="right",padding.text=3) 
             ) 
             pdf("beneficiaries_all2.pdf", 
         width=15, height=5) 
         print(p1) 
         dev.off() 

Antwort

1

Stellen Sie einfach height = <something less than 1>, wie folgt aus:

barchart(
    number ~ country , 
    groups = as.factor(year), 
    data = df_tot, 
    origin = 0, 
    aspect = "fill", 
    par.settings = c(ggplot2like(col = c("blue", "red"))), 
    axis = axis.grid, 
    xlab = list("Number of Beneficiaries", cex = 1.2), 
    ylab = list("Country", cex = 1.2), 
    main = list(NULL), 
    between = list(x = 1), 
    scales = list(cex = 1), 
    auto.key = list(
     title = "Year", 
     height = 0.8, 
     columns = 1, 
     space = "right", 
     padding.text = 3 
    ) 
) 

enter image description here

+1

Das perfekt auf meine Frage beantworten! Ich habe andere umständliche Antworten woanders bekommen, aber genau das brauche ich. – larry77

+0

@ larry77 Ich bin froh, dass es funktioniert hat. Überlegen Sie, die Lösung als Antwort zu akzeptieren. –

Verwandte Themen