У меня есть данные со следующими столбцами: лот, подт, размер, данные. У меня есть несколько лотов (лотов), и каждая партия может иметь несколько подслоев. Каждый Подлот имеет размер (ы) от 1 до 4.Динамическая раскраска boxplot в R
Я создал boxplot для этих данных, используя следующий код:
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 команду, чтобы цвет каждого boxplot основанный на много#. Я видел два решения:
- создать вектор и указать конкретные цвета, которые будут использоваться, например. colr = c («красный», «красный», «красный», «зеленый», «зеленый», «зеленый», «синий»). Проблема с этим решением заключается в том, что он требует, чтобы я знал apriori количество лотов в df и количество раз, которое цвет нужно повторять.
- инструкция "ifelse". Проблема с этим решением заключается в том, что (а) мне нужно знать количество лотов и (б) мне нужно создать несколько вложенных операторов 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