如何更改ggplot中函数对应的实验室名称
How to change the lab name corresponding to function in ggplot
我有几个函数被最终函数调用来绘制 ggplot 图。我正在使用一个列表传递给函数调用,这样图形就可以通过它们中的每一个进行迭代。但是,xlab 显示不正确。
first_plot <- function(dta, vari) {
vari <- enquo(vari)
dta %>%
group_by(!!vari) %>%
summarize(a = mean(!!whatever) +
ggplot(aes(x=!!vari)) +
geom_point(aes(a))
}
plot_all <- function(dta, item) {
list_var <- list(name = item)
plot_list<- list()
for(i in 1:length(item)) {
vari <- sym(item[i])
plot_list[[i]] <- first_plot(dta, vari)
}
}
如果我传递 plot_all(data, c('a','b','c'),我希望 xlab 会相应地显示 a、b、c但它总是显示不同。你能帮我解决这个问题吗?
谢谢。
看来您需要 as.name
而不是 first_plot
中的 enquo
。然后 !!
将在创建绘图时起作用。 iris
数据的简化示例:
library(ggplot2)
library(cowplot)
first_plot <- function(dta, vari) {
vari <- as.name(vari)
ggplot(dta, aes(y = !!vari, x=Species)) +
geom_point()
}
first_plot(iris, "Sepal.Length")
plot_list <- lapply(names(iris)[1:4], first_plot, dta=iris)
plot_grid(plotlist=plot_list)
应该拍这个剧情
我有几个函数被最终函数调用来绘制 ggplot 图。我正在使用一个列表传递给函数调用,这样图形就可以通过它们中的每一个进行迭代。但是,xlab 显示不正确。
first_plot <- function(dta, vari) {
vari <- enquo(vari)
dta %>%
group_by(!!vari) %>%
summarize(a = mean(!!whatever) +
ggplot(aes(x=!!vari)) +
geom_point(aes(a))
}
plot_all <- function(dta, item) {
list_var <- list(name = item)
plot_list<- list()
for(i in 1:length(item)) {
vari <- sym(item[i])
plot_list[[i]] <- first_plot(dta, vari)
}
}
如果我传递 plot_all(data, c('a','b','c'),我希望 xlab 会相应地显示 a、b、c但它总是显示不同。你能帮我解决这个问题吗?
谢谢。
看来您需要 as.name
而不是 first_plot
中的 enquo
。然后 !!
将在创建绘图时起作用。 iris
数据的简化示例:
library(ggplot2)
library(cowplot)
first_plot <- function(dta, vari) {
vari <- as.name(vari)
ggplot(dta, aes(y = !!vari, x=Species)) +
geom_point()
}
first_plot(iris, "Sepal.Length")
plot_list <- lapply(names(iris)[1:4], first_plot, dta=iris)
plot_grid(plotlist=plot_list)
应该拍这个剧情