在美学中使用函数时ggplot分组

时间:2017-04-02 18:22:07

标签: r ggplot2

我对R和ggplot很新,我很难掌握如何在ggplot中解决这个问题。

基本上我想在情节上绘制2条线。方法之一" a"一个方法" b"。这通常是直截了当的,但现在我有一种情况,我想在美学中使用函数。

我想ranklength,但每个分别进行分组。在此ggplot代码中,计算所有值的等级和长度。我尝试了很多不同的配置,但似乎无法得到这个!我在这里包含代码以获得带有常规图的所需图。

d <- rbind(
  data.frame(value=1:100, method=c("a")),
  data.frame(value=50:60, method=c("b"))
)

ggplot(d, aes(x=value, y=rank(value)/length(value), colour=method)) + geom_point()

ggplot

a <- d$value[d$method=="a"]
b <- d$value[d$method=="b"]
plot(
  rank(a)/length(a),
  col="red",
  xlab="value",
  ylab="F(value)",
  pch=19
)
points(
  rank(b)/length(b),
  col="blue"
)

plot

这是否可以使用ggplot或者我是否需要事先进行计算然后制作一个特殊的绘图数据框?

我发现ggplot功能强大,每当我知道如何做某事,但一旦我不知道就会感到沮丧!特别是当我不知道它是否能做某事,或者我不知道如何做的时候!

由于

1 个答案:

答案 0 :(得分:0)

感谢评论者。以下是我的测试用例中的解决方案供参考。

将分组值排在ggplot之外。

d <- rbind(
  data.frame(value=1:100, method=c("a")),
  data.frame(value=50:60, method=c("b"))
)
d <- mutate(group_by(d, method), rank=rank(value)/length(value))
ggplot(d, aes(x=value, y=rank, colour=method)) + geom_point()

valuevsrank