【问题标题】:Histogram for list of varying lengths不同长度列表的直方图
【发布时间】:2021-01-23 19:38:13
【问题描述】:

我有一个列表列表。各个列表具有不同的长度。我想为每个列表绘制直方图。我将列表列表转换为数据框,然后尝试绘制它。

temp_df <- t(rbind.fill.matrix(lapply(list_of_list, t)))
temp_df <- data.frame(temp_df)
ggplot(temp_df, aes(x=temp_df)) + 
  geom_histogram(binwidth=1)

我看不到任何直方图。如果我指定数据框中的每一列,我可以绘制直方图。但我想使用单个 ggplot 绘制所有直方图。我使用了 melt 函数来绘制数据框,但 id.varsmeasure.vars 出现错误。当我想在数据框中绘制所有 6 列时,我不知道要为两者设置什么。

temp_df 有 6 个变量的 10000 个观察值。列名是X1, X2, X3, X4, X5, X6X1NA 值数量最多,NA 的数量随着每列而减少。

dput(head(temp_df)) 的输出

structure(list(X1 = c(0.480449055839274, -0.107119140171712, 
-0.365858052127729, 0.142260729396714, -0.664216637912416, -1.05470170555422
), X2 = c(0.301784141398639, 0.908712942126812, -0.523782030032318, 
-1.11579555551399, 1.37307441850034, 0.280296905306203), X3 = c(-0.874933841230617, 
0.402832753722461, -0.914278256004907, -1.56882801460065, -1.02631196686353, 
-0.187458890178538), X4 = c(3.12470729624475, 0.103689667221851, 
0.635940469415468, 1.28922541408293, 0.372579420923551, -1.0709964435315
), X5 = c(-0.631989132409366, -1.49196931038828, -0.647211733851087, 
-0.367277837168729, -0.988614185107109, 0.38110365216619)), X6 = c(-0.511289132409966, -1.43496932451928, -0.078211457296717, 
-0.251792319052356, -0.893756281930586, 0.19284860482647)), row.names = c("1", 
"2", "3", "4", "5", "6"), class = "data.frame")

list_of_list 中的值类似于temp_df。每个子列表的长度从 100 到 10000 不等。

【问题讨论】:

  • 您能分享一下您的数据是什么样的吗?鉴于没有列名,这是一个不可能的问题...
  • @maloneypatr 编辑添加temp_df 数据。
  • 您需要使数据输入 100% 可重现。前来帮忙的人不知道名为list_of_list 的对象是什么样的。
  • 在您的问题中包含dput(head(temp_df)) 的输出...
  • @maloneypatr 完成

标签: r ggplot2 histogram


【解决方案1】:
temp_df <- structure(
  list(X1 = c(0.480449055839274, -0.107119140171712, -0.365858052127729, 0.142260729396714, -0.664216637912416, -1.05470170555422), 
       X2 = c(0.301784141398639, 0.908712942126812, -0.523782030032318, -1.11579555551399, 1.37307441850034, 0.280296905306203), 
       X3 = c(-0.874933841230617, 0.402832753722461, -0.914278256004907, -1.56882801460065, -1.02631196686353, -0.187458890178538), 
       X4 = c(3.12470729624475, 0.103689667221851,  0.635940469415468, 1.28922541408293, 0.372579420923551, -1.0709964435315), 
       X5 = c(-0.631989132409366, -1.49196931038828, -0.647211733851087,  -0.367277837168729, -0.988614185107109, 0.38110365216619), 
       X6 = c(-0.511289132409966, -1.43496932451928, -0.078211457296717, -0.251792319052356, -0.893756281930586, 0.19284860482647)), 
  row.names = c("1", "2", "3", "4", "5", "6"), class = "data.frame")

x %>%
  tidyr::gather(var, value) %>%
  ggplot(aes(x = value, group = var)) +
  geom_boxplot() +
  facet_grid(. ~ var) +
  coord_flip()

【讨论】:

    猜你喜欢
    • 2018-10-16
    • 2014-07-04
    • 2021-03-18
    • 2018-02-02
    • 1970-01-01
    • 1970-01-01
    • 2018-12-31
    • 2017-12-04
    • 2016-11-08
    相关资源
    最近更新 更多