用R中的两个变量绘制分组数据的媒体

时间:2016-07-25 19:05:25

标签: r plot ggplot2

看起来像这样的框架

df<- data.frame(samples=1:60, location=rep(letters[1:3], 20), 
                variable=c(rep("A", 20), rep("B", 20), rep("C", 20)), value=rnorm(60))

df
  samples location variable       value
1       1        a        A  0.32513726
2       2        b        A  2.05029602
3       3        c        A -0.10470011
4       4        a        A  0.17142511
5       5        b        A  0.94286900
6       6        c        A -0.01325556

我需要的是绘制(点图)location(a,b或c)(x轴)和中位数value(y轴)的每个位置每个不同的variable(A,B或C)。

我想在ggplot2

中这样做

到目前为止,我已经使用

ggplot(data=df, aes(Location, value), group="variable") + stat_summary(fun.y="median", geom="point")

但它不起作用..

2 个答案:

答案 0 :(得分:2)

获取此数据的简便方法是使用dplyr。这样做的好处是你可以使用ggplot2绘制它,而无需了解许多stat_summary转换。

已修改:要包含按geom_line()分组的variable图层。

library(dplyr)
df2 <- df%>%group_by(variable, location) %>%
  summarise(median = median(value)) 
ggplot(df2, aes(location, median, col=variable)) +
  geom_point() +
  geom_line(aes(group = variable)) 

https://cloud.google.com/bigquery/sql-reference/functions-and-operators#regexp_match

答案 1 :(得分:1)

您需要在group内移动aes变量,同时您可能希望将其指定为color,以便您可以更好地查看,以便绘制线条在同一组中的点之间,您可以添加另一个stat_summary并将geom指定为line

ggplot(data=df, aes(location, value, col = variable, group = variable)) + 
       stat_summary(fun.y = "median", geom = "point") + 
       stat_summary(fun.y = "median", geom = "line")

enter image description here