一般来说,我对 R 和统计数据非常陌生,但我需要制作一个我认为可能超出其原生能力的散点图。
我有几个观察向量,我想用它们做一个散点图,每一对都属于三类之一。我想制作一个散点图,按颜色或符号分隔每个类别。我认为这比生成三个不同的散点图要好。
我还有另一个问题,即在每个类别中,都有一个大集群,但一组中的集群比其他两组大。
有谁知道这样做的好方法?我应该安装并学习如何使用的软件包?有人做过类似的事情吗?
谢谢
一般来说,我对 R 和统计数据非常陌生,但我需要制作一个我认为可能超出其原生能力的散点图。
我有几个观察向量,我想用它们做一个散点图,每一对都属于三类之一。我想制作一个散点图,按颜色或符号分隔每个类别。我认为这比生成三个不同的散点图要好。
我还有另一个问题,即在每个类别中,都有一个大集群,但一组中的集群比其他两组大。
有谁知道这样做的好方法?我应该安装并学习如何使用的软件包?有人做过类似的事情吗?
谢谢
大簇:如果叠印是一个问题,您可以使用较低的 alpha,因此单点是暗淡的,但叠印会产生更强烈的颜色。或者您切换到二维直方图或密度估计。
require ("ggplot2")
ggplot (iris, aes (x = Sepal.Length, y = Sepal.Width, colour = Species)) + stat_density2d ()
你可能想要面对这个......
ggplot (iris, aes (x = Sepal.Length, y = Sepal.Width, fill = Species)) + stat_binhex (bins=5, aes (alpha = ..count..)) + facet_grid (. ~ Species)
虽然你也可以在没有方面的情况下制作这个情节,但物种的打印顺序会影响最终的画面。
如果你愿意让你的手有点脏(=解释和代码的链接)并计算六边形的混合颜色,你可以避免这种情况:
另一个有用的事情是对高密度区域使用 (hex)bins,并为其他部分绘制单点:
ggplot (df, aes (x = date, y = t5)) +
stat_binhex (data = df [df$t5 <= 0.5,], bins = nrow (df) / 250) +
geom_point (data = df [df$t5 > 0.5,], aes (col = type), shape = 3) +
scale_fill_gradient (low = "#AAAAFF", high = "#000080") +
scale_colour_manual ("response type",
values = c (normal = "black", timeout = "red")) +
ylab ("t / s")
为了绘图包的完整性,我还要提一下lattice
:
require ("lattice")
xyplot(Sepal.Width ~ Sepal.Length | Species, iris, pch= 20)
xyplot(Sepal.Width ~ Sepal.Length, iris, groups = iris$Species, pch= 20)
xyplot(Sepal.Width ~ Sepal.Length | Species, iris, groups = iris$Species, pch= 20)
这是“鸢尾花”数据集的经典问题之一。这是基于该数据集和 R 代码的一整套绘图项目的链接,您可能能够适应您的问题。
这是一种使用基础 R 而不是附加包的方法。
plot(iris$Petal.Length, iris$Petal.Width, pch=21,
bg=c("red","green3","blue")[unclass(iris$Species)],
main="Edgar Anderson's Iris Data")
这产生了这个数字:
从那里开始,根据您的情节,您可以开始处理 alpha/透明度级别以允许过度绘图等,但我会先从一个非常基本的图表开始构建。
虽然有很多理由坚持使用 base R,但其他软件包简化了绘图。通过显着特征分离数据是ggplot2和lattice包的优势之一。ggplot2 制作特别具有视觉吸引力的情节。@cbeleites在答案中演示了这两个软件包。
或者使用ggplot2:
ggplot(iris, aes(x = Sepal.Length, y = Sepal.Width, colour = Species)) + geom_point()
ggplot(iris, aes(x = Sepal.Length, y = Sepal.Width)) + geom_point() + facet_grid(~Species)
哪个生产