如何在R中的点图中并排绘制多个变量?

pho*_*ted 11 plot r ggplot2

我还是R的新手,并且遇到了我无法找到答案的密谋问题.

我有一个看起来像这样的数据框(虽然更大):

df <- data.frame(Treatment= rep(c("A", "B", "C"), each = 6),
                 LocA=sample(1:100, 18), 
                 LocB=sample(1:100, 18), 
                 LocC=sample(1:100, 18))
Run Code Online (Sandbox Code Playgroud)

我想,看起来像散点图这样一个在Excel中产生.这正是我想要的格式:每个位置并排处理每个位置的点图,多个位置的数据一起放在一个图表上.(对于无法在此处发布图像表示歉意;发布图片需要10个声誉.)

在此输入图像描述

为每个位置制作绘图没有问题,用点颜色编码,等等:

ggplot(data = df, aes(x=Treatment, y=LocA, color = Treatment)) + geom_point() 
Run Code Online (Sandbox Code Playgroud)

但我无法弄清楚如何将位置B和C添加到同一图表中.

任何建议将不胜感激!

Mar*_*ius 12

正如一些人提到的那样,你需要"融化"数据,将其变为"长"形式.

library(reshape2)
df_melted <- melt(df, id.vars=c("Treatment"))
colnames(df_melted)[2] <- "Location"
Run Code Online (Sandbox Code Playgroud)

在ggplot术语中,通过"躲避"实现了并排治疗等不同组.通常对于像条形图这样的东西你可以说position="dodge"geom_point似乎需要更多的手动规范:

ggplot(data=df_melted, aes(x=Location, y=value, color=Treatment)) +
  geom_point(position=position_dodge(width=0.3))
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述