在颜色空间的 scale_fill/color 中粘贴名称在循环中不起作用
Paste name in scale_fill/color in colorspace does not work in a loop
当使用 scale_fill_continuous_diverging from colorspace
inside a for loop
or function
不粘贴为 name
的图例标题和错误,如下例所示。
library("ggplot2")
library(colorspace)
set.seed(100)
df <- data.frame(country = LETTERS, V = runif(26, -40, 40))
df$country = factor(LETTERS, LETTERS[order(df$V)]) # reorder factors
fun_plt<-function(x){
x<-df
gg <- ggplot(df, aes(x = country, y = V, fill = V)) +
geom_bar(stat = "identity") +
labs(y = "Under/over valuation in %", x = "Country") +
coord_flip() + theme_minimal()
gg
#Lets say want to paste test in the leged when running through function
tt<-"test"
gg2<-gg+
scale_fill_continuous_diverging(name=paste0(tt,"V"),
palette = "Blue-Red 3", l1 = 30, l2 = 100, p1 = .9, p2 = 1.2)
gg2
}
fun_plt(df)
独立运行良好,但在函数内部 运行 时出错。
ggplot2
中的缩放函数调用基础 ggplot2
缩放函数(discrete_scale
、continuous_scale
、binned_scale
)的方式存在问题15=]。调用环境并不总是被保留,因此一些参数的非标准评估如 name
没有按预期工作。
我已经在版本 2.0-1 中解决了这个问题,即 R-Forge colorspace
的当前开发版本。安装这个应该可以修复错误:
install.packages("colorspace", repos = "http://R-Forge.R-project.org")
更新:同时这也通过CRAN发布了。
当使用 scale_fill_continuous_diverging from colorspace
inside a for loop
or function
不粘贴为 name
的图例标题和错误,如下例所示。
library("ggplot2")
library(colorspace)
set.seed(100)
df <- data.frame(country = LETTERS, V = runif(26, -40, 40))
df$country = factor(LETTERS, LETTERS[order(df$V)]) # reorder factors
fun_plt<-function(x){
x<-df
gg <- ggplot(df, aes(x = country, y = V, fill = V)) +
geom_bar(stat = "identity") +
labs(y = "Under/over valuation in %", x = "Country") +
coord_flip() + theme_minimal()
gg
#Lets say want to paste test in the leged when running through function
tt<-"test"
gg2<-gg+
scale_fill_continuous_diverging(name=paste0(tt,"V"),
palette = "Blue-Red 3", l1 = 30, l2 = 100, p1 = .9, p2 = 1.2)
gg2
}
fun_plt(df)
独立运行良好,但在函数内部 运行 时出错。
ggplot2
中的缩放函数调用基础 ggplot2
缩放函数(discrete_scale
、continuous_scale
、binned_scale
)的方式存在问题15=]。调用环境并不总是被保留,因此一些参数的非标准评估如 name
没有按预期工作。
我已经在版本 2.0-1 中解决了这个问题,即 R-Forge colorspace
的当前开发版本。安装这个应该可以修复错误:
install.packages("colorspace", repos = "http://R-Forge.R-project.org")
更新:同时这也通过CRAN发布了。