3

我有一些数据要制作直方图。但是,我想用线条表示这个直方图。我试过使用freq_poly. ggplot2但是,生产的线非常参差不齐。我想知道是否可以使用splineswith ggplot2,这样产生的线条freq_poly会更流畅。

d <- rnorm( 1000 )
h <- hist( d, breaks="FD", plot=F )
plot( spline( h$mids, h$counts ), type="l" )

这就是我想要完成的。但我想使用ggplot2.

4

1 回答 1

4

我假设您正在尝试使用该spline()功能。如果不是,请忽略此答案。

spline()返回两个组件 x 和 y 的列表对象:

List of 2
 $ x: num [1:93] -3.3 -3.23 -3.17 -3.1 -3.04 ...
 $ y: num [1:93] 1 0.1421 -0.1642 -0.0228 0.4294 ...

我们可以简单地将它们转换为 data.frame 并绘制它们。可能有更好的方法来做到这一点,但这会奏效:

h <- hist( d, breaks="FD", plot=F )
zz <- spline( h$mids, h$counts )
qplot(x, y, data = data.frame(x = zz$x, y = zz$y), geom = "line")
于 2011-05-23T22:04:29.323 回答