gpt4 book ai didi

r - 如何从 ggplot2 对象中提取图例标签?

转载 作者:行者123 更新时间:2023-12-01 22:26:22 24 4
gpt4 key购买 nike

我对自动将 ggplot2 对象的图例提取为表格(而不是图形对象)很感兴趣。让我们用一个例子来说明:

p <- ggplot(iris, aes(x=Sepal.Length, y= Petal.Length, color=Species)) +
geom_point()
p

iris example

现在有一个previous question ,它显示了如何提取图中使用的颜色:

 g <- ggplot_build(p)
unique(g$data[[1]]["colour"])

colour
1 #F8766D
51 #00BA38
101 #619CFF

但我也对这些颜色在图例中对应的标签感兴趣,即我感兴趣的最终结果是下表:

colour    label
#F8766D setosa
#00BA38 versicolor
#619CFF virginica

最佳答案

可能是这样的:

#get the colours as mentioned in your question
#and you could get the levels from the plot's data
data.frame(colours = unique(g$data[[1]]["colour"]),
label = levels(g$plot$data[, g$plot$labels$colour]))

输出:

     colour      label
1 #F8766D setosa
51 #00BA38 versicolor
101 #619CFF virginica

更新:

如果有p <- p + scale_color_discrete(labels=c("sp1","sp2","sp3"))那么你可以这样做:

g <- ggplot_build(p)
data.frame(colours = unique(g$data[[1]]["colour"]),
label = g$plot$scales$scales[[1]]$labels)

哪些输出:

     colour label
1 #F8766D sp1
51 #00BA38 sp2
101 #619CFF sp3

关于r - 如何从 ggplot2 对象中提取图例标签?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33927027/

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