使用ggplot并在数据框上应用时,使用列名作为标题

时间:2017-07-05 21:01:44

标签: r ggplot2 lapply

我一直试图解决这个问题一段时间,我也在互联网上搜索了很多,但我找不到解决这个问题的方法。

我有以下代码可以使用,但我无法让列名在图中显示为标题:

    lapply(bank, function(a) {
    if (is.factor(a)){
    ggplot(bank, aes(x=a)) + geom_bar(aes(fill = bank$y), position = "fill") + geom_hline(yintercept = 0.1127) + geom_bar(aes(y = (..count..)/sum(..count..), alpha = 0.3), show.legend = FALSE)
    }
    else {
    ggplot(bank, aes(x = a)) + geom_histogram(aes(fill = bank$y), position = "fill") + geom_hline(yintercept = 0.1127) + geom_density(aes(y = ..scaled..))
    }
    })

我尝试将“a”放在ggtitle和其他一些东西中,但没有任何效果。 我会很乐意帮助你!

编辑:我现在尝试使用此代码(循环使用名称并使用aes_string):

    lapply(names(bank), function(a) {
    if (is.factor(bank[[a]])){
    ggplot(bank, aes_string(x = a)) + geom_bar(aes(fill = bank$y), position = "fill") + geom_hline(yintercept = 0.1127) + geom_bar(aes(y = (..count..)/sum(..count..), alpha = 0.3), show.legend = FALSE)
    }
    else {
    ggplot(bank, aes_string(x = a)) + geom_histogram(aes(fill = bank$y),  position = "fill") + geom_hline(yintercept = 0.1127) + geom_density(aes(y = ..scaled..))
    }
    })

此代码有效,错误消息是因为变量名称中的空格

0 个答案:

没有答案