格子条形图:控制图例中元素的分离

时间:2017-05-28 16:26:00

标签: r legend lattice legend-properties

请考虑帖子末尾的简短代码。 除了一些之外,它还会生成一个条形图,其中包含所有内容 对传奇进行微调。 我可以控制两行中文本之间的间距 传说,但我如何强制红色和红色之间的分离 传说中的蓝色矩形? 欢迎提出任何建议。

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 个答案:

答案 0 :(得分: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
    )
)

enter image description here