FigDraw 10. SCI 文章绘图之直方图 (HistogramPlot)

您所在的位置:网站首页 气象云图分析软件 FigDraw 10. SCI 文章绘图之直方图 (HistogramPlot)

FigDraw 10. SCI 文章绘图之直方图 (HistogramPlot)

2023-03-20 20:36| 来源: 网络整理| 查看: 265

桓峰基因公众号推出基于R语言绘图教程并配有视频在线教程,目前整理出来的教程目录如下:

FigDraw 1. SCI 文章的灵魂 之 简约优雅的图表配色FigDraw 2. SCI 文章绘图必备 R 语言基础 FigDraw 3. SCI 文章绘图必备 R 数据转换FigDraw 4. SCI 文章绘图之散点图 (Scatter)FigDraw 5. SCI 文章绘图之柱状图 (Barplot)FigDraw 6. SCI 文章绘图之箱线图 (Boxplot) 

FigDraw 7. SCI 文章绘图之折线图 (Lineplot)

FigDraw 8. SCI 文章绘图之饼图 (Pieplot)

FigDraw 9. SCI 文章绘图之韦恩图 (Vennplot) 

FigDraw 10. SCI 文章绘图之直方图 (HistogramPlot)

这期来聊聊韦恩图,这种图形虽然简单,但是也是文章中很常见的,今天就来看看 CNS 级别文章中的直方图该怎么绘制?

前     言

当我们提到直方图时,一定会想到直方图和密度图,一般这两种方法都会结合在一起,有着千丝万缕的联系,下面我们就来了解一下其中的含义以及绘图技巧!

统计直方图

统计直方图( Histogram),形状类似柱形图却有着与柱形图完全不同的含义。统计直方图涉及统计学的概念,首先要从数据中找出它的最大值和最小值,然后确定一个区间,使其包含全部测量数据,将区间分成若干小区间,统计测量结果出现在各小区间的频数M,以测量数据为横坐标,以频数M为纵坐标,划出各小区间及其对应的频数。在平面直角坐标系中,横轴标出每个组的端点,纵轴表示频数,每个矩形的高代表对应的频数,我们也称这样的统计直方图为频数分布直方图。

所以统计直方图的主要作用如下所示:

(1)能够显示各组频数或数量分布的情况;

(2)易于显示各组之间频数或数量的差别。通过统计直方图还可以观察和估计哪些数据比较集中,异常或者孤立的数据分布在何处。

统计直方图的基本参数如下所示。

(1)组数:在统计数据时,我们把数据按照不同的范围分成几个组,组的个数称为组数;

(2)组距:每一组两个端点的差;

(3)频数:分组内的数据元的数量除以组距。

核密度估计图

核密度估计图(kernel density plot )用于显示数据在X轴连续数据段内的分布状况。这种图表是直方图的变种,使用平滑曲线来绘制水平数值,从而得出更平滑的分布。核密度估计图比直方图优 胜的地方,在于它们不受所使用分组数量的影响,所以能更好地界定分布形状。核密度估计(kernel density estimation)是在概率论中用来估计未知的密度函数,属于非参数检验方法之一,由Rosenblatt( 1955 )和 Emanuel Parzen( 1962)/3提出,又名 Parzen 窗( Parzen window) 所谓核密度估计,就是采用平滑的峰值函数(核)来拟合观察到的数据点,从而对真实的概率分布曲线进行模拟。

基本参数

参数主要就是未来美化图形颜色、宽度等,如下:

1.binwidth:直方图组宽

2.bins:直方图组数

3.colour:边缘颜色

4.fill:填充颜色

5.xlab(), ylab() : x名称,y名称

6.xlim(), ylim() : x轴,y轴范围

7.ggtitle:图形标题

软件包安装

基础R语言中hist()函数可以实现绘制直方图,但是ggplot2更加流行,所以就讲讲这个吧!

if (!require(ggplot2)) install.packages("ggplot2") library(ggplot2) 数据读取

我们这次仍然使用iris数据:

This famous (Fisher's or Anderson's) iris data set gives the measurements in centimeters of the variables sepal length and width and petal length and width, respectively, for 50 flowers from each of 3 species of iris. The species are Iris setosa, versicolor, and virginica. iris is a data frame with 150 cases (rows) and 5 variables (columns) named Sepal.Length, Sepal.Width, Petal.Length, Petal.Width, and Species.

data("iris") head(iris) ## Sepal.Length Sepal.Width Petal.Length Petal.Width Species ## 1 5.1 3.5 1.4 0.2 setosa ## 2 4.9 3.0 1.4 0.2 setosa ## 3 4.7 3.2 1.3 0.2 setosa ## 4 4.6 3.1 1.5 0.2 setosa ## 5 5.0 3.6 1.4 0.2 setosa ## 6 5.4 3.9 1.7 0.4 setosa 绘制直方图 1. 绘制频数分布直方图

简单直方图绘制就是使用geom_histogram()即可实现直方图的绘制,如下:

ggplot(iris, aes(x = Petal.Length)) + geom_histogram(bin = 50) + theme_bw()

d699e740cd1aea00803b85e0625a3593.png

2. 绘制频率分布直方图

我们发现简单直方图给出来几个warning,建议我们使用bins=30,按照这个修改成30,看下结果:

Warning: Ignoring unknown parameters: bin stat_bin() using bins = 30. Pick better value with binwidth.

ggplot(iris, aes(x = Petal.Length, y = ..density..)) + geom_histogram(bins = 30) + theme_bw()

4d2261132e5baf00bde43f3188c8a0f9.png

3. 添加密度曲线

在直方图上添加密度曲线,这种方式在SCI绘图中也是非常常见的,经过密度线的添加可以突出数据的峰值,如下:

ggplot(iris, aes(x = Petal.Length, y = ..density..)) + geom_histogram(bins = 30) + geom_density(size = 1) + theme_bw()

c78e9ac075db64f1e2e443357ecf3b93.png

4. 美化直方图

美化其实就是通过对边框色,填充色以及透明度进行设置,如下:

ggplot(iris, aes(x = Petal.Length)) + geom_histogram(bins = 30, colour = "black", fill = "blue", alpha = 0.5) + theme_bw()

f14103b3b2dda1a73b2ce38793bc5a04.png

5. 使用默认颜色

关于颜色,我们可以设置多种颜色版,比如彩虹色。

ggplot(iris, aes(x = Petal.Length, fill = cut(Petal.Length, 10))) + geom_histogram(bins = 30) + theme_bw()

f38f6744e693f5d8fbd2c42d6e0efa45.png

6. 去掉图例

这时我们看到图例显得有些多余,因为这个不属于分组问题,所以需要我们去掉图例,通过show.legend = FALSE去掉图例。

p1


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3