ggplot barplot: получение каждого отдельного токена в качестве собственного бара

#r #ggplot2

#r #ggplot2

Вопрос:

Итак, я пытаюсь создать гистограмму, подобную изображению ниже. 1

Для каждого динамика (1, 2 и 3) есть 4 токена (по 2 для каждой категории, представленные желтыми и серыми полосами), и я хочу, чтобы каждый отдельный токен отображался, как на картинке (2 желтых полосы, две серые полосы для каждого динамика); прямо сейчас все маркеры сворачиваются в соответствии с их соответствующей категорией, так что для каждого динамика есть только 2 полосы, одна желтая и одна серая. Как я могу получить представление 4 баров?

Вот код, с которым я работаю:

 ggplot(EUD, aes(x=Speaker, y=EuD, fill=Gliding))  
geom_bar(stat="identity", position=position_dodge()) 
xlab("Speaker") 
ylab("EuD") 
scale_fill_manual(values = wes_palette("Darjeeling1"))  
theme(axis.text = element_text(size = 9, family="Times")) 
theme(axis.title.x = element_text(size=9, family="Times")) 
theme(axis.title.y = element_text(size=9, family="Times")) 
theme(legend.title = element_text(size=9, family="Times"),  legend.text = 
element_text(size=9, family="Times"))
 

Спасибо!

Лорен

Здесь был вывод dput(EUD):

 structure(list(Speaker = c(1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 3L, 
3L, 3L, 3L, 4L, 4L, 4L, 4L), Token = c("HOTEL", "HOST", "NO", 
"TOAST", "SMOKED", "GHOST", "SLOW", "GOING", "COVE", "BOAT", 
"GO", "AGO", "THOSE", "WOKE", "DONxd5T", "KNOW"), EuD = c(0.071, 
0.271, 1.476, 2.605, 0.403, 0.127, 2.235, 1.348, 0.794, 0.322, 
1.088, 1.543, 0.137, 0.129, 2.462, 1.327), Gliding = c("UNGLIDED", 
"UNGLIDED", "GLIDED", "GLIDED", "UNGLIDED", "UNGLIDED", "GLIDED", 
"GLIDED", "UNGLIDED", "UNGLIDED", "GLIDED", "GLIDED", "UNGLIDED", 
"UNGLIDED", "GLIDED", "GLIDED")), class = "data.frame", row.names = c(NA, 
-16L))
 

Комментарии:

1. Привет, Лорен, пожалуйста, используйте dput(EUD) на своей консоли, скопируйте выходные данные, отредактируйте свой вопрос и вставьте его, чтобы помочь вам!

Ответ №1:

Может быть, вы ищете это:

 library(ggplot2)
library(dplyr)
#Code
EUD %>%
  group_by(Speaker) %>%
  mutate(Mytoken=paste0(Gliding,row_number())) %>%
  ggplot(aes(x=Speaker, y=EuD, fill=Mytoken))  
  geom_bar(stat="identity",color='black',
           position=position_dodge(),alpha=0.5) 
  xlab("Speaker") 
  ylab("EuD") 
  scale_fill_manual(values = c('yellow','yellow','gray25','gray25'))  
  theme(legend.position = 'none',
        axis.text = element_text(size = 9, family="Times")) 
  theme(axis.title.x = element_text(size=9, family="Times")) 
  theme(axis.title.y = element_text(size=9, family="Times")) 
  theme(legend.title = element_text(size=9, family="Times"),
        legend.text = element_text(size=9, family="Times"))
 

Вывод:

введите описание изображения здесь