Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/xamarin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 如何制作y轴上带有计数值的堆叠条形图>;_R_Ggplot2 - Fatal编程技术网

R 如何制作y轴上带有计数值的堆叠条形图>;

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.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, 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")