Introducing \n's so that par.strip.text can produce multiline strips in lattice
Hi:
This worked for me - I needed to modify some of the strip labels to
improve the appearance a bit and also reduced the strip font size a
bit to accommodate the lengths of the strings. The main thing was to
change \\n to \n.
Firstly, I created a new variable called Indic as a character variable
and then did some minor surgery on three of the strings:
Indic <- as.character(imports$Indicator)
Indic[3 + 6 *(0:5)] <- "Chemicals and related\n products imports"
Indic[4 + 6 *(0:5)] <- "Pearls, semiprecious &\nprecious stones imports"
Indic[5 + 6 *(0:5)] <- "Metaliferrous ores &\nmetal scrap imports"
# Read Indic into the imports data frame as a factor:
imports$Indic <- factor(Indic)
# Redo the plot:
barchart(X03/1000 ~ time | Indic,
data = imports[which(imports$time != 1), ],
horiz = FALSE,
scales = list(x = list(rot=45, labels=paste("Mar",2007:2011))),
par.strip.text=list(lineheight=1, lines=2, cex = 0.8))
Dennis
On Wed, Nov 16, 2011 at 11:25 PM, Ashim Kapoor <ashimkapoor at gmail.com> wrote:
Dear all, I have the following data, which has \\n in place of \n. I introduced \n's in the csv file so that I could use it in barchart in lattice. When I did that and read it into R using read.csv, it read it as \\n. My question is how do I introduce "\n" in the middle of a long string of quoted text so that lattice can make multiline strips. Hitting Enter which is supposed to introduce \n's does'nt work because when I goto the middle of the line and press enter Open Office thinks that I am done with editing my text and takes me to the next line.
dput(imports)
structure(list(Indicator = structure(c(5L, 4L, 2L, 12L, 8L, 7L,
5L, 4L, 2L, 12L, 8L, 7L, 5L, 4L, 2L, 12L, 8L, 7L, 5L, 4L, 2L,
12L, 8L, 7L, 5L, 4L, 2L, 12L, 8L, 7L, 5L, 4L, 2L, 12L, 8L, 7L
), .Label = c("", "Chemicals and related\\n products imports",
"Coal export", "Gold imports", "Gold & silver imports", "Iron ore export",
"Iron & steel imports", "Metaliferrous ores & metal scrap imports",
"Mica export", "Ores & minerals\\nexport", "Other ores &\\nminerals
export",
"Pearls precious &\\n semiprecious stones imports", "Processed minerals\\n
export"
), class = "factor"), Units = structure(c(2L, 2L, 2L, 2L, 2L,
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L,
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L), .Label = c("",
"Rs.crore"), class = "factor"), Expression = structure(c(2L,
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L,
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L,
2L, 2L, 2L), .Label = c("", "Ival"), class = "factor"), time = c(7,
7, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 10, 10, 10,
10, 10, 10, 11, 11, 11, 11, 11, 11, 1, 1, 1, 1, 1, 1), X03 = c(66170.46,
65337.72, 62669.86, 33870.17, 36779.35, 27133.25, 71829.14, 67226.04,
75086.89, 29505.61, 31750.99, 32961.26, 104786.39, 95323.8, 134276.63,
76263, 36363.61, 41500.36, 140440.36, 135877.91, 111269.69, 76678.27,
36449.89, 36808.06, 162253.77, 154346.72, 124895.76, 142437.03,
42872.16, 43881.85, 109096.024, 103622.438, 101639.766, 71750.816,
36843.2, 36456.956), id = c(1L, 2L, 3L, 4L, 5L, 6L, 1L, 2L, 3L,
4L, 5L, 6L, 1L, 2L, 3L, 4L, 5L, 6L, 1L, 2L, 3L, 4L, 5L, 6L, 1L,
2L, 3L, 4L, 5L, 6L, 1L, 2L, 3L, 4L, 5L, 6L)), row.names = c("1.7",
"2.7", "3.7", "4.7", "5.7", "6.7", "1.8", "2.8", "3.8", "4.8",
"5.8", "6.8", "1.9", "2.9", "3.9", "4.9", "5.9", "6.9", "1.10",
"2.10", "3.10", "4.10", "5.10", "6.10", "1.11", "2.11", "3.11",
"4.11", "5.11", "6.11", "1.1", "2.1", "3.1", "4.1", "5.1", "6.1"
), .Names = c("Indicator", "Units", "Expression", "time", "X03",
"id"), class = "data.frame", reshapeLong = structure(list(varying =
structure(list(
? ?X03 = c("X03.07", "X03.08", "X03.09", "X03.10", "X03.11",
? ?"X03.1")), .Names = "X03", v.names = "X03", times = c(7,
8, 9, 10, 11, 1)), v.names = "X03", idvar = "id", timevar = "time"), .Names
= c("varying",
"v.names", "idvar", "timevar")))
On which I want to run
barchart(X03/1000~time|Indicator,
? ? ? ? data=imports[which(imports$time!=1),],
? ? ? ? horiz=F,
? ? ? ? scales=list(x=list(rot=45,labels=paste("Mar",2007:2011))),
? ? ? ? par.strip.text=list(lineheight=1,lines=2))
Many thanks,
Ashim.
? ? ? ?[[alternative HTML version deleted]]
______________________________________________ R-help at r-project.org mailing list 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.