ggplot2根据随机生成的变量名

时间:2018-02-08 20:00:41

标签: r ggplot2

我有一个散点图,显示了使用以下方法从我的数据框中随机选择的两个变量:

df %>%
  ggplot(aes(x=df[,sample(2:503, 1)], y=df[,sample(2:503, 1)]))

但是,我无法确定哪个列是随机生成的。我希望列标题显示在X轴和Y轴上。

2 个答案:

答案 0 :(得分:4)

您可以对列名称而不是列进行采样,然后使用aes_string指定使用字符串而不是表达式绘制美学:

reprex::reprex_info()
#> Created by the reprex package v0.1.1.9000 on 2018-02-08

library(ggplot2)
set.seed(1)

vars <- names(mtcars)
ggplot(mtcars, aes_string(sample(vars, 1), sample(vars, 1))) + geom_point()

答案 1 :(得分:1)

也许是这样的:

library(tidyverse)

首先是一些数据

df <- as.data.frame(matrix(rnorm(1000), ncol = 10))

首先生成采样列数据帧:

df %>%
  select(c(sample(1:10, 1), sample(1:10, 1))) -> df2

使用colnames作为xlab和ylab:

ggplot()+
    geom_point(aes(x = df2[,1] , y = df2[,2]))+
    xlab(colnames(df2)[1])+
    ylab(colnames(df2)[2])

enter image description here