R-连接ggplot2中两个相邻分类变量的最大值和最小值
我现在有一个散点图。每种颜色代表一个分类组,每个组都有一个x轴上的值范围。分类变量范围之间不应存在任何重叠。但是,由于散射点的厚度,看起来有重叠。所以,我想画一条线来连接群的最大点和相邻群的最小点,这样只要这条线没有负斜率,它就可以表明每个分类变量之间没有重叠 我不知道如何使用geom_line()连接y坐标为分类变量的两点。这样做可能吗 任何帮助都将不胜感激 我的阅读理解力不好,所以我误解了这个问题。忽略此答案,除非您想了解R-连接ggplot2中两个相邻分类变量的最大值和最小值,r,ggplot2,R,Ggplot2,我现在有一个散点图。每种颜色代表一个分类组,每个组都有一个x轴上的值范围。分类变量范围之间不应存在任何重叠。但是,由于散射点的厚度,看起来有重叠。所以,我想画一条线来连接群的最大点和相邻群的最小点,这样只要这条线没有负斜率,它就可以表明每个分类变量之间没有重叠 我不知道如何使用geom_line()连接y坐标为分类变量的两点。这样做可能吗 任何帮助都将不胜感激 我的阅读理解力不好,所以我误解了这个问题。忽略此答案,除非您想了解geom\u line的lineend=参数 #生成虚拟数据 我的阅
geom\u line
的lineend=
参数
#生成虚拟数据
我的阅读理解力不好,所以我误解了这个问题。忽略此答案,除非您想了解geom\u line
的lineend=
参数
#生成虚拟数据
df听起来你想要的是geom_段
而不是geom_线
。您需要将数据聚合到一个新的数据框中,该数据框中包含要绘制的点。我调整了Brian的样本数据,并使用dplyr
实现了以下目的:
# sample data
df <- data.frame(xvals = runif(50, 0, 1))
df$cats <- cut(df$xvals, c(0, .25, .625, 1))
# aggregation
library(dplyr)
df_summ = df %>% group_by(cats) %>%
summarize(min = min(xvals), max = max(xvals)) %>%
mutate(adj_max = lead(max),
adj_min = lead(min),
adj_cat = lead(cats))
# plot
ggplot(df, aes(xvals, cats, colour = cats)) +
geom_point() +
geom_segment(data = df_summ, aes(
x = max,
xend = adj_min,
y = cats,
yend = adj_cat
))
#示例数据
df%
汇总(最小值=最小值(xVAL),最大值=最大值(xVAL))%>%
变异(adj_max=铅(max),
调整最小值=导程(最小值),
adj_猫=铅(猫))
#密谋
ggplot(df,aes(xVAL,CAT,颜色=CAT))+
几何点()+
geom_段(数据=df_总和,aes(
x=最大值,
xend=调整最小值,
y=猫,
是的
))
您可以将线段保持为上一类别的颜色,或者将其设置为中性色,这样它们就不会显得那么突出。听起来您想要的是geom\u线段
而不是geom\u线
。您需要将数据聚合到一个新的数据框中,该数据框中包含要绘制的点。我调整了Brian的样本数据,并使用dplyr
实现了以下目的:
# sample data
df <- data.frame(xvals = runif(50, 0, 1))
df$cats <- cut(df$xvals, c(0, .25, .625, 1))
# aggregation
library(dplyr)
df_summ = df %>% group_by(cats) %>%
summarize(min = min(xvals), max = max(xvals)) %>%
mutate(adj_max = lead(max),
adj_min = lead(min),
adj_cat = lead(cats))
# plot
ggplot(df, aes(xvals, cats, colour = cats)) +
geom_point() +
geom_segment(data = df_summ, aes(
x = max,
xend = adj_min,
y = cats,
yend = adj_cat
))
#示例数据
df%
汇总(最小值=最小值(xVAL),最大值=最大值(xVAL))%>%
变异(adj_max=铅(max),
调整最小值=导程(最小值),
adj_猫=铅(猫))
#密谋
ggplot(df,aes(xVAL,CAT,颜色=CAT))+
几何点()+
geom_段(数据=df_总和,aes(
x=最大值,
xend=调整最小值,
y=猫,
是的
))
您可以将这些部分的颜色保持为上一个类别的颜色,或者将它们设置为中性颜色,这样它们就不会那么显眼。我完全误解了这个问题,所以您的答案是正确的!我将删除我的,但请随意保留虚拟数据:)我完全误解了这个问题,所以你的答案是正确的!我将删除我的,但请随意保留虚拟数据:)