gpt4 book ai didi

r - ggplot : Multiple Lines for one Color/class

转载 作者:行者123 更新时间:2023-12-04 11:56:31 27 4
gpt4 key购买 nike

我正在尝试将多行绘制为 ggplot2 中单个“类”的一部分。我可以绘制如下所示的内容:

image with 5 classes

但我的问题是我想将 n1、n2 和 n3 显示为单个类(图例中每个都有一个名称的灰色细线)。

我的问题是,如果我在数据框中创建一个新因子以便对它们进行分组,我最终会绘制从 n1 的末尾(右上)到 n2 的开头(左下)的加法连接,这增加了一条对角线我的图表:

graph with one class

这更接近我想要的,但有额外的对角线。如果重要的话,我使用 ROCR 计算这些,然后从结果中提取 x 和 y 点 performance对象以产生这些线条。

最佳答案

这是一种方法,但我认为您不会很喜欢它:

d1 <- data.frame(x = 1:10,
y = rep(1:2,each = 5),
grp = factor(rep(letters[1:2],each = 5),levels = letters[1:3]))
d1 <- rbind(d1,data.frame(x = 1:2,y = c(NA,NA),grp = c('c','c')))

d2 <- data.frame(x = 1:15,
y = rep(3:5,each = 5),
grp = rep(1:3,each = 5))

ggplot() +
geom_line(data = d1,aes(x = x,y = y,group = grp,colour = grp)) +
geom_line(data = d2,aes(x = x,y = y,group = grp),colour = "blue")

enter image description here

请注意,您的解决方案不适用于其他类型的数据。碰巧的是,您想要合并到图例中同一类别的三行中的每一行都在基本相同的位置开始和结束。如果不是这种情况,您最终会得到不需要的连接线。

上述方法将更普遍地工作,但正如您所见,并不那么尴尬。如果有的话,那就更不方便了。

这种问题已经出现很多次了,可能是我忘记了一个更简单的解决方案。但总的来说,尽量记住,换取 ggplot2 使您不必手动构建每个图例,与基本图形相比,您(经常,但并非总是)牺牲了一些灵活性。

关于r - ggplot : Multiple Lines for one Color/class,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11478402/

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