【发布时间】:2015-11-26 02:05:27
【问题描述】:
假设我有两个数据框
df1 = data.frame(x=1:10)
df2 = data.frame(x=11:20)
我想要一个散点图,这两个系列定义了坐标。做起来很简单
plot(df1$x,df2$x)
就我目前所知的 ggplot2 而言,我也可以做到
df = data.frame(x1 = df1$x, x2 = df2$x)
ggplot(data = df, aes(x=x1, y=x2)) + geom_point()
rm(df)
但这(对我而言)比不创建新数据框要慢,难以阅读,并且可能导致错误增加(删除错误的数据框,覆盖所需的数据框,忘记删除多余的数据框杂乱无章等)。我真的需要创建一个单独的数据框来容纳已经存在的数据吗?为什么下面的第一行只列出了“数据”下的一个数据框,而第二行却没有?
ggplot(data = df1, aes(x=df1$x, y=df2$x)) + geom_point()
ggplot( aes(x=df1$x, y=df2$x)) + geom_point()
【问题讨论】:
-
ggplot(data.frame(x=df1$x, y=df2$x), aes(x,y)) + geom_point()怎么样? -
如果您坚持不创建另一个
data.frame,您可以执行以下操作,ggplot() + geom_point(aes(x=df1$x, y=df2$x))、ggplot(data=NULL, aes(x=df1$x, y=df2$x)) + geom_point() -
这三个都有效。
-
@randy 你知道 ggplot 只是在制作另一个数据框,对吧?
-
当然,但是来自使用
plot(df1$x,df2$x)并尝试将我的代码转换为使用 ``ggplot` 是一场噩梦,如果我需要占用我的一百个 4000x100维度数据框对应于不同的实验,然后管理数千个仅为个别地块构建的数据框。