【问题标题】:using lapply to create ggplot2 histograms with x labels使用 lapply 创建带有 x 标签的 ggplot2 直方图
【发布时间】:2021-03-19 17:47:03
【问题描述】:

我正在尝试使用 lapply 为函数中的每个直方图生成 xlab 直方图标题

plot.labels <- colnames(total_data[27:50])

out1 = lapply(total_data[,27:50], function(x){ggplot(data.frame(x), aes(x, fill=total_data$status,color=total_data$status)) + geom_histogram() + labs(x=plot.labels[x])})

View(plot.labels)

绘图标签看起来很正常,例如: 1 "pct_Myristic" "pct_Palmitic" "pct_Palmitelaidic"

我已经看到以前的答案 Histograms using ggplot2 within loopUsing lapply to pass labels to ggplot2 这对我创建初始代码很有帮助,并且 lapply 循环可以很好地生成带有 ggplot2 的所有二元直方图,因为我不能使用 hist()将两组分开,但应用 xlab 给我带来了麻烦。似乎 plot.labels[x] 适用于一些但不是所有的图表

看起来像这样,缺少一些 xlab histograms

【问题讨论】:

  • 好吧,如果缺少某些情节标签,我要做的第一件事就是打印plot.labels,看看这是否告诉我任何有趣的事情。
  • 我试过了,没有问题,请参阅更新后的帖子
  • 好的。我们会相信你的话。当然,如果你的数据很整洁,你可以使用geom_hist() 并完全避免循环......
  • 嗨,我需要循环 bc 我有 24 个直方图

标签: r ggplot2 lapply


【解决方案1】:

扩展我关于避免循环的评论,并使用mtcars 作为 OP 没有提供他们的输入数据...

创建数据集的长版本。

library(tidyverse)

longData <- mtcars %>% 
              pivot_longer(
                cols=c(mpg, cyl,  disp,  hp, drat,    wt,  qsec, vs, am, gear),
                names_to="Variable",
                values_to="Value"
              )

现在创建绘图。

longData %>% 
  ggplot() +
    geom_histogram(aes(x=Value, fill=as.factor(carb)), position="identity") +
    facet_wrap(~Variable)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-08-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-12
    • 2018-01-21
    • 1970-01-01
    相关资源
    最近更新 更多