我有一些数据要制作直方图。然而,我想用线来表示这个直方图。我试过使用ggplot2
的freq_poly
。然而,生产线是相当参差不齐。我想知道是否可以将splines
与ggplot2
一起使用,这样freq_poly
中产生的线条会更平滑。
d <- rnorm( 1000 )
h <- hist( d, breaks="FD", plot=F )
plot( spline( h$mids, h$counts ), type="l" )
这就是我想要实现的。但我想用ggplot2
来做。
我假设您正在尝试使用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 ...
我们可以简单地将这些转换为数据帧并绘制它们。可能有更花哨的方法可以做到这一点,但这会起作用:
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")