Rcolorbrewer和ggplot2 R:geom_hex的颜色图

时间:2018-11-20 15:04:14

标签: r matplotlib ggplot2 seaborn

我想在下面的R中制作这种类型的图,它是边际直方图和我认为的geom_hex对象的组合。这最初是一张matplotlib seaborn图。

我无法与RColorbrewer交谈。有什么想法吗?

enter image description here

到目前为止,我已经得到:

require(ggplot2)
require(RColorBrewer)
require(ggExtra)
bl<-data.frame(beta=rnorm(100),lambda=rnorm(100))

p<-ggplot(bl,aes(x=beta,y=lambda))+
  stat_bin_hex()+
  #scale_fill_gradient(palette = "Greens") Neither of these work
  #scale_fill_continuous(palette = "Greens")+
  scale_fill_brewer()+
  theme_classic()


  ggExtra::ggMarginal(p, type = "histogram")

原始代码:

x, y = np.random.multivariate_normal(mean, cov, 1000).T
with sns.axes_style("white"):

https://seaborn.pydata.org/tutorial/distributions.html

sns.jointplot(x=x, y=y, kind="hex", color="greens");

1 个答案:

答案 0 :(得分:3)

您可以使用scale_fill_gradientn并使用brewer.pal传递调色板。然后,您只需将正确的填充和颜色传递给ggMarginal

library(ggplot2)
library(RColorBrewer)
library(ggExtra)

bl <- data.frame(beta=rnorm(10000),lambda=rnorm(10000))

p <- ggplot(bl, aes(x=beta, y = lambda))+
  stat_bin_hex() +
  scale_fill_gradientn(colors = brewer.pal(3,"Greens")) +
  theme_classic() +
  theme(legend.position = "bottom")

ggMarginal(p, type = "histogram", fill = brewer.pal(3,"Greens")[1], color = "white")

reprex package(v0.2.1)于2018-11-20创建