如何从 R 中的 prop.table 制作折线图?
How can I make a line graph from a prop.table in R?
我想创建一个包含三条线的折线图,一条线对应下面第一列中的三个组(即 1s、2&p、3s)。我希望我的 x 轴是下面的第二列(即 np、loc、adj、V-ing、gonna),我的 y 轴是第三列中显示的相对频率。但是我不知道该怎么做。任何帮助将不胜感激。
1s np 0.83333333 0.16666667
loc 0.90909091 0.09090909
adj 0.91666667 0.08333333
V-ing 0.50000000 0.50000000
gonna 1.00000000 0.00000000
2&p np 0.78571429 0.21428571
loc 0.87500000 0.12500000
adj 0.84615385 0.15384615
V-ing 0.83333333 0.16666667
gonna 1.00000000 0.00000000
3s np 0.76315789 0.23684211
loc 0.87500000 0.12500000
adj 0.68888889 0.31111111
V-ing 0.78571429 0.21428571
gonna 1.00000000 0.00000000
您正在寻找类似的东西吗?如果是这样,您可以使用 ggplot2
包和 geom_line
函数通过传递以下美学 aes
:
来实现它
library(ggplot2)
ggplot(data = df, aes(x = XVar, y = Freq1, group = group))+
geom_line(aes(color = group))
您的数据结构(此处称为 df
)
group XVar Freq1 freq2
1: 1s np 0.8333333 0.16666667
2: 1s loc 0.9090909 0.09090909
3: 1s adj 0.9166667 0.08333333
4: 1s V-ing 0.5000000 0.50000000
5: 1s gonna 1.0000000 0.00000000
6: 2&p np 0.7857143 0.21428571
可重现数据
structure(list(group = c("1s", "1s", "1s", "1s", "1s", "2&p",
"2&p", "2&p", "2&p", "2&p", "3s", "3s", "3s", "3s", "3s"), XVar = c("np",
"loc", "adj", "V-ing", "gonna", "np", "loc", "adj", "V-ing",
"gonna", "np", "loc", "adj", "V-ing", "gonna"), Freq1 = c(0.83333333,
0.90909091, 0.91666667, 0.5, 1, 0.78571429, 0.875, 0.84615385,
0.83333333, 1, 0.76315789, 0.875, 0.68888889, 0.78571429, 1),
freq2 = c(0.16666667, 0.09090909, 0.08333333, 0.5, 0, 0.21428571,
0.125, 0.15384615, 0.16666667, 0, 0.23684211, 0.125, 0.31111111,
0.21428571, 0)), row.names = c(NA, -15L), class = c("data.table",
"data.frame"), .internal.selfref = <pointer: 0x55f7ff640350>)
我想创建一个包含三条线的折线图,一条线对应下面第一列中的三个组(即 1s、2&p、3s)。我希望我的 x 轴是下面的第二列(即 np、loc、adj、V-ing、gonna),我的 y 轴是第三列中显示的相对频率。但是我不知道该怎么做。任何帮助将不胜感激。
1s np 0.83333333 0.16666667
loc 0.90909091 0.09090909
adj 0.91666667 0.08333333
V-ing 0.50000000 0.50000000
gonna 1.00000000 0.00000000
2&p np 0.78571429 0.21428571
loc 0.87500000 0.12500000
adj 0.84615385 0.15384615
V-ing 0.83333333 0.16666667
gonna 1.00000000 0.00000000
3s np 0.76315789 0.23684211
loc 0.87500000 0.12500000
adj 0.68888889 0.31111111
V-ing 0.78571429 0.21428571
gonna 1.00000000 0.00000000
您正在寻找类似的东西吗?如果是这样,您可以使用 ggplot2
包和 geom_line
函数通过传递以下美学 aes
:
library(ggplot2)
ggplot(data = df, aes(x = XVar, y = Freq1, group = group))+
geom_line(aes(color = group))
您的数据结构(此处称为 df
)
group XVar Freq1 freq2
1: 1s np 0.8333333 0.16666667
2: 1s loc 0.9090909 0.09090909
3: 1s adj 0.9166667 0.08333333
4: 1s V-ing 0.5000000 0.50000000
5: 1s gonna 1.0000000 0.00000000
6: 2&p np 0.7857143 0.21428571
可重现数据
structure(list(group = c("1s", "1s", "1s", "1s", "1s", "2&p",
"2&p", "2&p", "2&p", "2&p", "3s", "3s", "3s", "3s", "3s"), XVar = c("np",
"loc", "adj", "V-ing", "gonna", "np", "loc", "adj", "V-ing",
"gonna", "np", "loc", "adj", "V-ing", "gonna"), Freq1 = c(0.83333333,
0.90909091, 0.91666667, 0.5, 1, 0.78571429, 0.875, 0.84615385,
0.83333333, 1, 0.76315789, 0.875, 0.68888889, 0.78571429, 1),
freq2 = c(0.16666667, 0.09090909, 0.08333333, 0.5, 0, 0.21428571,
0.125, 0.15384615, 0.16666667, 0, 0.23684211, 0.125, 0.31111111,
0.21428571, 0)), row.names = c(NA, -15L), class = c("data.table",
"data.frame"), .internal.selfref = <pointer: 0x55f7ff640350>)