r - ggplot:如何检索轴标签的值?
问题描述
如何在下面的 ggplot 中提取用于标记 y 轴和 x 轴的数字(分别为20, 30, 40
和10 , 15 ,20 ,25, 30, 35
)?
阴谋
可重现的代码
# Scatterplot
theme_set(theme_bw()) # pre-set the bw theme.
g <- ggplot(mpg, aes(cty, hwy))
g + geom_count(col="tomato3", show.legend=F) +
labs(subtitle="mpg: city vs highway mileage",
y="hwy",
x="cty",
title="Counts Plot")
我尝试过查看 的输出str(g)
,但收效甚微。
解决方案
基于 CPak 的回答,结构略有变化ggplot2_3.0.0
。现在可以使用以下方法提取标签:
ggplot_build(g)$layout$panel_params[[1]]$y.labels
#[1] "20" "30" "40"
ggplot_build(g)$layout$panel_params[[1]]$x.labels
#[1] "10" "15" "20" "25" "30" "35"
编辑:ggplot2_3.3.0
使用以下标签找到标签:
# check package version
utils::packageVersion("ggplot2")
y_labs <- ggplot_build(g)$layout$panel_params[[1]]$y$get_labels()
y_labs[!is.na(y_labs)]
#[1] "20" "30" "40"
x_labs <- ggplot_build(g)$layout$panel_params[[1]]$x$get_labels()
x_labs[!is.na(x_labs)]
#[1] "10" "15" "20" "25" "30" "35"
推荐阅读
- kubernetes - kubectl 命令查找特定 pod 状态为就绪
- php - 在 CodeIgniter 模型中打印变量值(基础)
- mysql - 搜索 NULL 值时加入性能
- node.js - 可以将“npm”安装为依赖项吗?
- java - java中二分查找的实现
- java - 使用 Junit 5、Java 11 的 EnabledOnOs/DisabledOnOs 标签不排除测试
- angular - NX工作空间:生成新lib时配置.eslintrc.json的模板
- r - 4chan:找不到带有 xml_find_all 和 rvest 的节点
- symfony - 检索特定 Symfony 用户创建的帖子
- haskell - Haskell quickBatch:在 mconcat 测试 ZipList Monoid 导致堆栈溢出