- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一组很难可视化的数据,但我认为添加了一些点和线的 ECDF 就可以解决问题。我能够按照我想要的方式绘制事情;我的问题是正确着色。
我有以下代码,它将所有正确的线和点放在绘图上,但现在我想正确地对所有内容进行着色和标记。我仔细阅读了多篇文章并尝试了一百种方法,但无法做到正确。我需要以不同的方式格式化我的数据吗?
我对传奇的愿景是这样的:
生成示例图的代码在这里:
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 和颜色/线型/几何映射应该很容易,但我无法弄清楚。
提前致谢。
最佳答案
为了获得更好的图例,请将 color=variable
和 linetype=variable
放在 aes()
中用于 ggplot()
和 geom_vline()
- 所以会有一个图例。然后对于 geom_point()
将 x 和 y 放入 aes()
以及 color="s.mean"
和 linetype= “s.mean”
。这将确保新级别添加到图例中。现在,使用 scale_color"manual()
和 scale_linetype_manual()
,您可以设置所需的颜色和线型。使用 guides()
和 override。 aes=
您可以从前四个条目中删除点。
ggplot(sdata.m, aes(x=value, color=variable,linetype=variable))+
stat_ecdf(size=1)+
geom_vline(data=ddata.m,
aes(xintercept = value,color=variable,linetype=variable),
size=2) +
geom_point(aes(x=mean(sdata.m$value[sdata.m$variable=="s.a"]),
color="s.mean",linetype="s.mean",y=.5),size = 5) +
geom_point(aes(x=mean(sdata.m$value[sdata.m$variable=="s.b"]),
color="s.mean",linetype="s.mean",y=.5),size = 5)+
scale_color_manual(breaks=c("d.a","d.b","s.a","s.b","s.mean"),
values=c("blue","blue","red","red","green"))+
scale_linetype_manual(breaks=c("d.a","d.b","s.a","s.b","s.mean"),
values=c(1,2,1,2,0))+
guides(color=guide_legend(override.aes=list(shape=c(NA,NA,NA,NA,16))))
关于r - 如何指定ecdf ggplot2中线和点的颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17033513/
我是一名优秀的程序员,十分优秀!