如何使Y轴上的值从R开始为零,ggplot2

时间:2017-05-26 13:59:28

标签: r plot ggplot2

目前,我正在使用ggplot2制作密度图。

ggplot(data=resultFile,aes(x=V19, colour=V1) ) +
geom_line(stat="density") +
xlab("score") +
ylab("density") +
ggtitle(paste(data_name,protocol,level,sep=" ")) +
theme(legend.title=element_blank(), legend.position=c(0.92,0.9)) +
scale_color_manual(values=c("blue","red"),
                   labels=c("A", "B"))

使用此代码,我可以得到下面的图表。 enter image description here

但是,如果我在R中使用plot(density()...)函数,我可以得到不同的图。 enter image description here

Y值从0开始。

如何让ggplot的情节像R中的情节(密度()......)一样?

2 个答案:

答案 0 :(得分:1)

    ggplot(data=resultFile,aes(x=V19, colour=V1) ) +
    ylim(0,range) #you can use this . 
    geom_line(stat="density") +
    xlab("score") +
   ylab("density") +
   ggtitle(paste(data_name,protocol,level,sep=" ")) +
   theme(legend.title=element_blank(), legend.position=c(0.92,0.9)) +
   scale_color_manual(values=c("blue","red"),
   labels=c("A", "B"))

答案 1 :(得分:0)

ggplot显然在经验分布的最小值和最大值处切断了x轴。您可以通过将xlim添加到绘图来扩展x轴,但请确保绘图不超过分布的理论极限(在下面的示例中,理论极限为[0,1],因此没有太多理由在范围之外展示。)

set.seed(1)
temp <- data.frame(x =runif(100)^3)
library(ggplot2)
ggplot(temp, aes(x = x)) + geom_line(stat = "density" + xlim(-.2, 1.2)
plot(density(temp$x))