我正在尝试制作一张图表,以了解学生在年龄和学校评分方面的差异。根据学校评分,我可以很容易地根据年龄和学生考试成绩制作正常的散点图。
我还可以在x轴上制作学校评级的图表,y轴一侧的年龄和另一侧的评级。但是,虽然它比两张图更好 - 但显然不会显示更多。
这里的想法是,不仅学校评分和考试成绩之间存在相关性,而且学校评级和年龄之间存在相关性 - 所以我想找出表明这一点的最佳方式,因为他们的年龄和评级都是与得分相关联。在评分较低的学校中,一名16岁的学生应该在评分较高的学校中获得比16岁学生更多的懈怠。
我最初的想法是,x轴将是1-10个等级,而测试分数将是一个y轴,年龄将是z。但是在查了一段时间之后,我无法让surface3d()
工作或scatterplot3d()
等等。这些可能是我需要加载的功能 - 但是因为我很漂亮对R来说,我不确定。如果有人能指出我的方向,我很乐意下载正确的软件包。
此数据的子集如下所示:
Rating Score Age
1 54.911 13
1 85.665 18
3 66.246 13
3 83.103 17
3 88.556 17
3 80.631 18
4 90.562 17
4 77.799 14
4 78.771 16
5 87.912 17
6 92.113 15
7 89.275 15
7 93.556 16
7 63.177 16
7 78.258 18
8 76.116 14
9 96.351 18
9 85.06 16
9 85.664 17
10 88.487 15
我很可能也会以错误的方式思考这个问题 - 而且我可能不得不改变思维过程来学习如何制作气泡图。
但感谢所有的帮助和想法,谢谢! (并且很遗憾地将两个问题合二为一。)
编辑: 这是Excel中的快速图表,这些值显示两者之间存在正相关 - 我只是想让它变得更简洁,更直观:
答案 0 :(得分:1)
调用您的数据df
,(我是从剪贴板中的问题加载的)
df <- read.table(file = "clipboard", header = T)
如果您没有安装软件包(如果安装了软件包,只需require(scatterplot3d)
即可)
if(!require(scatterplot3d)) {
install.packages("scatterplot3d")
require(scatterplot3d)
}
制作情节
with(df, scatterplot3d(x = Rating, y = Age, z = Score))
这里的3D情节并不可怕。你也可以用颜色做2d图:
if(!require(ggplot2)) {
install.packages("ggplot2")
require(ggplot2)
}
ggplot(df, aes(x = Rating, y = Score, color = Age)) +
geom_point()
ggplot(df, aes(x = Age, y = Score, color = Rating)) +
geom_point()
答案 1 :(得分:1)
它可能在两个方面看起来更好,按年龄(或评级)分组。 lattice
包适用于这些类型的图。什么都可以调整。这个是由年龄着色的。假设您的数据为d
,
library(lattice)
xyplot(Rating ~ Score, data = d, groups = Age,
auto.key = list(title = "Age", space = "right", cex = 1.0),
par.settings = list(superpose.symbol = list(pch = 19, cex = 1)))