R:创建一个描绘ggplot2百分比百分比的条形图

时间:2013-09-27 01:16:04

标签: r plot ggplot2

我在使用当前数据集创建我需要的条形图时遇到了很多麻烦。它似乎很简单,但每当我运行我的代码时,我都会收到错误。

link to my data set

一些背景信息

  

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),但图形输出不是我需要的。

It's showing me a gradient of values, and I only need the value as seen in the data.frame to be plotted

这更像是我想要的,除了它是在JMP中制作的。 enter image description here

很抱歉很长的解释,我在这里做错了什么?

1 个答案:

答案 0 :(得分:1)

要获得与JMP类似的情节,您应该使用Percent_Total作为y值而不是fill=值,然后使用geom_bar()使用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")

enter image description here