R:如何可视化大型和聚集的散点图

时间:2014-12-11 18:37:20

标签: r graphics

 status = sample(c(0, 1), 500, replace = TRUE)
 value = rnorm(500)

 plot(value)
 smoothScatter(value)

我正在尝试制作一个有价值的散点图,但如果我只想绘制它,那么数据就会聚集在一起并且不是很明显。我已经尝试过smoothScatter(),这使得情节看起来更好一点,但我想知道是否有办法根据相应的状态对值进行颜色编码?

我试图看看状态和价值之间是否存在关系。什么是另一种很好地呈现数据的方法?我已经尝试了boxplot,但我想知道如何更好地制作smoothScatter()图表,或者是否有其他方法可视化它。

1 个答案:

答案 0 :(得分:1)

我假设你打算在你的例子中写plot(status, value)?无论如何,使用这些数据不会有太多的差异,但是您应该通过以下示例了解事情......

你有没有看过jitter

一些基础知识:

plot(jitter(status), value)

Simple Jitter

或者plot(jitter(status, 0.5), value)

Tighter Jitter Plot

您可以执行包ggplot2}的发烧友:

library(ggplot2)
df <- data.frame(value, status)
ggplot(data=df, aes(jitter(status, 0.10), value)) + 
  geom_point(alpha = 0.5)

ggplot 01

或者这......

ggplot(data=df, aes(factor(status), value)) +
  geom_violin()

ggplot 02

或......

ggplot(data=df, aes(x=status, y=value)) +
  geom_density2d() + 
  scale_x_continuous(limits=c(-1,2))

ggplot 03

...或

ggplot(data=df, aes(x=status, y=value)) +
  geom_density2d() +
  stat_density2d(geom="tile", aes(fill = ..density..), contour=FALSE) +
  scale_x_continuous(limits=c(-1,2))

ggplot 04

甚至是这个..

ggplot(data=df, aes(fill=factor(status), value)) +
  geom_density(alpha=0.2)

ggplot 05