我像ggplot2一样制作散点图
但我想为点的密度着色,我尝试添加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)
答案 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这两个也很好。
我不擅长编程所以我可以在互联网上找到其他人提供的一些代码:(