首页 > 解决方案 > R中的函数允许控制ggplot中的2个变量

问题描述

Tourism <- function(...){
  tour%>% 
    filter(Country %in% c(...))%>%
    select(Country, `1995`:`2019`)%>%
    gather(key = "Year", value="Dollars", -Country)%>% 
    ggplot(aes(x = Year, y = Dollars, colour = Country, group = Country))  + 
    geom_line() +geom_point() +  
    scale_y_log10(label=dollar) + 
    ggtitle("Tourism Dollars") + theme(plot.title = element_text(hjust = 0.5))
}
Tourism("Italy","Canada")

我有这段代码工作得很好。但是我想更新这个功能,让用户不仅可以设置国家,还可以设置图表中显示的年份。 在此处输入图像描述

标签: rggplot2

解决方案


您可以将两个参数作为向量传递给函数。

library(tidyverse)

Tourism <- function(country, year){
  tour%>% 
    filter(Country %in% country) %>%
    select(Country, as.character(year)) %>%
    gather(key = "Year", value="Dollars", -Country)%>% 
    ggplot(aes(x = Year, y = Dollars, colour = Country, group = Country))  + 
    geom_line() +geom_point() +  
    scale_y_log10(label=dollar) + 
    ggtitle("Tourism Dollars") + theme(plot.title = element_text(hjust = 0.5))
}

Tourism(c("Italy","Canada"), 1995:2019)

推荐阅读