作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我对自动将 ggplot2 对象的图例提取为表格(而不是图形对象)很感兴趣。让我们用一个例子来说明:
p <- ggplot(iris, aes(x=Sepal.Length, y= Petal.Length, color=Species)) +
geom_point()
p
现在有一个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/
我是一名优秀的程序员,十分优秀!