r - ggplot barplot:将每个单独的令牌作为自己的条形图
问题描述
所以,我正在尝试制作如下图所示的条形图。 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", "DON\xd5T", "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))
解决方案
也许你正在寻找这个:
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"))
输出:
推荐阅读
- reactjs - Typescript + React:按位 & 和 Props
- python - 如何使用 pandas 对时间序列数据进行重采样
- c# - 记录来自 Azure SDK for .Net 的请求/响应
- javascript - 如何在javascript中查找特定表数据的行值
- python - 在无限循环中更新散景图,而不是绘制无限数量的图
- r - R中范围内的子集
- android - 在覆盖该活动的 onOptionsItemSelected 时启动单独的应用活动
- python - Python - 'TypeError:'str'和'int'的实例之间不支持'<=''
- python - Pycharm从* .pyi而不是* .py导入shutil
- cuba-platform - 如何在 Cuba-Platform / Studio 中设置默认用户关联