我有一组难以可视化的数据,但我认为添加一些点和线的 ECDF 可以解决问题。我能够以我想要的方式绘制事物;我的问题是正确着色。
我有以下代码,它将所有正确的线和点放在图上,但现在我想正确地为所有内容着色和标记。我仔细阅读了多篇文章并尝试了一百件事,但无法做到正确。我需要以不同的方式格式化我的数据吗?
我对传奇的看法是这样的:
- 虚线 = b
- 实线 = a
- 红色 = s
- 蓝色 = d
- 点 = s.mean
生成示例图的代码在这里:
require(ggplot2)
require(reshape2)
s.a = rnorm(100)*100
s.b = rnorm(100)*100+50
d.a = -35
d.b = 20
sdata = data.frame(cbind(s.a,s.b))
ddata = data.frame(cbind(d.a,d.b))
sdata.m = melt(sdata)
ddata.m = melt(ddata)
ggplot(sdata.m, aes(x=value, color=variable)) +
geom_vline(data=ddata.m,
aes(xintercept = value,
color=variable),
linetype = 2,
size=2) +
stat_ecdf(size=1)+
labs(title = 'plotTitle',
color='colorLegendTitle') +
xlab('xLabel') +
ylab('yLabel')+
theme_bw(30) +
theme(
legend.position=c(.8, .2),
legend.box="horizontal",
text=element_text(family="Times"),
legend.key.size = unit(1,"cm")) +
geom_point(x=mean(sdata.m$value[sdata.m$variable=="s.a"]),y=.5,
size = 5) +
geom_point(x=mean(sdata.m$value[sdata.m$variable=="s.b"]),y=.5,
size = 5)
我正在绘制的数据的一些上下文:我有随机数据集(s)和确定性集(d);每个随机集都有数百个值,而确定性集只有一个值。所以在我的情节中,我将随机数据的分布(实线)和随机数据的平均值(点)与确定性值(虚线)进行比较。对于随机数据集和确定性数据集,都有两个“案例”(a)和(b)。我希望所有(a)和(b)数据共享相同的颜色。
这似乎使用 aes 和颜色/线型/几何映射应该很容易,但我无法弄清楚。
提前致谢。