我在使用当前数据集创建我需要的条形图时遇到了很多麻烦。它似乎很简单,但每当我运行我的代码时,我都会收到错误。
一些背景信息
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)
,但图形输出不是我需要的。
这更像是我想要的,除了它是在JMP中制作的。
很抱歉很长的解释,我在这里做错了什么?
答案 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")