【问题标题】:Line chart for multiple grouped variables多个分组变量的折线图
【发布时间】:2018-04-18 10:34:43
【问题描述】:

我有大约 20 个变量,它们来自 4 个不同的来源。我想使用ggplot 为每个变量可视化不同来源的数据如何变化。

我认为折线图将是一个很好的可视化选择。我的 x 轴可以是每个响应,源的 4 行将向我展示数据在这 4 个数据源中的变化情况。我可以将region 作为分割变量来按区域进行可视化。

我的数据如下所示(为简单起见,我只提供了 2 个变量):

library(data.table)

set.seed(1200)

ID <- seq(1001,1100)
region <- sample(1:10,100,replace = T)
Var1_source1 <- sample(1:100,100,replace = T)
Var1_source2 <- sample(1:100,100,replace = T)
Var1_source3 <- sample(1:100,100,replace = T)
Var1_source4 <- sample(1:100,100,replace = T)
Var2_source1 <- sample(1:100,100,replace = T)
Var2_source2 <- sample(1:100,100,replace = T)
Var2_source3 <- sample(1:100,100,replace = T)
Var2_source4 <- sample(1:100,100,replace = T)

df1 <- as.data.table(data.frame(ID,
                                region,
                                Var1_source1,
                                Var1_source2,
                                Var1_source3,
                                Var1_source4,
                                Var2_source1,
                                Var2_source2,
                                Var2_source3,
                                Var2_source4))

我觉得这是一个独特的要求,因为我没有要在我的 x 轴上绘制任何特定的东西

【问题讨论】:

    标签: r plot ggplot2 linechart


    【解决方案1】:

    我不完全确定您希望从您的描述中看到的情节是什么样的,但任何 ggplot 的第一部分都是获取长格式的数据。

    library(tidyverse)
    
    df2 <- gather(df1, group, value, - c(ID, region)) %>%
      separate(group, c("Var", "Source")) 
    
    head(df2)
    
        ID region  Var  Source value
    1 1001      2 Var1 source1    92
    2 1002      4 Var1 source1    44
    3 1003      5 Var1 source1    15
    4 1004      6 Var1 source1    42
    5 1005      5 Var1 source1    39
    6 1006      6 Var1 source1    48
    

    我们现在有了一个可以在 ggplot 中使用的列。我不完全确定您要绘制什么,但这是一个示例:

    ggplot(df2, aes(x = region, y = value, colour = Source)) +
      stat_summary(fun.y = mean, geom ="line")
    

    或者我们可以使用一个方面来分割两个变量:

    ggplot(df2, aes(x = region, y = value, colour = Source)) +
      stat_summary(fun.y = mean, geom ="line") +
      facet_grid(Var~.)
    

    【讨论】:

    • 感谢您的回答....可能是我的错,我正在想象有类似 4 行的内容,这将告诉我 4 个来源的数据如何因地区而异。可能是这个随机数据在不同来源之间存在很大差异,因此得到这样一个分布如此广泛的图.....请建议是否有任何其他方法可以可视化 4 个来源之间的差异
    • 感谢您的编辑。是的,我正在寻找类似的东西。您能否确认一下“〜”是什么意思?在 facet_grid 中的意思
    • 感谢您指点我这些材料!祝您有美好的一天!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-21
    • 2023-01-13
    相关资源
    最近更新 更多