如何创建带有组颜色的geom_hex图?

时间:2019-08-30 05:12:06

标签: r

我需要复制此情节。问题在于,这里似乎有特定颜色的分组。 这是一些apk.php代码,用于生成相似的图。

R

我似乎无法复制下面显示的颜色 screenshor

1 个答案:

答案 0 :(得分:1)

在此示例中,看起来一个地方已映射到一个颜色通道(最大为10),同上映射了数十个和数百个。每个通道都映射到geom_hex层,六边形按大小缩放。

我认为ggplot目前不可能“开箱即用”,因为geom_hex几何不允许映射到大小:

  

Github问题于2018年关闭,决定为   geom_hex,但仅适用于线宽,不适用于十六进制大小本身:   https://github.com/tidyverse/ggplot2/issues/2488

     

ggplot以外的解决方法:   https://stackoverflow.com/a/16960960/6851825

也就是说,我们可以使用geom_point做类似的事情。像示例一样,创建自定义图例会花费更多的时间,但是应该可行。

# Count within each hex area:
example.hex <- hexbin::hexbin(x1, x2,
                             xbins = 30, IDs = TRUE)
value_by_hexbin <- data.frame(hexbin::hcell2xy(example.hex),
                              cell = example.hex@cell,
                              count = example.hex@count)

# Plot those counts to three layers of point, for each color channel
ggplot(value_by_hexbin, 
       aes(x, y)) +
  geom_point(aes(size = pmin(10, floor(count / 1))), color = "purple") +
  geom_point(aes(size = pmin(10, floor(count / 10))), color = "green") +
  geom_point(aes(size = pmin(10, floor(count / 100))), color = "red") +
  scale_size_area(max_size = 3) +
  coord_equal()

enter image description here