r - lapply + ggplot 无法填充我的箱线图。(箱线图中没有颜色填充)
问题描述
今天我正在处理一个包含 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)
我的代码有问题吗?我不明白为什么它不起作用。
解决方案
您必须在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 包(v0.3.0)于 2020 年 3 月 22 日创建
推荐阅读
- python - 根据 NaN 值使用 .apply() 更改 DataFrame
- sql - Bigquery 时间作为持续时间,转换为秒
- java - 使用等待来确定没有发生的事情
- reactjs - React:组件构造函数可以有多个参数吗?
- javascript - 如何从 axios 请求打开新的 html 页面?
- c++ - C++ 如何转换 unordered_set
到 unordered_set - shell - 终端关闭粘贴
- c++ - Xcode Swift MacOS App、C++ 线程和进度条
- c++ - 计数特价
- python - Python dbus bus.register_object 源代码/文档