ggplot2绘制密度图

ggplot2绘制密度图

密度图可以展示数值型变量的数据分布,在ggplot2中可以使用geom_dendity()功能来实现绘图

1.基础密度图

密度图的绘制只需要输入一个数值型的向量,即可以绘制密度图

require(ggplot2)#加载绘图R包
require(dplyr)#加载数据清洗包
data <- iris
data %>%  filter(Sepal.Length>2.5)%>% ggplot(aes(x=Sepal.Length))+
  geom_density(fill="#69b3a2", color="#e9ecef", alpha=0.8)
结果展示

在这里插入图片描述

2.采用theme_ipsum主题格式

hrbrthemes 包提供了一系列的主题可以选择,这些主题可以使你的图像看起来更加专业化。

require(hrbrthemes)#加载主题包
data %>% filter(data[,1]>2.5) %>% ggplot(aes(data[,1]))+
  geom_density(fill='#62b3a2',color="#e9ecef",alpha=0.7)+
  theme_ipsum()
结果展示

在这里插入图片描述

3.镜面密度图

镜面密度图的绘制需要使用y = -…density…来实现。

data1 <- data.frame(
  var1 = rnorm(1000),
  var2 = rnorm(1000, mean=2)
)
ggplot(data1,aes(x=x))+
geom_density(aes(x=var1,y=..density..),fill="#69b3a2")+
  geom_label(aes(x=4.5,y=0.25,label='variable1'))+
  geom_density(aes(x=var2,y=-..density..), fill= "#404080")+geom_label(x=4.5,y=-0.25,label='variabel2')+
  theme_ipsum()
结果展示

在这里插入图片描述

4.多组别的密度图

多组别的密度图的绘制需要fill映射分组变量来实现

require(viridis)#色彩调整的R包
require(tidyr)#数据清理的R包
data3 <- diamonds
ggplot(data3,aes(x=price,group=cut,fill=cut))+
  geom_density(alpha=0.3,adjust=1.5)+
  theme_ipsum()
结果展示

在这里插入图片描述

当你的透明度没有调整的时候,你的图像的重叠部分将会被覆盖。
ggplot(data3,aes(x=price,group=cut,fill=cut))+
  geom_density(alpha=1,adjust=1.5)+
  theme_ipsum()+
  scale_fill_viridis(discrete = T)+
  scale_color_viridis_d()
结果展示

在这里插入图片描述

5.facet_wrap()绘制密度图

facet_wrap()可以根据因子水平来绘制在不同因子水平上相应变量的密度图。

ggplot(data3,aes(x=price,group=cut,fill=cut))+
  geom_density(alpha=1,adjust=1.5)+
  theme_ipsum()+
  scale_fill_viridis(discrete = T,alpha = 0.3)+
  scale_color_viridis_d()+
  facet_wrap(~cut)
结果展示

在这里插入图片描述

6.堆积密度图

当你想将你的数据的密度堆积在一起查看不同因子水平的相对情况时,这会是一个不错的选择,但是这样做,也将看不到不同因子水平下数据的分布情况。position='fill’可以实现对密度图的堆积。

ggplot(data3,aes(x=price,group=cut,fill=cut))+
  geom_density(alpha=1,adjust=1.5,position = 'fill')+
  theme_ipsum()+
  scale_fill_viridis(discrete = T,alpha = 0.3)+
  scale_color_viridis_d()
结果展示

在这里插入图片描述
参考来源:https://r-graph-gallery.com/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值