y轴上具有多个变量的折线图

时间:2019-11-20 22:35:05

标签: r ggplot2 r-plotly

我需要一些帮助。这是我要绘制的数据。我想保持$ path.ID在y轴上,并逐步添加所有其他列的数字。这是非常大的数据集的子集,所以我想将pathID标签附加到每行。以及每个点其他列的值(如果可能)。

head(table)
  Path.ID     sc    st    rc    rt
  <chr>    <dbl> <dbl> <dbl> <dbl>
1 map00230     1    12     5    52
2 map00940     1    20    10    43
3 map01130    NA    15     8    34
4 map00983    NA    14     5    28
5 map00730    NA     5     3    26
6 map00982    NA    16     2    24

somewhat like this 谢谢

2 个答案:

答案 0 :(得分:1)

这是伪代码。

library(tidyr)
library(dplyr)
library(ggplot2)
# convert your table into a long format - sorry I am more used to this type of data
table_long <- table %>% gather(x_axis, value, sc:rt)

# Plot with ggplot2
ggplot() +
  # draw line
  geom_line(data=table_long, aes(x=x_axis, y=value, group=Path.ID, color=Path.ID)) +
  # draw label at the last x_axis in this case is **rt**
  geom_label(data=table_long %>% filter(x_axis=="rt"),
             aes(x=x_axis, y=value, label=Path.ID, fill=Path.ID),
             color="#FFFFFF")

请注意,使用此代码,如果Path.ID没有rt值,那么它将没有任何标签

答案 1 :(得分:1)

p<-ggplot() +
  # draw line
  geom_line(data=table_long, aes(x=x_axis, y=value, group=Path.ID, color=Path.ID)) +
  geom_text(data=table_long %>% filter(x_axis=="rt"),
             aes(x=x_axis, y=value, label=Path.ID),
             color= "#050505", size = 3, check_overlap = TRUE)
p +labs(title= "title",x = "x-lable", y="y-label")

我必须使用geom_text,因为我有大量的数据集,这给了我一些更清晰的图形 谢谢@sinh,它很有帮助。