[R] Spacing Between Elements in Lattice Legend
Lorenzo Isella
lorenzo.isella at gmail.com
Mon May 29 10:22:25 CEST 2017
Hello,
It was a matter of introducing a height parameter.
This code at the end provides me exactly with what I need.
Cheers
Lorenzo
#############################################################à
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
)
)
On Sun, May 28, 2017 at 03:11:36PM -0700, Bert Gunter wrote:
>1. Always cc the list, which I have done here (unless you want to say
>something that truly should be private).
>
>2. Ahh... I see. I don't believe you can do it using auto.key, which
>feeds it's list to the simpleKey() function: the price you pay for
>keeping it simple is that you lack fine control over details such as
>the rectangle height, which is (I believe) what you want. If you
>replace the auto.key= list via the following key= list, I think you
>get what you want by controlling rectangle height to your taste: e.g.
>
>key = list(title = "Year",
> text = list(c("2015","2016")),
> rectangles = list(height=.5,
> col= c("blue","red")),
> columns=1,space="right",padding.text=3)
>
>
>If this is *NOT* what you want, do cc the list in any reply.
>
>
>Oh, and incidentally, your code mistakenly had the "main" argument replicated.
>
>
>Cheers,
>Bert
>
>
>Bert Gunter
>
>"The trouble with having an open mind is that people keep coming along
>and sticking things into it."
>-- Opus (aka Berkeley Breathed in his "Bloom County" comic strip )
>
>
>On Sun, May 28, 2017 at 1:06 PM, Lorenzo Isella
><lorenzo.isella at gmail.com> wrote:
>> Thanks for the suggestion, but it is not what I want.
>> I do not want to have a separation of the rectangles in the main plot,
>> but only in the legend generated by my example.
>> Any idea about how to achieve that?
>>
>> Lorenzo
>>
>>
>> On Sun, May 28, 2017 at 09:41:10AM -0700, Bert Gunter wrote:
>>>
>>> See the "border" and "lwd" arguments in ?panel.barchart (checking the
>>> panel function help for your display is always a good idea for such
>>> questions).
>>>
>>> Adding:
>>>
>>> border = "lightgray", lwd=1,
>>>
>>> to your call would seem to give what you want. (modify appropriately
>>> to meet your aesthetic preferences).
>>>
>>> Cheers,
>>> Bert
>>> Bert Gunter
>>>
>>> "The trouble with having an open mind is that people keep coming along
>>> and sticking things into it."
>>> -- Opus (aka Berkeley Breathed in his "Bloom County" comic strip )
>>>
>>>
>>> On Sun, May 28, 2017 at 8:26 AM, Lorenzo Isella
>>> <lorenzo.isella at gmail.com> wrote:
>>>>
>>>> Dear All,
>>>> Please consider the short code at the end of the email.
>>>> It generates a barchart where everything is as I want, apart from some
>>>> minor tuning of the legend.
>>>> I can control the spacing between the text in the two rows of the
>>>> legend, but how do I force some separation between the red and the
>>>> blue rectangles in the legend?
>>>> Any suggestion is welcome.
>>>> Cheers
>>>>
>>>> Lorenzo
>>>>
>>>> ###############################################
>>>>
>>>> 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=NULL,
>>>> 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()
>>>>
>>>> ______________________________________________
>>>> R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see
>>>> https://stat.ethz.ch/mailman/listinfo/r-help
>>>> PLEASE do read the posting guide
>>>> http://www.R-project.org/posting-guide.html
>>>> and provide commented, minimal, self-contained, reproducible code.
More information about the R-help
mailing list