r中以颜色作为输入的用户定义函数

r中以颜色作为输入的用户定义函数,r,colors,user-defined-functions,R,Colors,User Defined Functions,我正在尝试创建一个函数来绘制我的数据 它有3个输入(数据帧、字符串、字符串) 我在和最后一根绳子搏斗 想象一下,我的函数被城市称为plot_(数据框,“阿姆斯特丹”,“春天绿4”) 然后我想让它以一种颜色的方式生成我的情节。 我该怎么做 这是函数的代码: plot_by_city<- function(dataframe, city_name, color){ data1 <- filter(dataframe, city == city_name) ggplot(data

我正在尝试创建一个函数来绘制我的数据

它有3个输入(数据帧、字符串、字符串)

我在和最后一根绳子搏斗

想象一下,我的函数被城市称为plot_(数据框,“阿姆斯特丹”,“春天绿4”)

然后我想让它以一种颜色的方式生成我的情节。 我该怎么做

这是函数的代码:

plot_by_city<- function(dataframe, city_name, color){
  data1 <- filter(dataframe, city == city_name)  
 ggplot(data = data1, aes(x= magnitude, y= injuries)) + 
   geom_point(position= "jitter",shape=23, fill= "red", color="black", size=3)
}

plot\u by\u city您可以按以下方式编写函数:

library(dplyr)
library(ggplot2)

plot_by_city<- function(dataframe, city_name, color = 'red'){
  data1 <- filter(dataframe, city == city_name)  
  ggplot(data = data1, aes(x= magnitude, y= injuries)) + 
    geom_point(position= "jitter",shape=23, fill= color, size=3)
}
#Red color
plot_by_city(dataframe, "Amsterdam")
#springgreen4 color
plot_by_city(dataframe, "Amsterdam","springgreen4")
库(dplyr)
图书馆(GG2)

plot_by_city我认为通过用
{}
ggplot包围
color
,plot将使用字符串变量的内容来设置颜色。所以,不妨试试
fill={{{color}}
,看看这是否符合您的要求。如果您不共享数据,很难进行测试。谢谢!这是一个非常有用的提示,我设法用这个来修复我的代码:)Ronak,我实际上对此有点困惑。我认为我必须在ggplot2中使用花括号来表示变量,但在一些情况下,它在w/o下工作得很好。我把它们包括进去是为了彻底,但不清楚它们是否总是需要的。@marionepel它通常取决于你调用什么样的函数以及它们接受什么样的值
fill
此处接受字符串变量,因此当您将颜色作为字符串传递时,使用
fill=color
应该可以工作,该字符串可以是“红色”或“绿色4”。您可以使用
mtcars
dataset
ggplot(data=mtcars,aes(x=mpg,y=disp))+geom_point(position=“jitter”,shape=23,fill=“springgreen4”,size=3)
测试这一点,如果您使用
{}
包装“springgreen4”,它也可以工作。是的,肯定可以工作。是不是因为函数在这里需要一个字符串,所以如果有一个变量(而不是引号字符串),ggplot知道必须对其求值——即使忽略了
{{}}
?是的,完全正确。它将始终为
fill
查找字符串输入。