绘制两个离散量度变量

我必须创建一个图形,在其中可以查看两个离散数字变量之间的相关性。 它们是if ($players->contains('id',Auth::id())){ }中的ageeduccarData::GSSvocab的值从0到20,并且年龄以年为单位。 我没有一个好主意来绘制此图,因为如果我使用educ,则会有很多重叠点。 我尝试了以下方法,但我对此并不满意:

geom_point

绘制两个离散量度变量

wz17266 回答:绘制两个离散量度变量

根据您正在使用的数据集,我感到变量educ更像是一个类变量,而不是真正的数字变量。 就个人而言,我宁愿使用educ作为因子,而不是尝试将其绘制为数字,而是添加一个箱形图以获得类似的内容。

因此,它看起来应该像:

ggplot(df,aes(x = as.factor(educ),y = age)) +
  geom_jitter(width = .2,size = .5,color = adjustcolor("black",alpha=.6)) +
  geom_boxplot() + 
  coord_flip()

以及下图:

enter image description here

我认为educage之间的相关性稍微高一些,老年人的得分为educ较低,而年轻人的得分较高。 educ中的。

这对您有意义吗? (再次,这是我对这个数据集的个人理解)

,

您的散点图在双变量分布中产生大量联系,并模糊了显示中的许多点,显然它没有那么大用处。为解决此问题,请将年龄分成多个级别的因子,并生成一个箱形图而不是散点图。

Cnt2Fac <- function(x,breaks = NULL) {
 if(is.null(breaks)) breaks <- unique(quantile(x,0:10/10))
 x <- cut(x,breaks,include.lowest = TRUE,right = FALSE)
 levels(x) <- paste(round(breaks[-length(breaks)]),ifelse(diff(breaks) > 1,c(paste("-",breaks[-c(1,length(breaks))] - 1,sep = ""),"+"),""),sep = "")
 return(x)
}

plot(educ ~ Cnt2Fac(age,c(18,36,54,72,90)),data = carData::GSSvocab[complete.cases(carData::GSSvocab[,c("educ","age")]),],xlab='Age',ylab='Education',main='Education vs Age')

enter image description here

,

在这种情况下,我倾向于尝试描绘一些关于点密度的东西:

library(carData)
library(ggplot2)
data('GSSvocab')

p <- ggplot(GSSvocab,aes(x = age,y = educ))

p + geom_hex() # or...
p + geom_bin2d() # or...
p + geom_point(alpha = 0.05) + geom_density_2d()

我担心将受教育年限转换为factor(如另一个答案中所述)是(1)这并不反映您将如何在相关性测试中实际分析数据; (2)描绘箱形图可能会让您在视觉上对没有大量数据(例如0:5年)的类别的集中趋势过于自信-真正的收获是没有……那里有很多数据点; (3)它设置了一个任意的选择:为什么要使factor接受多年教育,为什么不让factor接受年龄?

本文链接:https://www.f2er.com/3100470.html

大家都在问