gpt4 book ai didi

r - 如何在 ggplot2 中为分组线定义线图顺序?

转载 作者:行者123 更新时间:2023-12-02 04:26:07 25 4
gpt4 key购买 nike

我有一个类似于以下的数据框:

set.seed(1)
df = data.frame(group = sort(rep(1:15,5)), x = rep(1:5,15),
y = c(runif(25,-1,1), runif(25, -.5,.5),runif(25,-1,1)),
flag = c(rep('false', 25), rep('true',25),rep('false', 25)))

其中 x 和 y 是绘图坐标,group 是不同线条的标识符,flag 是一个 bool 值,表示线条组的一个特殊子集。我想使用 ggplot 绘制这些线条,以便带有 flag = 'true' 的线条出现在顶部。但是,绘图顺序似乎仅由组名决定。在我的示例 df 中,由于带有 flag = 'true' 的值对应于第 6-10 组,因此它们绘制在第 1-5 组上方但低于第 11-15 组。即使我尝试按以下方式使用 order 美学,也会发生这种情况:

ggplot(data = df, aes(x = x, y = y, colour = flag,
group = group, order = flag)) + geom_line(size = 3)

如果我重命名组标签(例如,如果带有 flag = true 的示例是组 11-15 而不是 6-10),我可以获得我想要的绘图顺序,但我会假设有更好的方法来做到这一点。有什么方法可以覆盖按组名排序吗?

最佳答案

一种方法是在绘制线条时对数据进行子集化。你想先为假组画线,然后为真组画线。

ggplot(data = df, aes(x = x, y = y, colour = flag,
group = group)) +
geom_line(data = subset(df, flag == "false"), size = 3) +
geom_line(data = subset(df, flag == "true"), size = 3)

enter image description here

关于r - 如何在 ggplot2 中为分组线定义线图顺序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27003991/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com