R 如何制作y轴上带有计数值的堆叠条形图>;
我试图用基因测序数据创建一个堆叠条形图,其中每个基因都有一个tRF.type和氨基酸值。示例数据集如下所示:R 如何制作y轴上带有计数值的堆叠条形图>;,r,ggplot2,R,Ggplot2,我试图用基因测序数据创建一个堆叠条形图,其中每个基因都有一个tRF.type和氨基酸值。示例数据集如下所示: tRF <- c('tRF-26-OB1690PQR3E', 'tRF-27-OB1690PQR3P', 'tRF-30-MIF91SS2P46I') tRF.type <- c('5-tRF', 'i-tRF', '3-tRF') Amino.Acid <- c('Ser', 'Lys', 'Ser') tRF.data <- data.frame(tRF, t
tRF <- c('tRF-26-OB1690PQR3E', 'tRF-27-OB1690PQR3P', 'tRF-30-MIF91SS2P46I')
tRF.type <- c('5-tRF', 'i-tRF', '3-tRF')
Amino.Acid <- c('Ser', 'Lys', 'Ser')
tRF.data <- data.frame(tRF, tRF.type, Amino.Acid)
但是,它会生成此图,其中y轴标有tRF类型的类别。如何更改代码,使y轴刻度为数字,并表示每种tRF类型的计数
欢迎来到SO。在以后的问题中,请确保提供一个-意思是提供代码、一个图像(如果可能的话),以及至少一个能够清楚地演示您的问题或问题的代表性数据集 TL;DR-不要使用
stat=“identity”
,只需使用geom\u bar()
而不提供统计,因为默认情况下使用计数。这应该起作用:
ggplot(chart_data, aes(x = Amino.Acid, fill = tRF.type)) + geom_bar()
提供的数据集不能充分说明您的问题,因此这里有一个可行的数据集。本文中的示例数据由100个观察值和两列组成:一列称为大写
,用于随机选择的大写字母,另一列称为小写
,用于随机选择的小写字母
library(ggplot2)
set.seed(1234)
df <- data.frame(
Capitals=sample(LETTERS, 100, replace=TRUE),
Lowercase=sample(letters, 100, replace=TRUE)
)
您可以看到,这些条是堆叠的,但y轴都向下移动。原因与理解geom\u bar()
和geom\u col()
之间的区别有关。通过检查,您可以看到主要区别在于geom_col()
将绘制高度等于y
美学的条形图,而geom_bar()
默认情况下根据stat=“count”
进行打印。事实上,使用geom\u bar(stat=“identity”)
实际上只是表达geom\u col()
的一种复杂方式
由于您的y
美学不是数字,因此,ggplot
仍然尝试以数字方式处理离散级别。这真的不太好,这就是为什么你的轴心会像那样被闷死的原因。您想要的是geom\u bar(stat=“count”)
。。。。这与只使用geom\u bar()
而不提供stat=
相同
一个问题是geom_bar()
只接受x
或y
符号。这意味着你应该只给它一个。这解决了问题,现在您可以得到正确的图表:
ggplot(df, aes(x=Capitals, fill=Lowercase)) + geom_bar()
您希望y轴是计数,而不是tRF.type。此代码应该为您提供正确的绘图:我已从
ggplot()
中删除了y=tRF.type
,并从geom\u bar()
中删除了stat=“identity
(而是使用默认值stat=“count
)
你能发布一些样本数据吗?嗨,我已经用样本数据更新了。谢谢
ggplot(df, aes(x=Capitals, y=Lowercase, fill=Lowercase)) +
geom_bar(stat="identity")
ggplot(df, aes(x=Capitals, fill=Lowercase)) + geom_bar()
ggplot(tRF.data, aes(x = Amino.Acid, fill = tRF.type)) +
geom_bar() +
ggtitle("LAN5 - 4 days post CNTF treatment") +
xlab("Amino Acid") +
ylab("tRF type")