在 R 中按组分层的图需要哪些组件
What are the components needed for a plot stratified by group in R
我想在 plot/graph 中显示由第三个变量(分组变量)分隔的两个变量之间的客户关系。
显示按第三个变量分组的 x 和 y 变量之间的数据有哪些选项?
如果给绘图函数 1 个参数,它将生成一维条形图。
如果你给 plot 函数 2 个值(必须是数字),它会给你一个标准的水平轴与垂直轴的代数图。
如果您为绘图函数提供 3 个值(2 个数值和一个因子,那么您可以绘制这些点,但用颜色涂上标签)然后让标签对用户显而易见。
使用 R 的内置数据集 "Orange",您可以绘制如下图:
> View(Orange)
> summary(Orange)
plot(Orange$age, Orange$circumference, col = rainbow(5)[Orange$Tree], pch = 16, main = "Correlating Tree Age by Circumference", grid(nx = 25, ny = 25))
legend("topleft", title = "Orange Trees", fill = rainbow(5), levels(Orange$Tree))
注:彩虹(5)?为什么是5?因为列树有 1 - 5 作为因素。因为你有 3 个不同的化妆品品牌,你应该做 rainbow(3)。
这就是您获得线性回归线的方法(如果它有效)。您必须使用线性模型 (lm) 函数:
> model <- lm(Orange$circumference ~ Orange$age)
> summary(model)
> abline(model)
你也可以使用lattice库中的xyplot。
> library(xyplot)
> xyplot(circumference ~ age| Tree, data = Orange, type = c("p", "g", "r"), main = "Plots of Orange Age vs Circumference for 5 Orange Trees")
我没有粉饰我的观点,但我不需要。虽然我喜欢这个图,但我认为带有图函数的彩色涂层更适合进行统计判断,因为它将所有因素放在同一个图中。
问题:这些功能是如何工作的等等?
>?plot
>?xyplot
>?Orange
scatterplot3d 函数也很酷。你可以用它制作三维图,但你如何判断相关性受到你设置视图的 "angle" 的影响。
而且你还可以使用xyplot函数来制作更酷的图表。每个因素都有多个回归线。
>xyplot(circumference ~ age, data = Orange, groups = Tree, type = c("p", "g", "r"), main = "Plots of Orange Age vs Circumference for 5 Orange Trees", pch = 16, auto.key = TRUE)
我使用 auto.key 命令的传说非常糟糕。它可以改进,我敢肯定!
如果您想绘制两个变量:一个数值变量和一个阶乘变量,您可以这样做:使用 tapply 函数。在这里,我使用 tapply 函数来计算每棵树的所有周长。然后使用 barplot 函数。这可能是你的想法。
> sum_table <- tapply(Orange$circumference, Orange$Tree, FUN = sum)
> sum_table <- sort.default(sum_table, decreasing = TRUE, na.last = NA)
> barplot(sum_table, xlab = "Trees", ylab = "Circumference", main = "Sum of Circumferences for all 5 Orange Trees", col = "dodgerblue1"))
好的,没关系,当一个数值变量与另一个因子变量一起列出时,绘图函数默认制作箱线图。
> plot(Orange$Tree, Orange$circumference, main = "Boxplots of Orange Circumference vs Orange Trees", xlab = "Orange Trees", ylab = "Circumference")
我想在 plot/graph 中显示由第三个变量(分组变量)分隔的两个变量之间的客户关系。
显示按第三个变量分组的 x 和 y 变量之间的数据有哪些选项?
如果给绘图函数 1 个参数,它将生成一维条形图。
如果你给 plot 函数 2 个值(必须是数字),它会给你一个标准的水平轴与垂直轴的代数图。
如果您为绘图函数提供 3 个值(2 个数值和一个因子,那么您可以绘制这些点,但用颜色涂上标签)然后让标签对用户显而易见。
使用 R 的内置数据集 "Orange",您可以绘制如下图:
> View(Orange)
> summary(Orange)
plot(Orange$age, Orange$circumference, col = rainbow(5)[Orange$Tree], pch = 16, main = "Correlating Tree Age by Circumference", grid(nx = 25, ny = 25)) legend("topleft", title = "Orange Trees", fill = rainbow(5), levels(Orange$Tree))
注:彩虹(5)?为什么是5?因为列树有 1 - 5 作为因素。因为你有 3 个不同的化妆品品牌,你应该做 rainbow(3)。
这就是您获得线性回归线的方法(如果它有效)。您必须使用线性模型 (lm) 函数:
> model <- lm(Orange$circumference ~ Orange$age)
> summary(model)
> abline(model)
你也可以使用lattice库中的xyplot。
> library(xyplot)
> xyplot(circumference ~ age| Tree, data = Orange, type = c("p", "g", "r"), main = "Plots of Orange Age vs Circumference for 5 Orange Trees")
我没有粉饰我的观点,但我不需要。虽然我喜欢这个图,但我认为带有图函数的彩色涂层更适合进行统计判断,因为它将所有因素放在同一个图中。
问题:这些功能是如何工作的等等?
>?plot
>?xyplot
>?Orange
scatterplot3d 函数也很酷。你可以用它制作三维图,但你如何判断相关性受到你设置视图的 "angle" 的影响。
而且你还可以使用xyplot函数来制作更酷的图表。每个因素都有多个回归线。
>xyplot(circumference ~ age, data = Orange, groups = Tree, type = c("p", "g", "r"), main = "Plots of Orange Age vs Circumference for 5 Orange Trees", pch = 16, auto.key = TRUE)
我使用 auto.key 命令的传说非常糟糕。它可以改进,我敢肯定!
如果您想绘制两个变量:一个数值变量和一个阶乘变量,您可以这样做:使用 tapply 函数。在这里,我使用 tapply 函数来计算每棵树的所有周长。然后使用 barplot 函数。这可能是你的想法。
> sum_table <- tapply(Orange$circumference, Orange$Tree, FUN = sum)
> sum_table <- sort.default(sum_table, decreasing = TRUE, na.last = NA)
> barplot(sum_table, xlab = "Trees", ylab = "Circumference", main = "Sum of Circumferences for all 5 Orange Trees", col = "dodgerblue1"))
好的,没关系,当一个数值变量与另一个因子变量一起列出时,绘图函数默认制作箱线图。
> plot(Orange$Tree, Orange$circumference, main = "Boxplots of Orange Circumference vs Orange Trees", xlab = "Orange Trees", ylab = "Circumference")