如何从 R 中的 ggplot2 创建的绘图中提取数据?


当然,绘图是用一些数据创建的,但我们可能也想从绘图中获取数据。这是一个 ggplot 函数在 R 中的功能,但它只适用于 ggplot 对象,如果我们使用 plot 函数创建绘图,那么我们就不能使用 ggplot_build 来提取数据。此外,我们不必使用 ggplot2 创建绘图并在 R 中将其保存为一个对象以从 ggplot_build 中获取数据,我们可以在创建绘图时简单地使用这个函数。

示例

考虑下面的数据框−

set.seed(111)
x <-rnorm(10)
y <-rnorm(10,1.5)
df <-data.frame(x,y)
df

输出

x y
1 0.2352207 1.32632587
2 -0.3307359 1.09340122
3 -0.3116238 3.34563626
4 -2.3023457 1.89405411
5 -0.1708760 2.29752850
6 0.1402782 -0.06666536
7 -1.4974267 1.41414899
8 -1.0101884 1.14086052
9 -0.9484756 0.30639103
10 -0.4939622 1.86418674

用 ggplot2 创建绘图 −

Explore our latest online courses and learn new skills at your own pace. Enroll and become a certified expert to boost your career.

示例

library(ggplot2)
scatterplot <-ggplot(df,aes(x,y))+geom_point()
scatterplot

输出

从绘图中提取数据 −

示例

data_from_scatterplot <-ggplot_build(scatterplot)
data_from_scatterplot
$data
$data[[1]]

输出

x y PANEL group shape colour size fill alpha stroke
1 0.2352207 1.32632587 1 -1 19 black 1.5 NA NA 0.5
2 -0.3307359 1.09340122 1 -1 19 black 1.5 NA NA 0.5
3 -0.3116238 3.34563626 1 -1 19 black 1.5 NA NA 0.5
4 -2.3023457 1.89405411 1 -1 19 black 1.5 NA NA 0.5
5 -0.1708760 2.29752850 1 -1 19 black 1.5 NA NA 0.5
6 0.1402782 -0.06666536 1 -1 19 black 1.5 NA NA 0.5
7 -1.4974267 1.41414899 1 -1 19 black 1.5 NA NA 0.5
8 -1.0101884 1.14086052 1 -1 19 black 1.5 NA NA 0.5
9 -0.9484756 0.30639103 1 -1 19 black 1.5 NA NA 0.5
10 -0.4939622 1.86418674 1 -1 19 black 1.5 NA NA 0.5

示例

$layout
<ggproto object: Class Layout, gg>
coord: <ggproto object: Class CoordCartesian, Coord, gg>
aspect: function
backtransform_range: function
clip: on
default: TRUE
distance: function
expand: TRUE
is_free: function
is_linear: function
labels: function
limits: list
modify_scales: function
range: function
render_axis_h: function
render_axis_v: function
render_bg: function
render_fg: function
setup_data: function
setup_layout: function
setup_panel_params: function
setup_params: function
transform: function
super: <ggproto object: Class CoordCartesian, Coord, gg>
coord_params: list
facet: <ggproto object: Class FacetNull, Facet, gg>
compute_layout: function
draw_back: function
draw_front: function
draw_labels: function
draw_panels: function
finish_data: function
init_scales: function
map_data: function
params: list
setup_data: function
setup_params: function
shrink: TRUE
train_scales: function
vars: function
super: <ggproto object: Class FacetNull, Facet, gg>
facet_params: list
finish_data: function
get_scales: function
layout: data.frame
map_position: function
panel_params: list
panel_scales_x: list
panel_scales_y: list
render: function
render_labels: function
reset_scales: function
setup: function
setup_panel_params: function
train_position: function
xlabel: function
ylabel: function
super: <ggproto object: Class Layout, gg>
$plot
attr(,"class")
[1] "ggplot_built"

更新于: 2020 年 8 月 24 日

2 千 + 查看

启动你的 职业生涯

完成该课程并获得认证

开始
广告