如何使用R

时间:2017-08-01 06:29:20

标签: r ggplot2

我像ggplot2一样制作散点图

example

但我想为点的密度着色,我尝试添加alpha值,但它不能很好地指示密度。那么如何根据重量点对重叠点进行着色?

我使用的数据看起来像这样包含10万个数字(范围从0到1)(第一列是x,第二列是y):

0.07    0.04
0.02    0.12
0.00    0.03
0.14    0.10

我添加了alpha值,情节如下:+alpha

代码:

library(ggplot2)
p<-ggplot(file, aes(X1,X2)) + geom_point(size=1,alpha = 0.1)
p+labs(x= " " ,y=" ",title=" ") + xlim(0.0,1.0)+ ylim(0.0,1.0)

2 个答案:

答案 0 :(得分:0)

为了传达密度信息,点图或散点图可能不是最理想的,因为alpha很难识别。

在您的案例中查看十六进制图(http://ggplot2.tidyverse.org/reference/geom_hex.html)或热图(http://ggplot2.tidyverse.org/reference/geom_bin2d.html)。

由于我现在没有您的数据,我将只使用ggplot2个钻石数据集。您可以像这样创建上述图(两个示例都来自文档):

library(ggplot2)
ggplot(diamonds, aes(carat, price)) +
 geom_hex()

或者像这样


library(ggplot2)
ggplot(diamonds, aes(carat, price)) +
 geom_bin2d(bins = 100)

答案 1 :(得分:0)

我找到了一些方法:

1)Color scatterplot points by density  这个很好用。

2)Josh O'Brien's answer这真棒!我也想知道如何呈现密度和颜色的精确值之间的关系......

3)Create smoothscatter like plots with ggplot2这两个也很好。

我不擅长编程所以我可以在互联网上找到其他人提供的一些代码:(