进行自定义功能时,如何在图上标注轴?

时间:2019-06-26 17:24:49

标签: r ggplot2 plot axis-labels

我需要制作一个自定义函数,该函数将绘制几个单独的箱线图。我的函数有两个参数:一个用于x轴,另一个用于y轴。我想用我用作参数的数据框中的列名来标记它们。问题是,当我使用colnames()提取列名称时,它在图形上什么都没有显示,甚至连用作参数的字母ab也没有显示(它用来显示当我没有labs()图层时)。你能帮我解决这个问题吗?我的代码在下面。

forestfires <- 
 read.csv(url(
  "https://archive.ics.uci.edu/ml/machine-learning-databases/forest-fires/forestfires.csv"))

require(ggplot2)

boxplot_months <- function(a,b) {
  ggplot(data = forestfires) +
    aes_string(x=a, y=b) +
    geom_boxplot() +
    theme(panel.background = element_rect(fill="white")) +
    labs(x=colnames(a), y=colnames(b))
 }

boxplot_months(forestfires$month, forestfires$FFMC)

1 个答案:

答案 0 :(得分:1)

aes_string以字符作为输入。

话虽如此,通过将参数作为字符串传递,您也可以在a中使用blabs()。但是,我应该提到colnames(forestfires$month)根本就没有,因为在提取列之后,您将拥有一个不再是该列的向量。

forestfires <- 
  read.csv(url(
    "https://archive.ics.uci.edu/ml/machine-learning-databases/forest-fires/forestfires.csv"))

boxplot_months <- function(a,b, mydataset) {
 require(ggplot2)
  ggplot(mydataset) +
    geom_boxplot(aes_string(a,b)) +
    theme(panel.background = element_rect(fill="white"))+
    labs(x=a, y=b)
}

boxplot_months("month", "FFMC", forestfires)

reprex package(v0.3.0)于2019-06-26创建