R可视化学习(1)--直方图

简介: 本篇介绍如何使用R软件和ggplot2包来制作直方图,我们需要用到geom_histgramh函数,也可以用geom_vline函数去增加线条展示平均值。

本篇介绍如何使用R软件和ggplot2包来制作直方图,我们需要用到geom_histgramh函数,也可以用geom_vline函数去增加线条展示平均值。

6cd7a1a2174a2dee55b476423f51643.png

准备数据

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 histogram
ggplot(df, aes(x=weight)) + geom_histogram()
# Change the width of bins
ggplot(df, aes(x=weight)) + 
  geom_histogram(binwidth=1)
# Change colors
p<-ggplot(df, aes(x=weight)) + 
  geom_histogram(color="black", fill="white")
p

719bf85ad1e1a55a7379fe56920ff2f.png

增加平均值与密度图

# Add mean line
p+ geom_vline(aes(xintercept=mean(weight)),
            color="blue", linetype="dashed", size=1)
# Histogram with density plot
ggplot(df, aes(x=weight)) + 
 geom_histogram(aes(y=..density..), colour="black", fill="white")+
 geom_density(alpha=.2, fill="#FF6666")

f1ee94d5bc84ec93b25a15dd572be73.png

改变线形与颜色

# Change line color and fill color
ggplot(df, aes(x=weight))+
  geom_histogram(color="darkblue", fill="lightblue")
# Change line type
ggplot(df, aes(x=weight))+
  geom_histogram(color="black", fill="lightblue",
                 linetype="dashed")

2a9e26ccf29106b7f3ff294ec3c1323.png

分组展示

library(plyr)
mu <- ddply(df, "sex", summarise, grp.mean=mean(weight))
head(mu)
# Change histogram plot line colors by groups
ggplot(df, aes(x=weight, color=sex)) +
  geom_histogram(fill="white")
# 重叠 histograms
ggplot(df, aes(x=weight, color=sex)) +
  geom_histogram(fill="white", alpha=0.5, position="identity")
# 交错 histograms
ggplot(df, aes(x=weight, color=sex)) +
  geom_histogram(fill="white", position="dodge")+
  theme(legend.position="top")
# Add mean lines
p<-ggplot(df, aes(x=weight, color=sex)) +
  geom_histogram(fill="white", position="dodge")+
  geom_vline(data=mu, aes(xintercept=grp.mean, color=sex),
             linetype="dashed")+
  theme(legend.position="top")
p

9c34e193550e0a1b4bf4ce59e639730.png

d34b7709390585bf5b0be70e8c68c9c.png

自定义线条颜色

自定义填充color改为fill即可

# Use custom color palettes
p+scale_color_manual(values=c("#999999", "#E69F00", "#56B4E9"))
# Use brewer color palettes
p+scale_color_brewer(palette="Dark2")
# Use grey scale
p + scale_color_grey() + theme_classic() +
  theme(legend.position="top")

db0118d743df4df9c7a3ffd0d8c5159.png

自定义主题与文本

# Basic histogram
ggplot(df, aes(x=weight, fill=sex)) +
  geom_histogram(fill="white", color="black")+
  geom_vline(aes(xintercept=mean(weight)), color="blue",
             linetype="dashed")+
  labs(title="Weight histogram plot",x="Weight(kg)", y = "Count")+
  theme_classic()
# Change line colors by groups
ggplot(df, aes(x=weight, color=sex, fill=sex)) +
  geom_histogram(position="identity", alpha=0.5)+
  #geom_density(alpha=0.6)+
  geom_vline(data=mu, aes(xintercept=grp.mean, color=sex),
             linetype="dashed")+
  scale_color_manual(values=c("#999999", "#E69F00", "#56B4E9"))+
  scale_fill_manual(values=c("#999999", "#E69F00", "#56B4E9"))+
  labs(title="Weight histogram plot",x="Weight(kg)", y = "Count")+
  theme_classic()
  p<-ggplot(df, aes(x=weight, color=sex)) +
  geom_histogram(fill="white", position="dodge")+
  geom_vline(data=mu, aes(xintercept=grp.mean, color=sex),
             linetype="dashed")
# Continuous colors
p + scale_color_brewer(palette="Paired") + 
  theme_classic()+theme(legend.position="top")
# Discrete colors
p + scale_color_brewer(palette="Dark2") +
  theme_minimal()+theme_classic()+theme(legend.position="top")
# Gradient colors
p + scale_color_brewer(palette="Accent") + 
  theme_minimal()+theme(legend.position="top")

e58e81d5654a96edfc17a5f41e8126f.png

参考链接: http://www.sthda.com/english/wiki/ggplot2-box-plot-quick-start-guide-r-software-and-data-visualization

目录
打赏
0
0
0
0
8
分享
相关文章
使用R语言进行多维缩放分析
【4月更文挑战第27天】本文介绍了R语言中的多维缩放分析(MDS)技术,用于高维数据的可视化。MDS通过映射数据点到低维空间保持距离或相似性,帮助理解数据结构。R中的`cmdscale`和`isoMDS`函数可用于构建MDS模型,而`dist`计算距离矩阵。通过实例展示了如何分析消费者对品牌评价,`stressplot`和`procrustes`函数则用于模型解释和验证。R还支持经典MDS、度量MDS和非度量MDS等高级主题,为数据探索提供强大工具。
146 0
R绘图实战|GSEA富集分析图
GSEA(Gene Set EnrichmentAnalysis),即基因集富集分析,它的基本思想是使用预定义的基因,将基因按照在两类样本中的差异表达程度排序,然后检验预先设定的基因集合是否在这个排序表的顶端或者底端富集。
2806 0
R绘图实战|GSEA富集分析图
【100天精通Python】Day61:Python 数据分析_Pandas可视化功能:绘制饼图,箱线图,散点图,散点图矩阵,热力图,面积图等(示例+代码)
【100天精通Python】Day61:Python 数据分析_Pandas可视化功能:绘制饼图,箱线图,散点图,散点图矩阵,热力图,面积图等(示例+代码)
749 0
|
6月前
R语言基于表格文件的数据绘制具有多个系列的柱状图与直方图
【9月更文挑战第9天】在R语言中,利用`ggplot2`包可绘制多系列柱状图与直方图。首先读取数据文件`data.csv`,加载`ggplot2`包后,使用`ggplot`函数指定轴与填充颜色,并通过`geom_bar`或`geom_histogram`绘图。参数如`stat`, `position`, `alpha`等可根据需要调整,实现不同系列的图表展示。
108 9
Seaborn可视化学习笔记(一):可视化神经网络权重分布情况
这篇文章是关于如何使用Seaborn库来可视化神经网络权重分布的教程,包括函数信息、测试代码和实际应用示例。
133 0
直方图基础
直方图基础。
75 1
R语言绘制圈图、环形热图可视化基因组实战:展示基因数据比较
R语言绘制圈图、环形热图可视化基因组实战:展示基因数据比较
|
10月前
如何用R语言绘制生成正态分布图表
如何用R语言绘制生成正态分布图表
R语言用igraph绘制网络图可视化
R语言用igraph绘制网络图可视化
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等