这部分与我昨天的问题有关.
所以这里是数据和ggplot2中创建的图.
df = data.frame(date=c(rep(2008:2013, by=1)),
value=c(303,407,538,696,881,1094))
ggplot(df, aes(date, value, width=0.64)) +
geom_bar(stat = "identity", fill="#336699", colour="black") +
ylim(c(0,1400)) + opts(title="U.S. Smartphone Users") +
opts(axis.text.y=theme_text(family="sans", face="bold")) +
opts(axis.text.x=theme_text(family="sans", face="bold")) +
opts(plot.title = theme_text(size=14, face="bold")) +
xlab("Year") + ylab("Users (in millions)") +
opts(axis.title.x=theme_text(family="sans")) +
opts(axis.title.y=theme_text(family="sans", angle=90)) +
geom_segment(aes(x=2007.6, xend=2013, y=550, yend=1350), arrow=arrow(length=unit(0.4,"cm")))
Run Code Online (Sandbox Code Playgroud)
是否可以使用ggplot2在下图中生成squigly趋势线
我在R中创建了绘图,然后在Adobe Photoshop中对其进行了修饰,我想知道是否可以在R中直接生成那条波浪形的趋势线.
如果在ggplot2中无法做到这一点,是否有任何特定的R包可以接受此任务?
我不是要求重现图表.那不是问题.只是产生趋势线似乎是一个问题.

根据所有评论:波浪线在科学上是可疑的,因为它不是基于数据的统计模型.(而且它似乎显示智能手机用户的数量趋于平稳,当数据显示没有这样的事情.)所以最好的建议是"不要这样做".
既然你似乎非常热衷于这个想法,那么它是可能的.
您可以添加任何您喜欢的行geom_line.要在信息图中复制愚蠢的线条,您可以做一条直线加上一条正弦曲线,让它摆动.假设你的情节被命名p
p + geom_line(
aes(date, value),
data = data.frame(
date = seq(2008, 2013, length.out = n),
value = seq(600, 1300, length.out = n) + 100 * sin(seq(0, 4 * pi, length.out = n))
),
arrow = arrow(length = unit(0.4, "cm"))
)
Run Code Online (Sandbox Code Playgroud)
更好的方法是使用黄土平滑曲线.
p + geom_smooth(method = "loess", se = FALSE) #maybe also span = 0.5, for extra wigglyness.
Run Code Online (Sandbox Code Playgroud)