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/

  • 13
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,使用ggplot2绘制直方的步骤如下: 1. 导入数据:假设您的数据存储在名为data的数据框中,您可以使用以下代码导入数据: ``` data <- read.csv("your_data_file.csv") ``` 2. 使用ggplot2包创建直方对象:使用以下代码创建一个基本的ggplot2直方对象。 ``` library(ggplot2) ggplot(data, aes(x = column_name)) + geom_histogram() ``` 其中,column_name是您要绘制的列名称。 3. 添加标题和标签:您可以使用以下代码为您的直方添加标题和标签。 ``` ggplot(data, aes(x = column_name)) + geom_histogram() + labs(title = "Histogram of column_name", x = "Column Name", y = "Frequency") ``` 其中,title是您要为直方添加的标题,x是X轴标签,y是Y轴标签。 4. 自定义直方:您可以根据需要自定义直方,例如更改直方的颜色、边框、组数、填充等等。以下是一些示例代码: ``` # 更改直方颜色 ggplot(data, aes(x = column_name)) + geom_histogram(fill = "steelblue", color = "white") # 更改直方组数 ggplot(data, aes(x = column_name)) + geom_histogram(bins = 20) # 添加直方边框 ggplot(data, aes(x = column_name)) + geom_histogram(fill = "steelblue", color = "white", size = 0.5) # 更改直方填充透明度 ggplot(data, aes(x = column_name)) + geom_histogram(fill = alpha("steelblue", 0.5), color = "white") # 添加密度曲线 ggplot(data, aes(x = column_name)) + geom_histogram(aes(y = ..density..), fill = "steelblue", color = "white") + geom_density(alpha = 0.2, color = "red") ``` 以上是一些示例代码,您可以根据需要进行自定义。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值