【问题标题】:How to properly use variable in ggplot?如何在ggplot中正确使用变量?
【发布时间】:2018-05-31 07:16:19
【问题描述】:

我发现了一个我无法理解的问题。有人可以指点解释吗?

在 ggplot 中,如果我使用/不使用带有变量名的“$”,它会给出不同的结果。请看下面的例子,

library(ggplot2)
df <- read.csv("pseudo_facebook.tsv", sep = '\t')

# Without $ sign
ggplot(data = df, aes(x = friend_count)) + geom_histogram(binwidth = 25) +
  scale_x_continuous(limits = c(1, 1000), breaks = seq(0, 1000, 25)) + 
  facet_grid(~df$gender)

# With $ sign
ggplot(data = df, aes(x = df$friend_count)) + geom_histogram(binwidth = 25) +
  scale_x_continuous(limits = c(1, 1000), breaks = seq(0, 1000, 25)) + 
  facet_grid(~df$gender)

【问题讨论】:

  • 您需要为这样的问题提供一个可重现的示例。运行dput(df) 并将输出复制到问题中(假设数据集不太大)。
  • 简短的解释是:永远不要在 aes() 或 faceting 中使用$!只是不要这样做!这是错误的! ;)

标签: r variables ggplot2 aesthetics


【解决方案1】:

我不确定这是否是导致您行为的原因,但在第一个示例中,facet_grid 公式中仍有df$。如果您将裸列名与数据框指定的列名混合在一起,则可能会出现一些偷偷摸摸的评估问题。

如果您使用 URL 切换 read.csv 中的该文件名,您将有一个我可以测试的表示 ?

【讨论】:

猜你喜欢
  • 2012-08-21
  • 2022-11-13
  • 1970-01-01
  • 2013-12-25
  • 2018-03-30
  • 1970-01-01
  • 1970-01-01
  • 2021-05-13
相关资源
最近更新 更多