嗨我已经使用数据框中的ggplot2 geom_histogram函数绘制了一个图,请参阅下面的示例并链接到ggplot直方图Need to label each geom_vline with the factors using a nested ddply function and facet wrap
现在我需要创建一个包含上图中使用的汇总数据的数据框 . 有人可以帮忙吗?提前致谢 . G
Sector2 Family Year Length
BUN Acroporidae 2010 332.1300496
BUN Poritidae 2011 141.1467966
BUN Acroporidae 2012 127.479
BUN Acroporidae 2013 142.5940556
MUR Faviidae 2010 304.0405
MUR Faviidae 2011 423.152
MUR Pocilloporidae 2012 576.0295
MUR Poritidae 2013 123.8936667
NTH Faviidae 2010 60.494
NTH Faviidae 2011 27.427
NTH Pocilloporidae 2012 270.475
NTH Poritidae 2013 363.4635
3 回答
要获得实际绘制的值,您可以使用函数
ggplot_build()
,其中参数是您的图 .这将使列表和一个子列表命名为
data
. 此子列表包含具有在绘图中使用的值的数据框,例如,对于histrogramm,它包含y
值(与count
相同) . 如果使用构面,则列PANEL
显示使用哪个构面值 . 如果你的图中有多个geom_
,那么数据将包含每个数据帧 - 在我的例子中,有一个用于histogramm的数据帧,另一个用于vlines .如果您只需要数据,那么
layer_data
就是为此精确设计的:它将为您提供第一层的数据,与
ggplot_build(p)$data[[1]]
相同 .它的源代码确实是
function (plot, i = 1L) ggplot_build(plot)$data[[i]]
当其他答案让您关闭时,如果您要查找传递给
ggplot()
的实际数据,您可以使用:ggplot_build(p)$plot$data
由reprex包创建于2019-03-04(v0.2.1)
虽然这对于未修改的数据框没有用,但是如果你在进入ggplot之前通过一系列
mutate()
或summarize()
,那么在显示数据之后这可能是有用的 .