我有一个对象ggplot2,比方说myPlot,如何识别x和y轴的范围?
它似乎不是数据值范围的简单倍数,因为可以重新缩放绘图,修改轴的范围等等. findFn(从sos)和谷歌似乎并不被调高相关的结果,不是如何设置轴的范围等.
我想在ggplot中的现有图中获得轴刻度值的向量.我知道ggplot对象是一个包含9个元素的列表,我想知道我是否可以从该列表中提取轴刻度的值.例如,如果我生产这个玩具示例:
library(ggplot2)
g=ggplot(data=mtcars,aes(hp,mpg))+geom_point()
Run Code Online (Sandbox Code Playgroud)
我想要的是矢量
c(100,200,300)
c(10,15,20,25,30,35)
Run Code Online (Sandbox Code Playgroud)
对于x刻度和y刻度分别为w
有办法吗?
非常感谢!
有没有办法从ggplot_build()(或任何其他功能)搜索整个输出,几乎像搜索文件夹的每个子目录的完整内容?
细节:
我正在寻找一个解决方案来检索ggplot2_3.0.0中轴标签的值,其中一个早期答案显示,根据ggplot2版本,正确的答案很可能包含部分$layout和/或$x.labels输出ggplot_build(g).所以我开始检查ggplot_build()输出的每一步.其中一个步骤看起来像下面的输出.
小片1:
ggplot_build(g)$layout
Run Code Online (Sandbox Code Playgroud)
输出1:
<ggproto object: Class Layout, gg>
coord: <ggproto object: Class CoordCartesian, Coord, gg>
aspect: function
clip: on
[...]
map_position: function
panel_params: list
panel_scales_x: list
panel_scales_y: list
render: function
[...]
ylabel: function
super: <ggproto object: Class Layout, gg>
>
Run Code Online (Sandbox Code Playgroud)
在那里,在下面panel params,x.labels可以找到许多有用的信息,如下所示:
摘录2:
ggplot_build(g)$layout$panel_params
Run Code Online (Sandbox Code Playgroud)
输出2:
[[1]]
[[1]]$`x.range`
[1] 7.7 36.3
[[1]]$x.labels
[1] "10" "15" "20" "25" "30" "35"
[[1]]$x.major …Run Code Online (Sandbox Code Playgroud)