我想使用带有两列的data.frame来绘制分组的条形图:
modifications1 | modifications2
UNIMOD:730 | NA
UNIMOD:4 | UNIMOD:4
UNIMOD:214 |UNIMOD:214
UNIMOD:21 |UNIMOD:21
UNIMOD:35 |UNIMOD:35
UNIMOD:4 |UNIMOD:4
UNIMOD:4 |UNIMOD:4
UNIMOD:4 | NA
NA |UNIMOD:35
... n
这是我想要的一个例子,但是标签中每行的名称。
这里有一个可重现的例子:
df <- data.frame(modifications1=c("UNIMOD:108","UNIMOD:200","UNIMOD:300","UNIMOD:400","UNIMOD:108","UNIMOD:108","UNIMOD:108","UNIMOD:108","UNIMOD:600"), modifications2=c(NA,"UNIMOD:200","UNIMOD:300","UNIMOD:400","UNIMOD:108","UNIMOD:108","UNIMOD:108",NA,"UNIMOD:600"))
我在这个页面找不到像我这样的例子。
我试过用这个:
table1 <- data.frame(table(dataprueba$modifications.1))
table2 <- data.frame(table(dataprueba$modifications.2))
ggplot(NULL, aes(Var1, Freq)) +
geom_bar(aes(fill = "table1"), data = table1, alpha = 0.5, stat="identity") +
geom_bar(aes(fill = "table2"), data = table2, alpha = 0.5, stat="identity") +
guides(fill=FALSE)+
theme(axis.text.x = element_text(angle = 90, hjust = 1))
但这不是我真正想要的。
答案 0 :(得分:1)
You can melt
your data set and then make a bar plot with count
stat:
library(ggplot2)
library(reshape2)
ggplot(melt(df,measure.vars = names(df)), aes(x = value, fill = variable)) +
geom_bar(stat = "count", position = "dodge") +
theme(axis.text.x = element_text(angle = 20, hjust = 0.5, vjust = -0.1)) +
scale_fill_manual(values = c('#C73200', '#0072B2'))