Размещение соответствующих коробок бок о бок в коробочках

1
задан Chris Ruehlemann 5 March 2019 в 17:11
поделиться

1 ответ

Если вы намереваетесь сгенерировать много диаграмм в R, возможно, стоит потратить время на изучение использования пакета ggplot (ggplot2). Хотя есть некоторая кривая обучения, она гораздо более гибкая и позволяет создавать очень профессионально выглядящую графику.

Вот решение, которое использует ggplot.

df <- data.frame(
    word1 = c(sample(LETTERS[1:5], 10, replace = T)),
    word2 = c(sample(LETTERS[1:5], 10, replace = T)),
    word3 = c(sample(LETTERS[1:5], 10, replace = T)),
    word4 = c(sample(LETTERS[1:5], 10, replace = T)),
    word5 = c(sample(LETTERS[1:5], 10, replace = T)),
    dur1 = c(round(abs(rnorm(10)),2)),
    dur2 = c(round(abs(rnorm(10)),2)),
    dur3 = c(round(abs(rnorm(10)),2)),
    dur4 = c(round(abs(rnorm(10)),2)),
    dur5 = c(round(abs(rnorm(10)),2))
)
df
# convert words to character:
df[,1:5] <- lapply(df[,1:5], as.character)
targets <- c("A", "C", "E")
word1to4 <- c(df$word1[df$word1 %in% targets], df$word2[df$word2 %in% targets], df$word3[df$word3 %in% targets],
              df$word4[df$word4 %in% targets])
dur1to4 <- c(df$dur1[df$word1 %in% targets], df$dur2[df$word2 %in% targets], df$dur3[df$word3 %in% targets],
             df$dur4[df$word4 %in% targets])

word5 <- df$word5[df$word5 %in% targets]
dur5 <- df$dur5[df$word5 %in% targets]

# Create Dataset to plot
library(ggplot2)

box_data<-data.frame(words=c(word1to4,word5),dur=c(dur1to4,dur5),
                     type=c(rep("1 to 4",length(word1to4)),rep("5",length(word5))))

box_data$type<-as.factor(box_data$type)
box_data$x<-interaction(box_data$words, box_data$type)

box_data$xc<-as.character(box_data$x)
box_data<-box_data[order(box_data$xc),]
box_data
my_boxplot<-ggplot(box_data, aes(x=xc, y=dur)) + geom_boxplot(aes(fill=type)) +
theme(legend.position = "top", legend.title = element_blank(), plot.title = element_text(hjust = 0.5)) +
ggtitle("Duration By Word and Type")

my_boxplot

enter image description here

0
ответ дан M.Bergen 5 March 2019 в 17:11
поделиться
Другие вопросы по тегам:

Похожие вопросы: