gpt4 book ai didi

r - 在ggplot2中创建部分虚线

转载 作者:行者123 更新时间:2023-12-03 21:20:22 26 4
gpt4 key购买 nike

我正在 R 中创建一个图,需要创建一条线,其中一些值是投影。投影表示为虚线。这是代码:

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")))

所以我创建了一条从 2008 年到 2013 年的线。但是,我想要一条从 2008 年到 2011 年的实线,以及一条从 2011 年到年底的虚线。我是只做两个单独的线段,还是有一个单独的命令可以用来获得所需的结果。

最佳答案

ggplot哲学很简单。绘图的每个元素都需要位于不同的图层上。因此,要获得不同线型的两条线段,您需要两个 geom_segment声明。

我用 geom_bar 说明了同样的原理在不同的时期有不同的颜色。

ggplot(df[df$date<=2011, ], aes(date, value, width=0.64)) + 
geom_bar(stat = "identity", fill="#336699", colour="black") +
geom_bar(data=df[df$date>2011, ], aes(date, value),
stat = "identity", fill="#336699", colour="black", alpha=0.5) +
ylim(c(0,1400)) + opts(title="U.S. Smartphone Users") +
opts(
axis.text.y=theme_text(family="sans", face="bold"),
axis.text.x=theme_text(family="sans", face="bold"),
plot.title = theme_text(size=14, face="bold"),
axis.title.x=theme_text(family="sans"),
axis.title.y=theme_text(family="sans", angle=90)
) +
xlab("Year") + ylab("Users (in millions)") +
geom_segment(aes(x=2007.6, xend=2011, y=550, yend=1050), linetype=1) +
geom_segment(aes(x=2011, xend=2013, y=1050, yend=1350),
arrow=arrow(length=unit(0.4,"cm")), linetype=2)

enter image description here

关于r - 在ggplot2中创建部分虚线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7239466/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com