我有以下“代码”
set.seed(100)
values<-c(rnorm(200,10,1),rnorm(200,2.1,1),rnorm(250,6,1),rnorm(75,2.1,1),rnorm(50,9,1),rnorm(210,2.05,1))
rep1<-rep(3,200)
rep2<-rep(0,200)
rep3<-rep(1,250)
rep4<-rep(0,75)
rep5<-rep(2,50)
rep6<- rep(0,210)
group<-c(rep1,rep2,rep3,rep4,rep5,rep6)
df<-data.frame(values,group)
我想将这些数据绘制为散点图(如所附图)并添加分段。这些段(y值)应代表给定组的数据平均值。另外,根据因素(组),分段应具有不同的颜色。有没有一种有效的方法来用ggplot呢?
非常感谢
答案 0 :(得分:0)
我们可以通过稍微扩充您的数据来做到这一点。我们将使用dplyr
来获得group
的均值,并创建变量以提供观察索引,并在group
每次更改时将其递增1(这将是有助于获取所需的细分): 1
library(dplyr)
df <- df %>%
mutate(idx = seq_along(values), group = as.integer(group)) %>%
group_by(group) %>%
mutate(m = mean(values)) %>%
ungroup() %>%
mutate(group2 = cumsum(group != lag(group, default = -1)))
现在我们可以绘制情节了;将geom_line()
与group2
分组一起使用,分组每次更改都会更改group
,从而生成所需的细分。然后,我们用ggplot(data = df, mapping = aes(x = idx, y = values)) +
geom_point(shape = 1, color = "blue") +
geom_line(aes(x = idx, y = m, group = group2, color = as.factor(group)),
size = 2) +
scale_color_manual(values = c("red", "black", "green", "blue"),
name = "group") +
theme_bw()
(的离散版本)进行着色:
RaisedButton(
child: Text("press please"), // here (,) is missing
onPressed: () {
// here navigator
},
),