如何针对一列为数据矩阵的每一列绘制多条线?

Kas*_*Ali 3 r matrix ggplot2

对于存储在名为 Results 的对象中的以下 11*8 阶矩阵:

         Delta UE        RE        LS        PT        SP        JS       JS+
SRE0  0.000000  1 3.8730275 2.2721219 1.0062884 1.0047529 1.0317746 1.0318688
SRE1  0.100065  1 2.2478516 2.0595205 1.0502708 1.0453288 1.0436898 1.0764224
SRE2  0.200385  1 1.5838920 1.8793306 1.0359049 1.0437888 1.0529307 1.0753217
SRE3  0.300075  1 0.9129295 1.5360455 0.9946433 1.0320438 1.0063378 1.0654772
SRE4  0.400175  1 0.6434000 1.3150935 0.9530553 1.0172104 1.0107737 1.0564151
SRE5  0.500138  1 0.6063778 1.2876456 0.9455131 1.0165491 0.9994965 1.0553198
SRE6  0.600200  1 0.3710599 0.9537165 0.8730835 0.9945211 0.9346991 1.0369921
SRE7  0.699500  1 0.3312944 0.8793348 0.8535376 0.9914288 0.9046180 1.0314705
SRE8  0.800285  1 0.2338423 0.6966505 0.7831482 0.9657499 0.8445466 1.0169138
SRE9  0.900020  1 0.1665775 0.5328803 0.7024265 0.9296520 0.7989161 0.9850603
SRE10 1.000074  1 0.1550065 0.5047066 0.6849924 0.9231919 0.7765414 0.9821768
Run Code Online (Sandbox Code Playgroud)

我想将这个矩阵的最后 7 列与单个图中的第一列绘制(作为一条线),以便每一列具有不同的颜色或不同的线段。名为 Delta 的第一列应放置在 X 轴上,而其余列将放置在 Y 轴上。

Akh*_*air 5

我的基本想法是将Results对象从宽格式更改为长格式,然后传递到ggplot. 我喜欢使用 Hadley Wickham 的reshape2图书馆。它有一个函数,melt可以适当地堆叠您的数据,然后您可以选择按不同的变量对行进行分组。

library(reshape2) # install.packages("reshape2")

R = data.frame(Delta = c(1,2), UE = c(1,1), RE = c(3.8, 2.4))
meltR = melt(R, id = "Delta")

ggplot(meltR, aes(x = Delta, y = value, group = variable, colour = variable)) + 
  geom_line() 
Run Code Online (Sandbox Code Playgroud)


Mar*_*pov 5

尝试:

matplot(m[,1],m[,-1],type='l')
Run Code Online (Sandbox Code Playgroud)

m你的矩阵在哪里。