【问题标题】:Plot multiple datasets with ggplot使用 ggplot 绘制多个数据集
【发布时间】:2016-03-25 20:08:34
【问题描述】:

我想在同一张图中绘制两组不同的点:A = [1 2; 3 4]B = [1 3; 2 4]。我需要存储情节,所以我的想法是使用myPlot <- qplot,后跟ggsave

使用这种方法,如何绘制多个数据集而不出现错误formal argument "data" matched by multiple actual arguments

这是我现在使用的代码:

yPlot <- qplot(A[,1], A[,2], data = A[1:2], geom="point",
                B[,1], B[,2], data = B[1:2], geom="point") + xlim(0, 10) 
ggsave(filename="Plot.jpg", plot=myPlot, width = 12, height = 8)

【问题讨论】:

    标签: r plot ggplot2


    【解决方案1】:

    这是在同一图中绘制两个数据框的模板:

    A = data.frame(x = rnorm(10),y=rnorm(10))
    B = data.frame(x = rnorm(10),y=rnorm(10))
    ggplot(A,aes(x,y)) +geom_point() +geom_point(data=B,colour='red') + xlim(0, 10) 
    

    或等效:

    qplot(x,y,data=A)  +geom_point(data=B,colour='red') + xlim(0, 10) 
    

    如果您想并排绘制图形,请参阅 ?par 并查找“mfcol”和“mfrow”的描述

    除了 ggsave,请参阅 ?pdf

    【讨论】:

    • 谢谢!如果 A 和 B 的大小不同怎么办?
    • 您的意思是数据框中的行数不同吗?如果是这样,这两种解决方案都应该仍然有效。
    • 您使用的是矩阵还是数据框?如果是这样,您可能想使用 as.data.frame 将它们强制转换为数据帧。此外,ggplot 将 asthetics 映射到变量名称(ggplot 将 position 视为 asthetic),这就是为什么我不必将名称 x 和 y 提供给geom_point()。因此,您需要具有相同名称的 data.frames。如果您使用通常的表示法(2 行 X 10 列),那么您想使用类似:a = as.data.frame(t(A)); names(a) &lt;- c('x','y')
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-07-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-24
    • 1970-01-01
    相关资源
    最近更新 更多