这是我的数据集。
Color y y_min y_max x
After -4.107 -4.986 -3.229 2018
After -3.395 -4.015 -2.775 2017
After -2.955 -3.292 -2.618 2016
After -2.082 -2.406 -1.758 2015
After -0.993 -1.328 -0.659 2014
Before 0 0 0 2013
Before 0.211 -0.148 0.569 2012
Before 0.125 -0.276 0.526 2011
Before 0.056 -0.565 0.677 2010
Before 0.642 0.0100 1.273 2009
Before 0.429 -0.241 1.099 2008
字符串
我的目标是
1.每个x的误差条
1.覆盖geom_ribbon
,
1.对于x(Before,2013)和x(After,2013),将误差条和geom_ribbon
的颜色不同。所有值(Before,2013)为蓝色,所有值(After,2013)为红色。
我已经试过这个
df %>%
ggplot(aes(x=x, y = y, color= Color) +
geom_line() +
geom_point(size =2) +
geom_errorbar(aes(ymin=y_min, ymax = y_max)) +
geom_ribbon(aes(x = x, y = y, ymax = y_max, ymin = y_min, fill = Color), alpha = 0.2) +
scale_colour_manual(value = c(Before = "blue", After = "red"))
型
这是行不通的,任何建议都非常感谢。谢谢。
1条答案
按热度按时间ua4mk5z41#
为了让两个色带都能在2013年达到“奇点”,你需要在2013年添加一个重复的“After”行。为了让颜色切换,你可以为填充和色标分配不同的颜色。为了让色带以正确的颜色勾勒出来,我们可以在它的颜色上使用
after_scale
:字符串