Luigi Marongiu
2015-Aug-31 20:17 UTC
[R] modify strip labels with given text using lattice package
Dear all, I am drawing a barchart plot with lattice and the resulting strips are taking the value of the variable being compared (in this example "assay"). However I would like to write myself the value to place into the strips, let's say I want to call the variables as "molecular test" and "serological test" the values "a" and "b" respectively within "assay". I have tried different approaches taken from the web but nothing worked. Would you have any tip? Best regards Luigi>>>test <- rep(c("Adenovirus", "Rotavirus", "Norovirus", "Rotarix", "Sapovirus"), 2) res <- c(0, 1, 0, 1,0, 1,0, 1,0, 1, 0, 1, 0, 1,0, 1,0, 1,0, 1) count <- rnorm(20) assay <- c(rep("a", 10), rep("b", 10)) df <- data.frame(test, res, count, assay, stringsAsFactors = FALSE) library(lattice) barchart( test ~ count|assay, df, groups = res, stack = TRUE, main = "Comparison of test results", xlab = "Count", col = c("yellow", "blue"), par.settings = list( strip.background = list(col="light grey"), superpose.polygon=list(col= c("yellow", "blue")) ), scales = list( alternating = FALSE ), key = list( space="top", columns=2, text=list(c("Negative", "Positive"), col="black"), rectangles=list(col=c("yellow", "blue")) ) )
David Winsemius
2015-Aug-31 23:34 UTC
[R] modify strip labels with given text using lattice package
On Aug 31, 2015, at 1:17 PM, Luigi Marongiu wrote:> Dear all, > I am drawing a barchart plot with lattice and the resulting strips are > taking the value of the variable being compared (in this example > "assay"). However I would like to write myself the value to place into > the strips, let's say I want to call the variables as "molecular test" > and "serological test" the values "a" and "b" respectively within > "assay". I have tried different approaches taken from the web but > nothing worked.Look at ?barchart in the section on arguments to strip and then at ?strip.default for how to use `strip.custom`. If you needed finer control there are functions that return the panel, but this request did not require using it: barchart( test ~ count|assay, df, groups = res, stack = TRUE, main = "Comparison of test results", xlab = "Count", col = c("yellow", "blue"), par.settings = list( strip.background = list(col="light grey"), superpose.polygon=list(col= c("yellow", "blue")) ), strip = strip.custom( factor.levels=c("molecular test","serological test") ), scales = list( alternating = FALSE ), key = list( space="top", columns=2, text=list(c("Negative", "Positive"), col="black"), rectangles=list(col=c("yellow", "blue")) ) )> Would you have any tip? > Best regards > Luigi > >>>> > test <- rep(c("Adenovirus", "Rotavirus", "Norovirus", "Rotarix", > "Sapovirus"), 2) > res <- c(0, 1, 0, 1,0, 1,0, 1,0, 1, 0, 1, 0, 1,0, 1,0, 1,0, 1) > count <- rnorm(20) > assay <- c(rep("a", 10), rep("b", 10)) > > df <- data.frame(test, res, count, assay, stringsAsFactors = FALSE) > > library(lattice) > barchart( > test ~ count|assay, > df, > groups = res, > stack = TRUE, > main = "Comparison of test results", > xlab = "Count", > col = c("yellow", "blue"), > par.settings = list( > strip.background = list(col="light grey"), > superpose.polygon=list(col= c("yellow", "blue")) > ), > scales = list( > alternating = FALSE > ), > key = list( > space="top", > columns=2, > text=list(c("Negative", "Positive"), col="black"), > rectangles=list(col=c("yellow", "blue")) > ) > ) > > ______________________________________________ > 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.David Winsemius Alameda, CA, USA
Duncan Mackay
2015-Sep-01 05:40 UTC
[R] modify strip labels with given text using lattice package
Hi Luigi
add strip.custom argument
barchart(test ~ count|assay, df,
groups = res,
stack = TRUE,
main = "Comparison of test results",
xlab = "Count",
col = c("yellow", "blue"),
strip = strip.custom(factor.levels = c("molecular
test","serological test"),
par.strip.text = list(cex = 1) ),
par.settings = list(
strip.background = list(col="light grey"),
superpose.polygon=list(col= c("yellow", "blue"))
),
scales = list(alternating = FALSE),
key = list(
space="top",
columns=2,
text=list(c("Negative", "Positive"),
col="black"),
rectangles=list(col=c("yellow", "blue"))
)
)
-----Original Message-----
From: R-help [mailto:r-help-bounces at r-project.org] On Behalf Of Luigi
Marongiu
Sent: Tuesday, 1 September 2015 06:18
To: r-help
Subject: [R] modify strip labels with given text using lattice package
Dear all,
I am drawing a barchart plot with lattice and the resulting strips are
taking the value of the variable being compared (in this example
"assay"). However I would like to write myself the value to place into
the strips, let's say I want to call the variables as "molecular
test"
and "serological test" the values "a" and "b"
respectively within
"assay". I have tried different approaches taken from the web but
nothing worked.
Would you have any tip?
Best regards
Luigi
>>>
test <- rep(c("Adenovirus", "Rotavirus",
"Norovirus", "Rotarix",
"Sapovirus"), 2)
res <- c(0, 1, 0, 1,0, 1,0, 1,0, 1, 0, 1, 0, 1,0, 1,0, 1,0, 1)
count <- rnorm(20)
assay <- c(rep("a", 10), rep("b", 10))
df <- data.frame(test, res, count, assay, stringsAsFactors = FALSE)
library(lattice)
barchart(
test ~ count|assay,
df,
groups = res,
stack = TRUE,
main = "Comparison of test results",
xlab = "Count",
col = c("yellow", "blue"),
par.settings = list(
strip.background = list(col="light grey"),
superpose.polygon=list(col= c("yellow", "blue"))
),
scales = list(
alternating = FALSE
),
key = list(
space="top",
columns=2,
text=list(c("Negative", "Positive"),
col="black"),
rectangles=list(col=c("yellow", "blue"))
)
)
______________________________________________
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.