Как обозначить оси на графике при создании пользовательской функции? - PullRequest
1 голос
/ 26 июня 2019

Мне нужно сделать пользовательскую функцию, которая бы рисовала несколько отдельных графиков коробчатых графиков.У моей функции есть два аргумента: один для оси X, другой для оси Y.Я хочу пометить их именами столбцов из моего фрейма данных, которые я использую в качестве аргументов.Проблема в том, что когда я использую colnames() для извлечения имен столбцов, на графике ничего не отображается, даже буквы a и b, которые используются в качестве аргументов (раньше они отображались, когда я этого не делал.иметь слой 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 Ответ

1 голос
/ 26 июня 2019

aes_string принимает символы в качестве входных данных.

При этом, передавая аргументы в виде строк, вы можете использовать a и bв labs().Тем не менее, я должен отметить, что 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)

Создано в2019-06-26 представьте пакет (v0.3.0)

...