R 使用部分通用的图例绘制多个线段
假设我有以下数据框:R 使用部分通用的图例绘制多个线段,r,ggplot2,plot,legend,segment,R,Ggplot2,Plot,Legend,Segment,假设我有以下数据框: line_df <- data.frame(x_ini = c(0.55,2.55,1.55,5.55,7.55), x_end = c(1.45,3.45,2.45,6.45,8.45), y = c(-0.5,-0.5,-1.5,-2.5,-2.5), category = c("red","red","blue","green","green")) 所以问题是,我不能向它添加另一个ggplot层,如果我直接添加geom_段(Nova在回答中提到),我会得到有关
line_df <- data.frame(x_ini = c(0.55,2.55,1.55,5.55,7.55),
x_end = c(1.45,3.45,2.45,6.45,8.45),
y = c(-0.5,-0.5,-1.5,-2.5,-2.5),
category = c("red","red","blue","green","green"))
所以问题是,我不能向它添加另一个
ggplot
层,如果我直接添加geom_段
(Nova在回答中提到),我会得到有关填充
选项的错误 我认为,如果你为“行”添加一个字段,你就可以这样做——这就是你的意思吗
line_df$row <- seq_len(nrow(line_df))
ggplot(line_df) +
geom_segment(aes(x = x_ini, xend = x_end, y = y, yend = y,
group = row, color = category), size = 2) +
scale_color_manual(values = c("lightblue", "seagreen", "firebrick"))
我认为,如果您为“行”添加一个字段,您可以这样做-这就是您的意思吗
line_df$row <- seq_len(nrow(line_df))
ggplot(line_df) +
geom_segment(aes(x = x_ini, xend = x_end, y = y, yend = y,
group = row, color = category), size = 2) +
scale_color_manual(values = c("lightblue", "seagreen", "firebrick"))
这正是我想要的,谢谢!:)。。。但问题是它是在另一个
ggplot
之后出现的,所以我不能直接使用它。我在我的问题中添加了一个编辑,提供了更多的细节,我猜在添加两个ggplot时会有一些冲突,但我还没有找到解决方法。@CristóbalRoderoGómez,尝试在调用geom_bar
时添加“fill”参数,而不是第一次调用ggplot
。如果需要进一步帮助,请添加一个可复制的示例-不清楚新数据框中的哪些列是“x_ini”和“e_end”。在这种情况下,我在grDevices::col2rgb(color,TRUE):无效的颜色名称“x”(它将变量解释为颜色,而作为ggplot参数,它将变量解释为类别。)x_ini
变量是出现在line_df
中的变量,只是我们必须指定它来自该数据帧,因为有多个。因此geom_段
指令将是geom_段(data=line_df,…
。希望现在更清楚。我试图创建我认为您想要的图形,但我不清楚您希望最终图形是什么样子。基本上它将是条形图(对应于上一个_df
数据框)和具有相同轴的下方等。线段(由line_df
数据框描述)。这正是我想要的,谢谢!)…但问题是它紧跟在另一个ggplot
之后,所以我不能直接使用它。我在问题中添加了一个编辑,提供了更多细节,我猜在添加两个ggplot时会有一些冲突,但我还没有找到解决方法。@CristóbalRoderoG mez,尝试添加“填充”调用geom\u bar
中的参数,而不是第一次调用ggplot
。如果需要进一步帮助,请添加一个可复制的示例-不清楚新数据框中的哪些列是“x_ini”和“e_end”。在这种情况下,我在grDevices::col2rgb(颜色,TRUE):无效的颜色名称“x”(它将变量解释为颜色,而作为ggplot参数,它将变量解释为类别。)x_ini
变量是出现在line_df
中的变量,只是我们必须指定它来自该数据帧,因为有多个。因此geom_段
指令将是geom_段(data=line_df,…
。希望现在更清楚。我试图创建我认为您想要的图形,但我不清楚您希望最终图形是什么样子。基本上它将是条形图(对应于上一个_df
数据框)和具有相同轴的下方等。线段(由数据框中的行描述)。
ggplot(previous_df) +
geom_bar(aes(labeldf, number, fill=letter), stat="identity",position='dodge') +
geom_segment(data = line_df, aes(x = x_ini, xend = x_end, y = y, yend = y,
group = row, color = category), size = 2) +
scale_color_manual(values = c("lightblue", "seagreen", "firebrick"))