我有以下列的数据:lot,sublot,size,data。我有多个地段,每个地段可以有多个子地段。每小批具有1至4在R中动态着色boxplot
我已经使用以下代码创建该数据的箱线图的大小(S):
df <-
readXL("Z:/R_Files/example.xlsx",
rownames=FALSE, header=TRUE, na="", sheet="Sheet1",
stringsAsFactors=TRUE)
x11()
par(mar=c(10.1, 5.1, 4.1, 2.1))
boxplot(data ~ size*sublot*lot,
xlab="", ylab="Data", main="Data by Size, Sublot, Lot",
las=2,
data=df)
title(xlab='Size.Sublot.Lot', line=9)
我想用boxfill命令着色基于所述各盒形图很多#。我见过两种解决方案:
- 创建一个向量并明确指定要使用的颜色,例如, colr = c(“红色”,“红色”,“红色”,...“绿色”,“绿色”,“绿色”,...“蓝色”)。这个解决方案的问题是它需要我先知道df中的批次数量和颜色需要重复的次数。
- 使用“ifelse”语句。这个解决方案的问题是(a)我需要知道批次的数量和(b)我需要创建多个嵌套的ifelse语句。
我宁愿创建一个“动态”解决方案,它根据我在文件中的批次条目数创建颜色矢量。
我试图创建:
uniqlot <- unique(df$lot)
colr <- palette(rainbow(length(uniqlot)))
但我坚持,因为在COLR矢量项不重复进行的size.sublot.lot的独特组合的数量。注意:我希望ABC批次的所有箱型图都用一种颜色着色,批量DEF的所有箱型箱用另一种颜色着色等。
我附上了无色箱型图的图片。 Uncolored Boxplot
原始数据(example.xlsx)可以在下面的链接访问: example.xlsx
它更容易帮助,如果你提供一个[重复的例子(http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example)与样品输入数据(这不是您的机器上的私人文件)。请参阅提供的链接,了解如何做到这一点的提示。 – MrFlick
非常感谢您的帮助和指点。我想知道如何放置xlsx文件。我已将它放在带有可访问链接的Google驱动器上。 – VikG