在单个图中绘制两个不同的矩阵
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
我有一些没有列名和行名的矩阵,我想在单个图中绘制这些矩阵,但问题是这个矩阵在 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