三变量散点图的R代码

三变量散点图的R代码,r,scatter-plot,R,Scatter Plot,嗨,我正在尝试为R中的三个变量编写散点图: Race= [0,1] YOI= [90,92,94] ASB_mean = [1.56, 1.59, 1.74] Antisocial <- read.csv(file = 'Antisocial.csv') Table_1 <- ddply(Antisocial, "YOI", summarise, ASB_mean = mean(ASB)) Table_1 Race <- unique(Antisocial

嗨,我正在尝试为R中的三个变量编写散点图:

Race= [0,1]
YOI= [90,92,94]
ASB_mean = [1.56, 1.59, 1.74]

Antisocial <- read.csv(file = 'Antisocial.csv')
Table_1 <- ddply(Antisocial, "YOI", summarise, ASB_mean = mean(ASB))
Table_1
Race <- unique(Antisocial$Race)
Race
ggplot(data = Table_1, aes(x = YOI, y = ASB_mean, group_by(Race))) + 
geom_point(colour = "Black", size = 2) + geom_line(data = Table_1, aes(YOI, 
ASB_mean), colour = "orange", size = 1) 
Race=[0,1]
YOI=[90,92,94]
ASB_均值=[1.56,1.59,1.74]

反社会的我不确定你想要的结果是什么。也许,如果我理解你的问题,我想你会想要这样的东西

g_Antisocial <- Antisocial %>% 
        group_by(Race) %>% 
        summarise(ASB = mean(ASB),
                  YOI = mean(YOI))
Antisocial %>% 
        ggplot(aes(x = YOI, y = ASB, color = as_factor(Race), shape = as_factor(Race))) +
        geom_point(alpha = .4) +
        geom_point(data = g_Antisocial, size = 4) +
        theme_bw() +
        guides(color = guide_legend("Race"),  shape = guide_legend("Race")) 
g_反社会%
组别(种族)%>%
总结(ASB=平均值(ASB),
YOI=平均值(YOI))
反社会%>%
ggplot(aes(x=YOI,y=ASB,颜色=as_因子(种族),形状=as_因子(种族)))+
几何点(α=0.4)+
几何点(数据=g_反社会,大小=4)+
主题_bw()+
辅助线(颜色=辅助线和图例(“比赛”)、形状=辅助线和图例(“比赛”))
这是输出:

我不确定您的设计输出是什么。也许,如果我理解你的问题,我想你会想要这样的东西

g_Antisocial <- Antisocial %>% 
        group_by(Race) %>% 
        summarise(ASB = mean(ASB),
                  YOI = mean(YOI))
Antisocial %>% 
        ggplot(aes(x = YOI, y = ASB, color = as_factor(Race), shape = as_factor(Race))) +
        geom_point(alpha = .4) +
        geom_point(data = g_Antisocial, size = 4) +
        theme_bw() +
        guides(color = guide_legend("Race"),  shape = guide_legend("Race")) 
g_反社会%
组别(种族)%>%
总结(ASB=平均值(ASB),
YOI=平均值(YOI))
反社会%>%
ggplot(aes(x=YOI,y=ASB,颜色=as_因子(种族),形状=as_因子(种族)))+
几何点(α=0.4)+
几何点(数据=g_反社会,大小=4)+
主题_bw()+
辅助线(颜色=辅助线和图例(“比赛”)、形状=辅助线和图例(“比赛”))
这是输出:
@Maninder:有几件事你需要看看

首先:ggplot()的图形语法适用于层。可以为要打印的不同几何图形添加具有不同数据(帧)的图层

代码不起作用的原因是混合了层调用,或者没有真正指定(甚至混合)所需的散点和线可视化

(一) 对散点图使用ggplot()+geom_point()
最终的第一层是:
ggplot()
。将此视为您的绘图画布。 然后您谈到添加散点图图层,但实际上并没有这样做

例如:

# plotting antisocal data set
ggplot() + 
  geom_point(data = Antisocial, aes(x = YOI, y = ASB, colour = as.factor(Race)))
将使用散点(即geom_point()层)绘制反螺旋数据集。 请注意,我把种族作为一个因素,以有一个明确的配色方案,否则你可能会结束一个连续的调色板

(二) 线图
与上述类似,对于线图,您将得到以下结果:

# plotting Table_1
ggplot() +
  geom_line(data = Table_1, aes(x = YOI, y = ASB_mean))
我保存显示线的绘图

(三) 结合不同层次

这将产生:

这应该可以解释ggplot分层是如何工作的。密切关注您想要使用的数据集和几何图形。在aes中使用继承之前,我建议将data=和aes()调用保留在geom_xxxx中。这避免了混乱

您可能希望使用geom_jitter()而不是geom_point()进行探索,以更好地展示数据集。绘制的“少数”点是位于同一位置的多个数据点(并过度绘制)的结果

从绘图转移到您的问题“我想按种族划分ASB与YOI的平均值。” 我对你的研究知之甚少,无法完全理解你的意思。 我认为你在整个人口中计算的平均ASB是你的参考值(即你的表1),你想看看种族群体的特征与这个人口的平均值是什么

一个选项是将您的比赛数据点分组,并将它们显示为每个YOI的箱线图。 这可能是你想要的。箱线图给出了中位数和四分位数,您可以将每组数据与计算的ASB平均值进行比较

出于演示目的,我通过增加线条的大小和线型来高亮显示该线条。你可以玩弄颜色等,给你的美学目标。 请注意,对于分组箱线图,还必须将整型变量YOI,I强制转换为分类因子。箱线图适用于车身填充(颜色仅设置外线)。在这个设置中,您还需要向geom_line()提供一个组值(我刚刚将其赋值为1,但这是任意的-在其他上下文中,您可以在此处赋值另一个变量)


希望这能让你走

@Maninder:有几件事你需要看看

首先:ggplot()的图形语法适用于层。可以为要打印的不同几何图形添加具有不同数据(帧)的图层

代码不起作用的原因是混合了层调用,或者没有真正指定(甚至混合)所需的散点和线可视化

(一) 对散点图使用ggplot()+geom_point()
最终的第一层是:
ggplot()
。将此视为您的绘图画布。 然后您谈到添加散点图图层,但实际上并没有这样做

例如:

# plotting antisocal data set
ggplot() + 
  geom_point(data = Antisocial, aes(x = YOI, y = ASB, colour = as.factor(Race)))
将使用散点(即geom_point()层)绘制反螺旋数据集。 请注意,我把种族作为一个因素,以有一个明确的配色方案,否则你可能会结束一个连续的调色板

(二) 线图
与上述类似,对于线图,您将得到以下结果:

# plotting Table_1
ggplot() +
  geom_line(data = Table_1, aes(x = YOI, y = ASB_mean))
我保存显示线的绘图

(三) 结合不同层次

这将产生:

这应该可以解释ggplot分层是如何工作的。密切关注您想要使用的数据集和几何图形。在aes中使用继承之前,我建议将data=和aes()调用保留在geom_xxxx中。这避免了混乱

您可能希望使用geom_jitter()而不是geom_point()进行探索,以更好地展示数据集。绘制的“少数”点是位于同一位置的多个数据点(并过度绘制)的结果

从绘图转移到您的问题“我想按种族划分ASB与YOI的平均值。” 我对你的研究知之甚少,无法完全理解你的意思。 我认为你在整个人口中计算的平均ASB是你的参考值(即你的表1),你会