Как добавить несколько боксов в один набор осей - PullRequest
1 голос
/ 22 мая 2019

Я пытаюсь построить 4 группы данных в виде боксов на одном наборе осей.Я смог использовать функцию print() для построения их на отдельных графиках, но не могу понять, как построить их все вместе, предпочтительно используя базовый пакет или решетку

ниже приведен код Iя пытаюсь, но он продолжает выдавать ошибку:

Error in x[floor(d)] + x[ceiling(d)] :
non-numeric argument to binary operator

Вот код, который я сейчас пытаюсь:

Summer <- SeasonalMax$Summer
Autumn <- SeasonalMax$Autumn
Winter <- SeasonalMax$Winter
Spring <- SeasonalMax$Spring

boxplot(Summer, Autumn, Winter, Spring,
    main = "Multiple boxplots for comparision",
    at = c(1,2,3,4),
    names = c("Summer", "Autumn", "Winter", "Spring"),
    las = 2,
    col = c("red","orange", "blue", "pink"))

Ответы [ 2 ]

0 голосов
/ 22 мая 2019

Вы можете использовать ggplot2 и data.table, я думаю, что это проще, вот код:

library(data.table)
library(ggplot2)
dat <- data.table(Spring = c(runif(9,0,1),2),
                  Summer = runif(10,0,1),
                  Autumn = runif(10,0,1),
                  Winter = runif(10,0,1))
dat1 = melt(dat)

ggplot(data=dat1,aes(x=variable,y=value)) +geom_boxplot(outlier.colour = "red")
ggplot(data=dat1,aes(x=variable,y=value,colour=variable)) +geom_boxplot() 

блокпост по группам

0 голосов
/ 22 мая 2019

Сначала объедините данные в длинный формат

# Dummy dataset
Dat <- data.frame(Spring = runif(10,0,1),
           Summer = runif(10,0,1),
           Autumn = runif(10,0,1),
           Winter = runif(10,0,1))

Затем объедините данные в длинный формат с помощью: пакета reshape2

library(reshape2)
melt(Dat)

или пакета tidyr

library(tidyr)
gather(Dat,key="Season",value="Value")

Затем, когда вы строите график, используйте аргумент формулы следующим образом [я продолжу с тидиром, потому что я назвал столбцы]

Dat2 <- gather(Dat,key="Season",value="Value")
with(Dat2,boxplot(Value~Season))

И со всеми вашими дополнениями

with(Dat2,boxplot(Value~Season,
     main = "Multiple boxplots for comparision",
     at = c(1,2,4,5),
     names = c("Summer", "Autumn", "Winter", "Spring"),
     las = 2,
     col = c("red","orange", "blue", "pink")))
...