【问题标题】:lapply + ggplot cant fill my boxplot. (No colors-filling in boxplot)lapply + ggplot 无法填充我的箱线图。 (箱线图中没有颜色填充)
【发布时间】:2020-03-22 11:10:22
【问题描述】:

今天我正在处理一个包含 26 个数值变量的数据集,我想看看我是否可以为我的每个班级组在我的数据集中的列中为我的每个变量提取一些数据以获取箱线图。

所以,首先我创建了一个示例来看看它是否有效:

ggplot(dford, aes(y= c(let.7g.5p), x=clase, fill=clase)) +
  geom_boxplot() +
  scale_fill_manual(values = c("white", "red", "pink", "blue", "lightblue"))

一切都很完美。我按班级获得了箱线图,并带有颜色,因此我可以更好地区分我的班级。 完美

但是当我尝试创建一个函数以便我可以输入列名列表以便我可以自动化它时,我让它工作,但它不应用任何颜色。我得到了我的箱线图,具有相同的数据,但只是纯白色。

varlist <- names_mirna

customPlot <- function(varName) {

  ggplot(dford, aes_string(dford$clase,varName), fill=dford$clase) + 
    ## Fill doesn't seem to work. My X in aes does.
      geom_boxplot()
      scale_fill_manual(values = c("white", "red", "pink", "blue", "lightblue"))

 ## Not working also.
}

lapply(varlist, customPlot)

我的代码有问题吗?我不明白为什么它不起作用。

【问题讨论】:

  • 用颜色来提亮情节并没有什么问题,但从技术上讲,这里并不需要不同的颜色,因为这就是 x 轴标签的用途。但是如果你有 另一个 变量...

标签: r ggplot2 lapply boxplot


【解决方案1】:

您必须在aes_string 中包含到填充美学的映射。以mtcars 为例,试试这个:

library(ggplot2)

varlist <- c("mpg", "hp")

mtcars$cyl <- factor(mtcars$cyl)

customPlot <- function(varName) {

  ggplot(mtcars, aes_string("cyl", varName, fill = "cyl")) +
    geom_boxplot() 

}
lapply(varlist, customPlot)
#> [[1]]

#> 
#> [[2]]

reprex package (v0.3.0) 于 2020 年 3 月 22 日创建

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-04
    • 1970-01-01
    • 1970-01-01
    • 2013-12-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多