假设我有一个8 x 12的矩阵。
> MyMatrix <- matrix(sample.int(5, 8*12, replace = TRUE), nrow = 8, ncol = 12)
> head(MyMatrix, n = 3)
[,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] [,11] [,12]
[1,] 3 5 3 2 4 4 4 3 5 1 2 3
[2,] 5 3 5 2 2 5 2 1 4 4 3 5
[3,] 2 4 3 3 2 2 5 5 2 3 5 3
我想用存储在矩阵中的元素创建一个散点图。MyMatrix
. 具体来说,我希望让列的指数(1-12)代表scscissa的值。我想为每一个值绘制相应的行元素。x. 换句话说(考虑到上面的R输出)。
等等。
我同样希望能够用一个数据框而不是矩阵来实现同样的事情。每一列向量都是针对一个唯一的x值绘制的。在这种情况下,我没有说列索引应该代表x值,因为我想象的是,人们可能只想从DF中提取一个列的子集,因为DF不是完全由数字数据类型组成,或者只是其他列不相关。在这种情况下,你可以沿x轴设置离散的类别(例如,每个 "行 "拥有的苹果数量,每个 "行 "拥有的橘子数量),但不一定要如此*。例如,它们可以代表时间点(T1、T2、T3等)。从DF中取出的每一列的从左到右的顺序应该被保留下来,以达到绘图的目的。也就是说,交换或移动列并不是非常困难的事情)。
*毋庸置疑,最终的表示方式(数字或其他方式)不是模拟的,最终仍将是最技术意义上的离散。
你可以使用 matplot
你也可以定义不画哪一列--见第二个例子,在这个例子中,第三列被去掉了,用于绘制矩阵。
更现代的绘图方式是使用 ggplot
的方式,在这里你可以定义你的基础图,然后逐行添加,如第三个例子所示。
这一切都应该理解为一个预告。我建议大家去看看一些文献,比如 R图形食谱 以供进一步阅读。
MyMatrix <- matrix(sample.int(5, 8*12, replace = TRUE), nrow = 8, ncol = 12)
matplot(MyMatrix, type = 'l')
# if you want to leave the third column out
matplot(MyMatrix[,-3], type = 'l')
# with ggplot
library(ggplot2)
df <- data.frame(MyMatrix)
ggplot(df, aes(x=1:8))+
geom_line(aes(y = X1))+
geom_line(aes(y = X2), color='red') +
geom_line(aes(y = X3), color='green')