免费JIZZ大全

R語言ggplot繪圖基礎—密度圖的繪制

R語言ggplot繪圖基礎—密度圖的繪制

密度圖是直方圖的平滑版本,用于計算并繪制數據的核密度估計,能夠更好的界定分布的形狀。使用geom_density函數可以繪制密度圖。

繪制密度圖

使用數據如下:

set.seed(1234)
df <- data.frame(
  sex=factor(rep(c("F", "M"), each=200)),
  weight=round(c(rnorm(200, mean=55, sd=5),
                 rnorm(200, mean=65, sd=5)))
  )
head(df)
  sex weight
1   F     49
2   F     56
3   F     60
4   F     43
5   F     57
6   F     58

繪制基礎密度圖:

library(ggplot2)
# Basic density
p <- ggplot(df, aes(x=weight)) + 
  geom_density()
p
# Add mean line
p+ geom_vline(aes(xintercept=mean(weight)),
              color="blue", linetype="dashed", size=1)

?attachments-2021-09-RMhsCXNp6145a8626d357.png


attachments-2021-09-WJr7Iqw06145a39884fe7.png

?

更改線型和顏色:

# 更改線的顏色和填充
ggplot(df, aes(x=weight))+
  geom_density(color="darkblue", fill="lightblue")
# 更改線型
ggplot(df, aes(x=weight))+
  geom_density(linetype="dashed")

?attachments-2021-09-6q225nhA6145a3be7ebdb.png

?attachments-2021-09-50vHwEW46145a3cccd757.png

繪制分組密度圖

計算每組平均數:

library(plyr)
mu <- ddply(df, "sex", summarise, grp.mean=mean(weight))
head(mu)
  sex grp.mean
1   F    54.70
2   M    65.36

繪制分組密度圖:

# 更改密度圖線的顏色

# 更改密度圖線的顏色
ggplot(df, aes(x=weight, color=sex)) +
  geom_density()
# 添加平均數線
p<-ggplot(df, aes(x=weight, color=sex)) +
  geom_density()+
  geom_vline(data=mu, aes(xintercept=grp.mean, color=sex),
             linetype="dashed")
p

?attachments-2021-09-AIOswfK46145a3e3f229d.png

attachments-2021-09-L9ZxgwOI6145a3f367ef0.png

也可以使用以下功能手動更改密度打印線顏色:

?scale_color_manual():使用自定義顏色

?scale_color_brewer():使用RColorBrewer包中的調色板

?scale_color_grey():使用灰階顏色

# 使用自定義顏色
p+scale_color_manual(values=c("#999999", "#E69F00", "#56B4E9"))
# 使用RColorBrewer包中的調色板
p+scale_color_brewer(palette="Dark2")
# 使用灰階顏色
p + scale_color_grey() + theme_classic()

?attachments-2021-09-yaNvwtlz6145a406b0781.png

?attachments-2021-09-xTvFXJik6145a41431602.png

attachments-2021-09-ZAD7wZ2z6145a4209f21c.png

更改填充顏色:

# 按組更改密度圖顏色
ggplot(df, aes(x=weight, fill=sex)) +
  geom_density()
# 使用半透明填充
p<-ggplot(df, aes(x=weight, fill=sex)) +
  geom_density(alpha=0.4)
p
# 添加平均數線
p+geom_vline(data=mu, aes(xintercept=grp.mean, color=sex),
             linetype="dashed")

?attachments-2021-09-gYDcYPoF6145a5aa8de1f.png

?attachments-2021-09-nVY5Gb8W6145a5d291e81.png

?attachments-2021-09-AcIl10z06145a5f0a5397.png


也可以使用以下功能手動更改密度圖填充顏色:

?scale_fill_manual():使用自定義顏色

?scale_fill_brewer():使用RColorBrewer包中的調色板

?scale_fill_grey():使用灰階顏色

# 使用自定義顏色
p+scale_fill_manual(values=c("#999999", "#E69F00", "#56B4E9"))
# 使用RColorBrewer包中的調色板
p+scale_fill_brewer(palette="Dark2")
# 使用灰階顏色
p + scale_fill_grey() + theme_classic()

?attachments-2021-09-KN5CZ0al6145a602d49a3.png

?attachments-2021-09-5NCOGF1n6145a6143a6de.png

attachments-2021-09-iRroSKm46145a640d1ae9.png

此外,我們在網易云課堂上有各種教學視頻,有興趣可以了解一下:

1. 文章越來越難發?是你沒發現新思路,基因家族分析發2-4分文章簡單快速,學習鏈接:

2. 轉錄組數據理解不深入?圖表看不懂?點擊鏈接學習深入解讀數據結果文件,學習鏈接:;

3. 轉錄組數據深入挖掘技能-WGCNA,提升你的文章檔次,學習鏈接:

4. 轉錄組數據怎么挖掘?學習鏈接:

5.?

6. 更多學習內容:linux、perl、R語言畫圖,更多免費課程請點擊以下鏈接:


  • 發表于 2021-09-18 16:21
  • 閱讀 ( 3118 )
  • 分類:R

0 條評論

請先 登錄 后評論
安生水
安生水

256 篇文章

作家榜 ?

  1. omicsgene 560 文章
  2. 安生水 256 文章
  3. Daitoue 167 文章
  4. 生物女學霸 120 文章
  5. 紅橙子 78 文章
  6. CORNERSTONE 72 文章
  7. 生信老頑童 50 文章
  8. landy 37 文章