如何针对一列为Data Matrix的每列绘制多行? [英] How to Plot Multiple Lines for Each column of a Data Matrix against one Column?
问题描述
Delta UE RE LS PT SP 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.798916 1 0.9850603
SRE10 1.000074 1 0.1550065 0.5047066 0.6849924 0.9231919 0.7765414 0.9821768
我想绘制(as一行)在矩阵的最后7列与单个图中的第一列相对应,以便每列具有不同的颜色或不同的线段。名为Delta的第一列应放置在X轴上,而其余列将放在Y轴上。 ggplot2 包可以轻松完成。
你只需要为每一列提供一个单独的命令。
从一开始
结果
Delta UE RE LS PT SP JS JS JS2
SRE0 0.000000 1 3.8730275 2.2721219 1.006288 1.004753 1.031775 1.031869
SRE1 0.100065 1 2.2478516 2.0595205 1.050271 1.045329 1.043690 1.076422
SRE2 0.200385 1 1.5838920 1.8793306 1.035905 1.043789 1.052931 1.075322
SRE3 0.300075 1 0.9129295 1.5360455 1.994643 1.032044 1.006338 1.065477
SRE4 0.400175 1 0.6434000 1.3150935 1.953055 1.017210 1.010774 1.056415
SRE5 0.500138 1 0.6063778 1.2876456 1.945513 1.016549 1.999497 1.055320
SRE6 0.600200 1 0.3710599 0.9537165 1.873083 1.994521 1.934699 1.036992
SRE7 0.699500 1 0.3312944 0.8793348 1.853538 1.991429 1.904618 1.031470
SRE8 0.800285 1 0.2338423 0.6966505 1.783148 1.965750 1.844547 1.016914
SRE9 0.900020 1 0.1665775 0.5328803 1.702427 1.929652 1.798916 1.985060
SRE10 1.000074 1 0.1550065 0.5047066 1。 684992 1.923192 1.776541 1.982177
class(Results)
[1]Matrix
请注意,为了避免R上的错误,我将JS +列名称转换为JS2。
Convert to data.frame
将 Results
赋值给一个新的对象,特别是 data.frame
。
newResults< - as.data.frame(Results)
newResults
Delta UE RE LS PT SP SP JS JS2
SRE0 0.000000 1 3.8730275 2.2721219 1.006288 1.004753 1.031775 1.031869
SRE1 0.100065 1 2.2478516 2.0595205 1.050271 1.045329 1.043690 1.076422
SRE2 0.200385 1 1.5838920 1.8793306 1.035905 1.043789 1.052931 1.075322
SRE3 0.300075 1 0.9129295 1.5360455 1.994643 1.032044 1.006338 1.065477
SRE4 0.400175 1 0.6434000 1.3150935 1.953055 1.017210 1.010774 1.056415
SRE5 0.500138 1 0.6063778 1.2876456 1.945513 1.016549 1.999497 1.055320
SRE 6 0.600200 1 0.3710599 0.9537165 1.873083 1.994521 1.934699 1.036992
SRE7 0.699500 1 0.3312944 0.8793348 1.853538 1.991429 1.904618 1.031470
SRE8 0.800285 1 0.2338423 0.6966505 1.783148 1.965750 1.844547 1.016914
SRE9 0.900020 1 0.1665775 0.5328803 1.702427 1.929652 1.798916 1.985060
SRE10 1.000074 1 0.1550065 0.5047066 1.684992 1.923192 1.776541 1.982177
class(newResults)
[1]data.frame
现在它被格式化为 data.frame
,所以它会更容易处理。
$ b $ p 创建行
library(ggplot2)
ggplot(data = newResults,aes(x = Delta))+
geom_line(aes(y = UE))+
geom_line(aes(y = RE))+
geom_line(aes(y = LS))+
geom_line(aes(y = PT))+
geom_line(aes(y = SP))+
geom_line(aes(y = JS) )+
geom_line(aes(y = JS2))+
labs(y =)#如果需要,删除或更改y轴标题。
您还可以为每行选择自己的颜色并使用 color =()
在每行的 aes()
函数内。
For the following matrix of order 11*8 stored in an object named Results:
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
I want to plot (as a line) last 7 columns of this matrix against first column in a single graph such that each column has either a different color or different line segment. The first column named Delta should be placed on X-axis while rest of columns will be on Y-axis.
The ggplot2
package can accomplish this easily.
You just need to have a separate command for every column.
From the start
Results
Delta UE RE LS PT SP JS JS2
SRE0 0.000000 1 3.8730275 2.2721219 1.006288 1.004753 1.031775 1.031869
SRE1 0.100065 1 2.2478516 2.0595205 1.050271 1.045329 1.043690 1.076422
SRE2 0.200385 1 1.5838920 1.8793306 1.035905 1.043789 1.052931 1.075322
SRE3 0.300075 1 0.9129295 1.5360455 1.994643 1.032044 1.006338 1.065477
SRE4 0.400175 1 0.6434000 1.3150935 1.953055 1.017210 1.010774 1.056415
SRE5 0.500138 1 0.6063778 1.2876456 1.945513 1.016549 1.999497 1.055320
SRE6 0.600200 1 0.3710599 0.9537165 1.873083 1.994521 1.934699 1.036992
SRE7 0.699500 1 0.3312944 0.8793348 1.853538 1.991429 1.904618 1.031470
SRE8 0.800285 1 0.2338423 0.6966505 1.783148 1.965750 1.844547 1.016914
SRE9 0.900020 1 0.1665775 0.5328803 1.702427 1.929652 1.798916 1.985060
SRE10 1.000074 1 0.1550065 0.5047066 1.684992 1.923192 1.776541 1.982177
class(Results)
[1] "Matrix"
Note that I converted the "JS+" column name to "JS2" to avoid errors on R.
Convert to data.frame
Assign Results
to a new object, specifically a data.frame
.
newResults <- as.data.frame(Results)
newResults
Delta UE RE LS PT SP JS JS2
SRE0 0.000000 1 3.8730275 2.2721219 1.006288 1.004753 1.031775 1.031869
SRE1 0.100065 1 2.2478516 2.0595205 1.050271 1.045329 1.043690 1.076422
SRE2 0.200385 1 1.5838920 1.8793306 1.035905 1.043789 1.052931 1.075322
SRE3 0.300075 1 0.9129295 1.5360455 1.994643 1.032044 1.006338 1.065477
SRE4 0.400175 1 0.6434000 1.3150935 1.953055 1.017210 1.010774 1.056415
SRE5 0.500138 1 0.6063778 1.2876456 1.945513 1.016549 1.999497 1.055320
SRE6 0.600200 1 0.3710599 0.9537165 1.873083 1.994521 1.934699 1.036992
SRE7 0.699500 1 0.3312944 0.8793348 1.853538 1.991429 1.904618 1.031470
SRE8 0.800285 1 0.2338423 0.6966505 1.783148 1.965750 1.844547 1.016914
SRE9 0.900020 1 0.1665775 0.5328803 1.702427 1.929652 1.798916 1.985060
SRE10 1.000074 1 0.1550065 0.5047066 1.684992 1.923192 1.776541 1.982177
class(newResults)
[1] "data.frame"
Now it's formatted as a data.frame
so it will be easier to work with.
Create Lines
library(ggplot2)
ggplot(data = newResults, aes(x = Delta)) +
geom_line(aes(y = UE)) +
geom_line(aes(y = RE)) +
geom_line(aes(y = LS)) +
geom_line(aes(y = PT)) +
geom_line(aes(y = SP)) +
geom_line(aes(y = JS)) +
geom_line(aes(y = JS2)) +
labs(y = "") # Delete or change y axis title if desired.
You can also choose your own colors for each line with color = ()
inside the aes()
function of each line.
这篇关于如何针对一列为Data Matrix的每列绘制多行?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!