R 初学者 - 尝试使用 geom_point 将数字矩阵转换为散点图

问题描述 投票:0回答:1

我通过一些在线数据科学课程学习 R 大约一个月了,我真的在努力解决一些我认为应该如此简单和基础的事情。我在这里查看了其他帖子,但找不到适合我的解决方案。我认为有些事情我不理解并且确实需要一些帮助!

我正在尝试使用 ggplot 和 geom_point 绘制 5x6 数值向量(将向量转换为数据帧之后),但我无法找出 aes 映射来正确绘制绘图。我想我可能不理解矩阵/数据框中的行和列如何相互连接。

我正在尝试绘制下面这个非常简单的函数的结果:

I <- 5
J <- 6
N <- 2000
d <- 0.021
p <- (d + 1) / 2
X <- sapply(1:I, function(i){
  d + rnorm(J, 0, 2 * sqrt(p * (1 - p) / N))
})
X

numeric matrix

我获取这些结果并将它们转换为数据框:

X_df <- data.frame(X = X)

as dataframe

但是从这里开始,我就陷入了困境。我不知道如何告诉 R 将列绘制为我的 x 值,将行绘制为我的 y 值。我正在使用 ggplot 和 geom_point 但当我尝试 x 和 y 的不同 aes 映射时出现各种错误,所以我显然错过了一些东西。我什至尝试将向量指定为列名和行名,然后将它们用作我的 aes 映射,但仍然没有成功。我确信这是非常基本和简单的,但我不知道如何做如此简单的事情,这让我发疯。情节应该是这样的:

plot

r ggplot2 geom-point
1个回答
0
投票

您需要先“整理”您的数据。

library(tidyr)
library(ggplot2)

pivot_longer(X_df, everything(), names_to=c(".value", "group"), names_pattern="(.).(.)") |>
  ggplot(aes(x=group, y=X)) +
  geom_point()

© www.soinside.com 2019 - 2024. All rights reserved.