0

我已经完全按照我想要的方式绘制了正值负值,包括图例。我现在将这些放在一个情节中以创建一个情节(我没有足够的点来链接到该图像)。我对此非常满意——除了传说。图例按字母顺序排序,这不是我的首选顺序(与颜色层从上到下的顺序相同)。我尝试了不同的方法来尝试手动设置图例,但到目前为止我发现的所有方法都适用于绘制单个数据框而不是像我现在这样的两个数据框。

似乎使用 scale_colour_manual 不会影响这种类型的情节,还有其他方法吗?

下面是一个非常简单的工作示例,它也给出了上述相同的行为。

data1 = data.frame(x = seq(0,20), y =    c(1,4,-5,-9,-4,0,3,6,-4,3,-2,-5,8,2,1,6,7,-9,8,-4,0))
data2 = data.frame(x = seq(0,20), y = seq(0,20))

q = ggplot(NULL, aes(x = x, y = y))
q = q + geom_line(data = data1)
q = q + geom_line(data = data2)

谢谢,简


感谢您的回复,但我仍然没有得到我想要的图表。这是到目前为止我所得出的最接近正负值的链接-传说不是必需的。对于这个图,我使用了两个单独的数据框,因为我使用了不同的geom_areageom_line位置;对于我正在使用的情节的积极部分:

geom_area(data = prod.data, position = "identity", alpha = 0.8)
geom_line(data = prod.data, position = "identity")

对于我正在使用的情节的负面部分:

geom_area(data = cons.data, position = "stack", alpha = 0.8)
geom_line(data = cons.data, position = "stack")

但是,正如原始问题中所讨论的,我似乎无法控制图例的顺序。我尝试组合数据框并设置因子的顺序,这里我使用:

geom_area(position = "stack", alpha = 0.8)
geom_line(position = "stack")

我可以控制图例顺序,但实际情节并不像我想要的那样。这是正负值的图表 - 图表不是必需的。

我有量子力学闪回:-)所以非常感谢任何进一步的帮助。

4

1 回答 1

1

通常,ggplot将数据组合到一个数据框中时效果最佳。您提供的示例有点令人困惑 - 正如所写的那样,没有图例,并且不清楚您希望图例是什么。我的方法是组合数据框:

data1$group <- 1
data2$group <- 2
data3 <- rbind(data1, data2)
data3$group  <- factor(data3$group)
q <- ggplot(data3, aes(x = x, y = y, group = group, color = group))
    + geom_line()

然后,您可以使用任何标准方式来订购图例。自动化程度较低,但通常优于普通图例,您可以使用 newdata.framegeom_textcall 手动标记每一行。

默认情况下,图例将按因子的顺序排序,因此要重新排序图例,您应该对因子进行排序,或者手动使用factor

data3$group <- reorder(data3$group, levels = c(2, 1), ordered = TRUE)

或 使用reorder和 一个函数(例如sort(), 或rev(sort()),如果您想要反向 alpha 顺序)。reorder例如,如果您想按meanmaxy 值对因子进行排序,也可以与不同列的函数一起使用。

于 2013-02-14T17:07:29.483 回答