R 为什么ggplot2不能很好地绘制POI分布?
我试图用ggplot2绘制泊松分布图,但是,我发现它不能像基本图那样返回结果。我该怎么做才能使它们相同 谢谢R 为什么ggplot2不能很好地绘制POI分布?,r,ggplot2,R,Ggplot2,我试图用ggplot2绘制泊松分布图,但是,我发现它不能像基本图那样返回结果。我该怎么做才能使它们相同 谢谢 > plot( dpois( x=100:2000, lambda=150 ), type="b") 阅读之后,我终于意识到问题来自ggplot2的插值方法 为了避免这个问题,我可以先计算值,然后用geom\u点或geom\u线绘图 我的回答是: > dt = data.frame(x = 100:2000, y = dpois(100:2000, lambda =
> plot( dpois( x=100:2000, lambda=150 ), type="b")
阅读之后,我终于意识到问题来自ggplot2的插值方法
为了避免这个问题,我可以先计算值,然后用geom\u点
或geom\u线
绘图
我的回答是:
> dt = data.frame(x = 100:2000, y = dpois(100:2000, lambda = 150))
> ggplot(data = dt, aes(x=x, y=y)) + geom_point()
更新
得益于@Rui Barradas:)的想法,我还可以使用stat\u函数
通过将n
更改为向量来获得相同的结果:
> ggplot(data.frame(x=c(100:2000)), aes(x)) +
+ stat_function(geom="line", n = length(100:2000), fun=dpois, args=list(150))
> ggplot(data.frame(x=c(100:2000)), aes(x)) +
+ stat_function(geom="point", n = length(100:2000), fun=dpois, args=list(150))
阅读之后,我终于意识到问题来自ggplot2的插值方法
为了避免这个问题,我可以先计算值,然后用geom\u点
或geom\u线
绘图
我的回答是:
> dt = data.frame(x = 100:2000, y = dpois(100:2000, lambda = 150))
> ggplot(data = dt, aes(x=x, y=y)) + geom_point()
更新
得益于@Rui Barradas:)的想法,我还可以使用stat\u函数
通过将n
更改为向量来获得相同的结果:
> ggplot(data.frame(x=c(100:2000)), aes(x)) +
+ stat_function(geom="line", n = length(100:2000), fun=dpois, args=list(150))
> ggplot(data.frame(x=c(100:2000)), aes(x)) +
+ stat_function(geom="point", n = length(100:2000), fun=dpois, args=list(150))
尝试
n=length(100:2000)
。如果有一个命名列表args=list(lambda=150)
,也不会有什么坏处。可读性更好。很好,这很有效,我将添加到我的答案中,谢谢:)。请注意,在您链接中接受的答案中,x=c(0:10)
。这就是为什么要插值的点数被选择为n=11
,长度为x
@RuiBarradas谢谢。我不知道我看到了你之前的评论:)。请尝试n=length(100:2000)
。如果有一个命名列表args=list(lambda=150)
,也不会有什么坏处。可读性更好。很好,这很有效,我将添加到我的答案中,谢谢:)。请注意,在您链接中接受的答案中,x=c(0:10)
。这就是为什么要插值的点数被选择为n=11
,长度为x
@RuiBarradas谢谢。我不知道我看到了你之前的评论:)。
> ggplot(data = dt, aes(x=x, y=y)) + geom_line()
> ggplot(data.frame(x=c(100:2000)), aes(x)) +
+ stat_function(geom="line", n = length(100:2000), fun=dpois, args=list(150))
> ggplot(data.frame(x=c(100:2000)), aes(x)) +
+ stat_function(geom="point", n = length(100:2000), fun=dpois, args=list(150))