【问题标题】:setting x variable in ggplot by looping character string通过循环字符串在ggplot中设置x变量
【发布时间】:2019-04-10 05:25:02
【问题描述】:

我正在使用一个字符向量,其中包含我想要使用 ggplot 绘制的数据框中的变量。我正在使用 for 循环设置 x 变量,但 ggplot 似乎没有正确分配变量。

我的数据框(数据)有许多我想使用 geom_bar 绘制的因子变量。我创建了一个字符向量(chars),其中包含因子变量的列名。我的循环分配所需的变量时遇到了困难。

chars <- c("school", "address", "famsize", "Pstatus", "Mjob", "Fjob", "reason", "guardian", "schoolsup", "famsup", "paid", "activities", "nursery", "higher", "internet", "romantic")

data[chars] <- lapply(data[chars], factor)

for (i in chars) {
   print(ggplot(data, aes(x = i))) +
     geom_bar()
}

我希望最终得到所有变量的条形图,但相反,我得到了一系列空白图,标题为 chars 中的每个对象。我做错了什么?

【问题讨论】:

  • 这听起来像是您需要将数据转换为长格式。您可以通过粘贴dput(data) 的输出来提供数据框吗?另外,也许看看这个关于重塑数据的问题:stackoverflow.com/questions/2185252/…

标签: r loops ggplot2


【解决方案1】:

您也许可以使用 aes_string 代替 aes:

print(ggplot(data, aes_string(i)) + geom_bar())

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-18
    • 2010-12-12
    • 2013-11-23
    • 1970-01-01
    相关资源
    最近更新 更多