1

我正在尝试创建一个图表,因为图表上有很多点,在绿色的边缘它开始褪色为黑色,而中心保持绿色。我目前用于创建此图表的代码是:

plot(snb$px,snb$pz,col=snb$event_type,xlim=c(-2,2),ylim=c(1,6))

我研究了等高线绘图,但这对此不起作用。着色变量是因子变量。

谢谢!

图形

4

2 回答 2

3

这是一个很大的问题ggplot2

首先,读取数据:

snb <- read.csv('MLB.csv')

使用您的数据框,您可以尝试绘制部分透明的点,并根据因子将它们设置为着色event_type

require(ggplot2)
p1 <- ggplot(data = snb, aes(x = px, y = py, color = event_type)) + 
      geom_point(alpha = 0.5)
print(p1)

然后你得到这个:

在此处输入图像描述

或者,您可能想考虑使用 将其绘制为热图geom_bin2d(),并为每个不同的 绘制构面(子图)event_type,如下所示:

p2 <- ggplot(data = snb, aes(x = px, y = py)) + 
  geom_bin2d(binwidth = c(0.25, 0.25)) + 
  facet_wrap(~ event_type)
print(p2)

它为因子的每个级别绘制了一个图,其中颜色将是每个箱中的数据点数,每侧为 0.25。但是,如果您有超过 5 或 6 个级别,这可能看起来很糟糕。从您提供的小数据样本中,我得到了这个

在此处输入图像描述

如果因素的水平无关紧要,这里有一些很好的例子说明点太多的图。您还可以尝试查看ggplot 网站R 食谱上的一些示例。

于 2013-07-19T01:36:34.320 回答
3

正如@BenBolker 指出的那样,透明度可以提供帮助,这很容易实现adjustcolor

colvect = adjustcolor(c("black", "green"), alpha = 0.2)
plot(snb$px, snb$pz,
     col = colvec[snb$event_type],
     xlim = c(-2,2),
     ylim = c(1,6))

它内置于ggplot

require(ggplot2)
p <- ggplot(data = snb, aes(x = px, y = pz, color = event_type)) +
    geom_point(alpha = 0.2)
print(p)
于 2013-07-19T01:48:03.553 回答