散射图,其中r中的循环中的唯一值之和

时间:2014-10-17 01:20:23

标签: r loops plot label scatter

我有一组由不同参与者生成的数据,他们通过给出值1-5来评分不同的视力障碍。 (该表有大约2.7k行)

Participant是文本(50个不同的ID),列Impairment是文本(9种不同的类型),列Score是数字(1-5)。

我正在尝试针对Participant显示Score的每个Impairment生成散点图。这是我一直在使用的代码:

for (i in unique(Master$Participant)) {
  d <- subset(Master, Master$Participant == i)
  scatter <- ggplot(d, aes(impairment, TechnicalQuality))
  scatter + stat_sum(aes(size = ..n..))
}

它不起作用。

我尝试使用以下代码:

for (i in unique(Master$Participant)) {
  d <- subset(Master, Master$Participant == i)
  plot(d$impairment, d$TechnicalQuality, type ="p")
}

但这不是我想要的。 (我想在散点图上标记独特得分的总和)

我无法弄清楚为什么第一个不起作用而第二个不起作用!任何人都有任何想法?

提前致谢

以下是示例数据:

M_Participant <- c("A001", "A002", "A010", "B002", "B002", "B003", "A010", "B002")
M_Impairment <- c ("H0", "H1", "H3", "H2",  "H4", "H2", "H3", "H0")
M_Score <- c(1, 2, 4, 3, 5, 4, 3, 1)
Master <- data.frame(Participant = M_Participant, Impairment = M_Impairment,
                     Score= M_Score)

1 个答案:

答案 0 :(得分:0)

ggplot中换取print绘图调用,这在循环或函数中生成ggplot / lattice图时是必需的。

for (i in unique(Master$Participant)) {
  d <- subset(Master, Master$Participant == i)
  scatter <- ggplot(d, aes(Impairment, Score))
  print(scatter + stat_sum(aes(size = ..n..)))
}

请注意,您还可以执行以下操作:

library(ggplot2)
p <- ggplot(Master, aes(Impairment, Score)) + geom_point()
p + facet_wrap(~ Participant)

ggplot

或者lattice

library(lattice)
xyplot(Score ~ Impairment | Participant, data=Master, pch=20, col=1, 
       scales=list(alternating=FALSE, tck=c(1, 0)))

lattice