我有一个由14个不同时间段组成的数据,我希望以一种可以让观众看到14个时间段位于何处的方式对其进行绘制。我曾经通过使用不同的颜色来实现这一目标
mycolors = c(brewer.pal(name="Set2", n = 7), brewer.pal(name="Set2", n = 7))
ggplot(derv, aes(x=Date, y=derv, colour = Season)) +
geom_point() +
geom_abline(intercept = 0, slope = 0) +
geom_abline(intercept = neg.cut, slope = 0) +
geom_abline(intercept = pos.cut, slope = 0) +
scale_color_manual(values = mycolors) + ggtitle(" Derivative")+ylab("Derivative")
我已经将上面的代码用于诸如plot之类的产品,但是现在在一个新报告中,我只能使用黑白方案。因此,我想知道如何在R中绘制这样的图。我曾考虑过在14个不同的时间段内使用交替的线型,但是我没有如何通过ggplot实现。我试过下面的代码,但是行不通。
ggplot(derv, aes(x=Date, y=derv)) +
geom_line() +
geom_abline(intercept = 0, slope = 0) +
geom_abline(intercept = neg.cut, slope = 0) +
geom_abline(intercept = pos.cut, slope = 0) +
#scale_color_manual(values = mycolors) + ggtitle("S&P 500 (Smoothed) Derivative") + ylab("Derivative")+
scale_linetype_manual(values = c("dashed","solid","dashed","solid","dashed","solid","dashed",
"solid","dashed","solid","dashed","solid","dashed","solid"))
如果您需要显示季节变化的地方,您是否不能仅使用交替的线型或交替的点标记?请参见下面的两个示例。您可以使用不同的点标记和线型来获得所需的外观。有关创建线型的更多信息,请参见此SO答案。有关其他点标记的更多信息(超出可以使用的标准标记pch
),例如,请参见此处和此处。我还提供了一种用更少的代码添加三条水平线的方法。
# Fake data
x = seq(0,2*pi,length.out=20*14)
dat=data.frame(time=x, y=sin(x) + sin(5*x) + cos(2*x) + cos(7*x),
group=0:(length(x)-1) %/% 20)
ggplot(dat, aes(time, y)) +
geom_hline(yintercept=c(-0.5,0,0.5), colour="grey50") +
geom_point(aes(shape=factor(group), size=factor(group))) +
scale_shape_manual(values=rep(c(3,15),7)) +
scale_size_manual(values=rep(c(2,1.5),7)) +
theme_bw() + guides(shape=FALSE, size=FALSE)
ggplot(dat, aes(time, y, linetype=factor(group))) +
geom_hline(yintercept=c(-0.5,0,0.5), colour="grey50") +
geom_line(size=0.8) +
scale_linetype_manual(values=rep(1:2,7)) +
theme_bw() + guides(linetype=FALSE)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句