【问题标题】:Set ggplot2 parameters to functions of inputdata in R将 ggplot2 参数设置为 R 中 inputdata 的函数
【发布时间】:2017-01-19 20:44:44
【问题描述】:

我想知道以下场景的最后一部分是否可行:

data %>% filter(var1 > 4) %>% ggplot(aes(x = var1, fill = var2)) + geom_density() + xlim(mean(.var1))

所以我希望在我试图绘制的数据的平均值处截断 x 轴。我尝试了一堆选项来引用变量,例如“.var1”、“.$var1”、“var1”,但每次我尝试运行它时,它都会警告我 R 找不到对象。

任何帮助将不胜感激!

谢谢!

【问题讨论】:

  • 通常是可以的,但你应该试试data$var1。它可能无法识别那里的数据。如果这没有帮助,请提供示例数据。编辑:我认为您必须提供 ggplot 2 值,例如 xlim(NA, 20),请参阅 ggplot xlim 文档

标签: r ggplot2 dplyr mean


【解决方案1】:

%>% 将您的数据传递给 ggplot,但在其他层中,您无法使用 magrittr 方式引用变量(例如:.$var1)。

试试这个:

data %>% 
        ggplot() + 
        aes(x = var1, fill = var2) +
        geom_density() +
        xlim(NA, mean(data$var1))

【讨论】:

  • 我现在注意到我已经忽略了问题的一个重要部分。我还对原始数据进行了一些过滤。我已经更新了这个问题。最好的解决方案是创建一个新的过滤数据集并在 ggplot 代码中引用该数据集吗?如filt_data <- data %>% filter(var1 > 4) filt_data %>% ggplot() + aes(x = var1, fill = var2) + geom_density() + xlim(NA, mean(filt_data$var1))
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-02-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多