Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 为什么ggplot2不能很好地绘制POI分布?_R_Ggplot2 - Fatal编程技术网

R 为什么ggplot2不能很好地绘制POI分布?

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 =

我试图用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 = 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))