【问题标题】:How to make multiple plots in r?如何在r中制作多个图?
【发布时间】:2012-05-29 10:53:40
【问题描述】:

我有一个大矩阵 mdat(1000 行和 16 列)包含第一列作为 x 变量和其他列作为 y 变量。我想要做的是在 R 中制作散点图,在同一个窗口上有 15 个数字。例如:

mdat <- matrix(c(1:50), nrow = 10, ncol=5)

在上面的矩阵中,我有 10 行和 5 列。是否可以将第一列用作 x 轴上的变量,将其他列用作 y 轴上的变量,以便在同一个窗口上有四个不同的散点图?请记住,我更喜欢par(mfrow=,因为在这种情况下,我必须运行每个图表,然后在同一个窗口中生成它们。我需要的是一个包,这样我就可以只给它数据和xy varaibeles,并在同一个窗口上显示图表。 是否有一些可用的软件包可以做到这一点?我找不到。

【问题讨论】:

  • 你能解释一下“15 个数字在同一个窗口”是什么意思吗?一张有 15 条线的图显示 15 种关系(可能有不同的颜色)?或者一个面板中有 15 个单独的图,可能是 4 行 x 4 列,缺少一个图?在第二种情况下,shuja 的答案会起作用。
  • shujas 回答工作。现在我对你的第一个案例还有其他问题。是否可以在同一个窗口上有 15 行不同颜色的行,并说明每种颜色,以便轻松区分哪种颜色代表哪个变量?
  • @user4299 大多数人会告诉你 15 种颜色太多无法区分,但请先查看我的编辑。

标签: r graph scatter-plot


【解决方案1】:

也许最简单的基本 R 方式是mfrow(或mfcol

par(mfrow = c(2, 2)) ## the window will have 2 rows and 2 columns of plots
for (i in 2:ncol(mdat)) plot(mdat[, 1], mdat[, i])

请参阅?par,了解有关进一步调整的所有信息。

base R 中的另一个不错的选择是layout(帮助中有一些很好的例子)。为了美观,您可以使用ggplot2 包,但您需要将数据重新整形为长格式。

require(ggplot2)
require(reshape2)
molten <- melt(as.data.frame(mdat), id = "V1")

ggplot(molten, aes(x = V1, y = value)) +
    facet_wrap(~ variable, nrow = 2) +
    geom_point()

或者用颜色代替构面:

ggplot(molten, aes(x = V1, y = value, color = variable)) +
    geom_point()

【讨论】:

    【解决方案2】:

    @user4299 你可以用这种形式重写 shujaa 的ggplot 命令,使用qplot 这意味着“快速绘图”,这在开始时更容易。然后使用variable 来驱动颜色,而不是刻面。因此,第一个命令产生与 shujaa 的答案相同的输出,然后第二个命令为您提供一个绘图上的所有线条,具有不同的颜色和一个图例。

    qplot(data = molten, x = V1, y = value, facets = . ~ variable, geom = "point")
    qplot(data = molten, x = V1, y = value, color = variable, geom = "point")
    

    【讨论】:

      【解决方案3】:

      也许

      library(lattice)
      x = mdat[,1]; y = mdat[,-1]
      df = data.frame(X = x, Y = as.vector(y),
                      Grp = factor(rep(seq_len(ncol(y)), each=length(x))))
      xyplot(Y ~ X | Grp, df)
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-11-09
        • 1970-01-01
        • 2020-05-07
        • 1970-01-01
        • 2020-07-06
        • 1970-01-01
        • 1970-01-01
        • 2020-04-06
        相关资源
        最近更新 更多