使用 R 绘制矩阵(如 data.frame)

发布于 2025-01-08 00:33:40 字数 570 浏览 0 评论 0原文

这个问题比此处的类似问题更高级。预期字符数约为 20。

当我在 data.frame 中绘制内容时,我会这样做:

# t1 is a df
> plot((q1*s1+q2*s2)/(s1+s2),data=t1)

但是我可以重用这种形式的矩阵吗?

[终于可以使用 MVO,谢谢!]

> M<-matrix(data=rnorm(30),ncol=2,dimnames=list(NULL,c('q1','q2')))
> plot(M)
> x=1:dim(M)[1]
> plot(x~q1/q2,data=data.frame(M),type='l')

在此处输入图像描述

This question is more advanced than the similar here. Expected amount of chars about 20.

When I plot things in data.frame, I do it like:

# t1 is a df
> plot((q1*s1+q2*s2)/(s1+s2),data=t1)

but can I reuse this form for matrix?

[Finally working MVO, thanks!]

> M<-matrix(data=rnorm(30),ncol=2,dimnames=list(NULL,c('q1','q2')))
> plot(M)
> x=1:dim(M)[1]
> plot(x~q1/q2,data=data.frame(M),type='l')

enter image description here

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

智商已欠费 2025-01-15 00:33:40

您可以使用 with 来实现这一点

with(data.frame(mymatrix), plot((q1*s1+q2*q2)/(s1+s2)))

希望有帮助

You can use with for this

with(data.frame(mymatrix), plot((q1*s1+q2*q2)/(s1+s2)))

Hope this help

冧九 2025-01-15 00:33:40

这种绘图(您键入涉及数据框列的公式)仅适用于数据框。

如果 colnames(mymatrix)q1s1 等,那么您可以通过执行以下操作来实现效果:

plot( myformula, data=data.frame(mymatrix))

即将矩阵强制为数据帧然后使用公式。

更新演示

此功能的示例:

# construct a matrix
> mymatrix <- array(runif(10*2),dim=c(10,2))
# give it column names X and Y
> colnames(mymatrix)<-c('X','Y')
> mymatrix
               X          Y
 [1,] 0.07346608 0.81321578
 [2,] 0.09525474 0.17852467
 [3,] 0.81246522 0.45747972
 [4,] 0.01286714 0.82517127
 [5,] 0.77554012 0.87725725
 [6,] 0.71908435 0.71628493
 [7,] 0.13212848 0.67827601
 [8,] 0.65993809 0.01650703
 [9,] 0.11385161 0.99433644
[10,] 0.22750439 0.45611635
# plot Y vs X -- note you need to convert the matrix to a data frame first.
> plot(Y~X,data.frame(mymatrix))

That sort of plotting (where you type formulas involving the dataframe's columns) is only available for data frames.

If colnames(mymatrix) are q1, s1, etc, then you can achieve the affect by doing:

plot( myformula, data=data.frame(mymatrix))

i.e., coerce the matrix to a dataframe and then use the formula.

Update

An example demonstrating this works:

# construct a matrix
> mymatrix <- array(runif(10*2),dim=c(10,2))
# give it column names X and Y
> colnames(mymatrix)<-c('X','Y')
> mymatrix
               X          Y
 [1,] 0.07346608 0.81321578
 [2,] 0.09525474 0.17852467
 [3,] 0.81246522 0.45747972
 [4,] 0.01286714 0.82517127
 [5,] 0.77554012 0.87725725
 [6,] 0.71908435 0.71628493
 [7,] 0.13212848 0.67827601
 [8,] 0.65993809 0.01650703
 [9,] 0.11385161 0.99433644
[10,] 0.22750439 0.45611635
# plot Y vs X -- note you need to convert the matrix to a data frame first.
> plot(Y~X,data.frame(mymatrix))
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文