如何解决如何在R中使用彩色十六进制值作为函数参数?
我正在使用用户定义的函数创建图并通过颜色作为选项。将as_label
或quo_name
与按颜色命名(例如灰色或粉红色)配合使用,效果很好。
但是,当我传递十六进制代码时,即使我仅传递不带#的字母数字值,它也会失败。
小例子:
udf_tax_rev_plot <- function(background_line_color = grey){
background_line_color = enquo(background_line_color)
print(as_label(background_line_color) )
}
udf_tax_rev_plot(33ffff)
##### output #####
Error: unexpected symbol in "udf_tax_rev_plot(33ffff"
实际地块代码:
udf_tax_rev_plot <- function(background_line_color = grey){
background_line_color = enquo(background_line_color)
tax_rev %>%
mutate(highlight_type = case_when(country %in%
c("India","Singapore","Malaysia","Norway","Denmark","United States","United Kingdom","China") ~ "Yes",TRUE ~ "No")) %>%
ggplot() +
geom_line(aes(x = year,y = round(tax_revnue_perc_of_gdp,2),col = country),size = 1.1) +
scale_x_continuous(breaks = seq(from = 1980,to = 2020,by = 5)) +
scale_y_continuous(labels = label_dollar(prefix = "",suffix = " %"),breaks = seq(from = 0,to = 60,by = 5)) +
gghighlight(highlight_type == "Yes",unhighlighted_params = list(size = 1,colour = alpha(as_label(background_line_color),0.4))) +
facet_wrap(~continent) +
theme_viny_bright() +
theme(axis.text.x = element_text(angle = 90)
) +
labs(title = "Total Tax Revenue earned % of GDP for world countries across time",subtitle = "created by ViSa",caption = "Data Source: Gapminder",y = "Total Tax Revenue % of GDP"
)
}
udf_tax_rev_plot(#33ffff)
我该如何解决?
更新
这是带有间隔提示数据的代码,可以重现
library(tidyverse)
library(scales)
library(gghighlight)
library(gapminder)
udf_tax_rev_plot <- function(background_line_color = grey){
background_line_color = enquo(background_line_color)
gapminder %>%
mutate(highlight_type = case_when(country %in%
c("India",y = round(gdpPercap,size = 1.1) +
#scale_x_continuous(breaks = seq(from = 1980,by = 5)) +
#scale_y_continuous(labels = label_dollar(prefix = "",#breaks = seq(from = 0,0.4))) +
facet_wrap(~continent) +
theme_minimal() +
theme(axis.text.x = element_text(angle = 90)
) +
labs(title = "Total Tax Revenue earned % of GDP for world countries across time",y = "Total Tax Revenue % of GDP"
)
}
udf_tax_rev_plot(pink)
解决方法
这适用于您提供的数据:
library(tidyverse)
library(scales)
library(gghighlight)
library(gapminder)
udf_tax_rev_plot <- function(background_line_color = "grey"){
gapminder %>%
mutate(highlight_type = case_when(country %in%
c("India","Singapore","Malaysia","Norway","Denmark","United States","United Kingdom","China") ~ "Yes",TRUE ~ "No")) %>%
ggplot() +
geom_line(aes(x = year,y = round(gdpPercap,2),col = country),size = 1.1) +
scale_x_continuous(breaks = seq(from = 1980,to = 2020,by = 5)) +
scale_y_continuous(labels = label_dollar(prefix = "",suffix = " %"),breaks = seq(from = 0,to = 60,by = 5)) +
gghighlight(highlight_type == "Yes",unhighlighted_params = list(size = 1,colour = alpha(background_line_color,0.4))) +
facet_wrap(~continent) +
theme_minimal() +
theme(axis.text.x = element_text(angle = 90)
) +
labs(title = "Total Tax Revenue earned % of GDP for world countries across time",subtitle = "created by ViSa",caption = "Data Source: Gapminder",y = "Total Tax Revenue % of GDP"
)
}
udf_tax_rev_plot("pink")
您必须提供颜色作为字符串。
- 所以像这样:
udf_tax_rev_plot("#33ffff")
- 或者像这样:
udf_tax_rev_plot('#33ffff')
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。