我正在尝试创建一个图表,因为图表上有很多点,在绿色的边缘,它开始淡化为黑色,而中心保持绿色。我目前用于创建此图表的代码是:
plot(snb$px,snb$pz,col=snb$event_type,xlim=c(-2,2),ylim=c(1,6))
我研究了等高线图,但这对此无效。着色变量是因子变量。
谢谢!
答案 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)
然后你明白了:
或者,您可能想要考虑使用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级,这可能看起来很糟糕。从你提供的小数据样本中,我得到了这个
如果因素的水平无关紧要,那么有一些很好的例子here的点数太多了。您还可以尝试查看ggplot website或R 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)