条件图形和褪色

时间:2013-07-18 23:05:04

标签: r plot contour

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

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

我研究了等高线图,但这对此无效。着色变量是因子变量。

谢谢!

graph

2 个答案:

答案 0 :(得分: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)

然后你明白了:

enter image description here

或者,您可能想要考虑使用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级,这可能看起来很糟糕。从你提供的小数据样本中,我得到了这个

enter image description here

如果因素的水平无关紧要,那么有一些很好的例子here的点数太多了。您还可以尝试查看ggplot websiteR cookbook上的一些示例。

答案 1 :(得分: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)