在单个图中绘制两个不同的矩阵

Plotting two different matrix in single plot

我有一些没有列名和行名的矩阵,我想在单个图中绘制这些矩阵,但问题是这个矩阵在 value.like 上有很大的不同,一个矩阵的值在 0.987,0.89,0.0757 而另一个矩阵的值类似于 0.0000045,0.000000345450,0.000000045893。如何绘制标度值不同的矩阵?在单个图中绘制的最佳方式应该是什么?

我已尝试将所有值转换为 0 和 1 之间的值,但它会影响图形,因此无法正常工作

我使用了以下命令但没有用:

plot((as.numeric(matrx1[1,])),type ="l",col="black",lwd=2)
lines((as.numeric(Matrix2[1,])),type ="l",col="blue",lwd=2)

矩阵 1:

     V1         V2      V3        V4        V5        V6
1 0.1302677 0.1338888 0.1375044 0.1411146 0.1447193 0.1483186 
2 0.9863382 0.9848000 0.9832758 0.9817656 0.9802694 0.9787871

Matrix 2 
        V1        V2         V3         V4         V5             V6 
1 1.355474e-06        0          0    1.355474e-06 1.355474e-06   0
2 1.804942e-06  1.804942e-06  1.804942e-06 1.804942e-06 1.804942e-06    0 

这取决于值的含义。如果两个矩阵之间存在关系,您可能不想修改这些值,尽管您将无法在一个图中绘制两个矩阵。为此,我建议缩放其中一个矩阵,以便两个矩阵中的最大元素相同。

例如,ratio = 0.9863382 / 1.804942e-06 是两个矩阵中最大的数字。然后我们需要将Matrix 2的每个数乘以这个比例。通过在绘图之前执行此操作,您将获得两个矩阵的漂亮绘图。如前所述,您将失去对两个矩阵之间关系的感知。

如果你最后这样做了,提一下缩放比例,这样每个人都明白数字是如何得到的。

如果你致力于基础 R,你可以这样做:

mat1 <- read.table(text="V1 V2 V3 V4 V5 V6
0.1302677 0.1338888 0.1375044 0.1411146 0.1447193 0.1483186
0.9863382 0.9848000 0.9832758 0.9817656 0.9802694 0.9787871", sep=" ", header=TRUE)

mat2 <- read.table(text="V1 V2 V3 V4 V5 V6
1.355474e-06 0 0 1.355474e-06 1.355474e-06 0
1.804942e-06 1.804942e-06 1.804942e-06 1.804942e-06 1.804942e-06 0", sep=" ", header=TRUE)

par(mar=c(5,4,4,4)+.1)
plot((as.numeric(mat1[1,])),type ="l",col="black",lwd=2, ylab="y1")
par(new=TRUE)
plot((as.numeric(mat2[1,])),type ="l",col="blue",lwd=2, axes=FALSE, xlab="", ylab="")
axis(4)
mtext("y2", side=4, line=2.5)

reprex package (v2.0.1)

创建于 2022-05-31