R +;ggplot中的几何图形密度2d()
我对R语言非常陌生,所以如果有任何错误,请纠正我!我需要学习 我最近使用ggplot2包在RStudio中创建了一个图形 现在我有两个问题 首先,我对等高线后面的数据点非常感兴趣。据推测,为了让程序画出这些线,必须有一系列底层数据点允许程序这样做 我希望探索是否有可能提取这些数据点 其次,如果有人能告诉我ggplot2中+geom_density_2d()函数背后的基本数学原理,那就太好了 下面是我用来创建图表的代码R +;ggplot中的几何图形密度2d(),r,ggplot2,R,Ggplot2,我对R语言非常陌生,所以如果有任何错误,请纠正我!我需要学习 我最近使用ggplot2包在RStudio中创建了一个图形 现在我有两个问题 首先,我对等高线后面的数据点非常感兴趣。据推测,为了让程序画出这些线,必须有一系列底层数据点允许程序这样做 我希望探索是否有可能提取这些数据点 其次,如果有人能告诉我ggplot2中+geom_density_2d()函数背后的基本数学原理,那就太好了 下面是我用来创建图表的代码 ggplot(read.Alteryx("Office", mode="da
ggplot(read.Alteryx("Office", mode="data.frame"),aes(x=Chances,y=Defensive,colour=Team)) +
facet_wrap( ~ Team, ncol=2) +
geom_density_2d() +
scale_colour_manual(values = c("Leicester City" = "#1b378b", "Tottenham Hotspur" = "#011657",
"Arsenal" = "#d02320", "Manchester City" = "#8ac7ff")) +
theme_bw() +
theme(panel.background=element_rect(fill="White")) +
theme(plot.background=element_rect(fill="White")) +
theme(panel.border=element_rect(colour="White")) +
theme(panel.grid.major=element_line(colour="gray48",size=0.2)) +
scale_x_continuous(minor_breaks=0, breaks=seq(14,26,12),limits=c(14,26)) +
scale_y_continuous(minor_breaks=0, breaks=seq(50,100,50),limits=c(50,100)) +
theme(axis.text.x=element_text(size=7,colour="#535353",face="bold")) +
theme(axis.text.y=element_text(size=7,colour="#535353",face="bold")) +
theme(axis.ticks=element_blank()) +
theme(legend.position="none") +
ggtitle("Pass completion % (Y) v Pass length M (X) for each game – EPL Top 4") +
theme(plot.title=element_text(face="bold",colour="#3C3C3C",size=10)) +
ylab("") +
xlab("") +
theme(axis.title.x=element_text(size=11,colour="#535353",face="bold",vjust=-.5)) +
geom_hline(yintercept=50,size=0.2,colour="gray48") +
geom_vline(xintercept=14,size=0.2,colour="gray48") +
theme(strip.text.x = element_text(size=0, face="bold"),
strip.background = element_rect(colour="White", fill="White")) +
geom_point(size = 3) +
theme(panel.margin = unit(3, "lines")) +
geom_rug(sides="trbl", size = 0.5)
您是否查看了
geom\u density\u 2d
的帮助页面?它命名它调用以生成估计值的函数(MASS::kde2d
)。您可以查看该函数的帮助页面以获取参考。除了允许您直接计算密度值的MrFlick
方法外,您还可以使用ggplot\u build
函数从plot对象中获取密度值。例如,如果绘图对象是p
,则执行pb=ggplot\u build(p)
。然后等高线的数据将位于pb$data
子列表中的一个数据框中。我将查看这些答案!非常感谢。eipi10你的回答似乎正是我想要的,我只需要找出答案!很高兴能帮上忙。如果您有任何后续问题,请回来编辑您的问题。此外,如果您确实有任何后续问题,那么如果您提供与代码配套的示例数据(更一般地说,如果您提供了示例数据),将更容易提供帮助。我刚刚尝试了ggplot_构建方法,它工作得非常好!感谢您的回复和提示:)您是否查看了geom\u density\u 2d
的帮助页面?它命名它调用以生成估计值的函数(MASS::kde2d
)。您可以查看该函数的帮助页面以获取参考。除了允许您直接计算密度值的MrFlick
方法外,您还可以使用ggplot\u build
函数从plot对象中获取密度值。例如,如果绘图对象是p
,则执行pb=ggplot\u build(p)
。然后等高线的数据将位于pb$data
子列表中的一个数据框中。我将查看这些答案!非常感谢。eipi10你的回答似乎正是我想要的,我只需要找出答案!很高兴能帮上忙。如果您有任何后续问题,请回来编辑您的问题。此外,如果您确实有任何后续问题,那么如果您提供与代码配套的示例数据(更一般地说,如果您提供了示例数据),将更容易提供帮助。我刚刚尝试了ggplot_构建方法,它工作得非常好!感谢您的回复和提示:)