Решетка Barchart: управление разделением элементов в легенде

Пожалуйста, рассмотрите короткий код в конце поста. Он генерирует диаграмму, где все так, как я хочу, за исключением некоторой незначительной настройки легенды. Я могу контролировать интервал между текстом в двух строках легенды, но как я могу принудительно разделить красный и синий прямоугольники в легенде? Любое предложение приветствуется.

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()

1 ответ

Решение

Просто установите height = <something less than 1>, как это:

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
    )
)

введите описание изображения здесь

Другие вопросы по тегам