0

我在使用当前数据集创建所需的条形图时遇到了很多麻烦。它看起来很简单,但是每当我运行我的代码时都会出错。

链接到我的数据集

一些背景资料

Percent_Calls 由 Call/(Call+Noise) 计算得出

Percent_Total 由 (Call+Noise)/(sum(Call)+sum(Noise)) 计算得出;

PercentofCall 由 Percent_Calls*Percent_Total 计算

我正在尝试创建一个条形图(在 y 轴上有百分比),其中 CRF_Score 作为 x 变量, Percent_Total 值作为条形。最后,我想强调 Percent_Total 中 PercentofCall 的部分。

require(ggplot2)
ggplot(FD2_CAna, aes(CRF_Score, fill=Percent_Total)) + geom_bar(binwidth=0.05)

上面的代码通常对我有用,但是我收到了这个错误:

Error in unit(tic_pos.c, "mm") : 'x' and 'units' must have length > 0

我已经尝试as.factor(x)按照另一个线程中的建议使用,但图形输出不是我需要的。

它向我展示了值的梯度,我只需要绘制 data.frame 中看到的值

这更符合我想要的,除了它是在 JMP 中制作的。 在此处输入图像描述

对不起,我在这里做错了什么?

4

1 回答 1

1

要获得与 JMP 类似的图,您应该使用Percent_Totalas y 值而不是作为fill=值然后 in geom_bar()use stat="identity"

对于您的 JMP 图,它似乎Percent_Total被视为因子而不是数字变量 - 您可以通过将条形的高度与值 23 和 2 进行比较来查看它 - 它们的宽度几乎相同。如果文件FD2_CAna.csv正确导入,则值为数字。

FD2_CAna<-read.csv2(file="FD2_CAna.csv",header=T,sep=",",dec=".")
ggplot(FD2_CAna, aes(CRF_Score, Percent_Total)) + geom_bar(stat="identity")

在此处输入图像描述

于 2013-09-27T11:30:08.627 回答