【R語言】--- 直方圖

直方圖簡介

直方圖(Histogram),又稱質量分布圖,是一種統(tǒng)計報告圖,由一系列高度不等的縱向條紋或線段組成,表示數據分布的情況。 一般用橫軸(X軸)表示數據類型,縱軸(Y軸)表示分布(相應值的頻數)情況。
繪制直方圖,首先要對數據進行分組,然后統(tǒng)計每個分組內數據元的數量。 在平面直角坐標系中,橫軸標出每個組的端點,縱軸表示頻數,每個矩形的高代表對應的頻數,稱這樣的統(tǒng)計圖為頻數分布直方圖。一般要了解以下幾個名詞的概念:
組數:統(tǒng)計數據時,把數據按照不同的范圍分成幾個組,分成組的個數稱為組數;
組距:每一組兩個端點的差;
頻數:分組內的數據元的數量除以組距;

直方圖的作用

1、顯示各組頻數或者數量分布情況;
2、顯示各組間頻數或數量的差異;


直方圖構成

R繪制直方圖

可以利用hist()函數進行繪制:

hist(x, ...)
## Default S3 method:
hist(x, # x是由數據值組成的數值向量
     breaks = "Sturges", #多種格式,指定組數
     freq = NULL, #邏輯值, 默認值為TRUE , y軸顯示的是每個區(qū)間內的頻數,FALSE, 代表顯示的是頻率(= 頻數/ 總數)
     probability = !freq, #邏輯值,和 freq 參數的作用正好相反,TRUE 代表頻率, FALSE 代表頻數
     right = TRUE, #左右顯示
     density = NULL, #用線條填充柱子
     angle = 45,  #用線條填充柱子,控制線條的角度,必須和density 參數配合使用,才能發(fā)揮作用
     col = "lightgray",  #柱子的填充色
     border = NULL, #柱子的邊框的顏色,默認為black, 當border = NA 時, 代表沒有邊框
     main = paste("Histogram of" , xname), #標題
     xlim = range(breaks),  #x軸范圍
     ylim = NULL, #y軸范圍
     xlab = xname, x軸名稱
     ylab = yname, #y軸名稱
     axes = TRUE,  #邏輯值,是否顯示軸線
     plot = TRUE,  #有待研究
     labels = FALSE, #顯示在每個柱子上方的標簽
     nclass = NULL, #有待研究
     warn.unused = TRUE, ...)

案例

par(mfrow = c(3,2)
#簡單直方圖
hist(mtcars$mpg)
#增加breaks參數
hist(mtcars$mpg,
     breaks = 15,
 )
#增加col參數
hist(mtcars$mpg,
     breaks = 15,
     col = "red",
)
#增加x和y軸標題
hist(mtcars$mpg,
     breaks = 15,
     col = "red",
     xlab = "x軸標題",
     ylab = "y軸標題",
)
#增加圖標題
hist(mtcars$mpg,
     breaks = 15,
     col = "red",
     xlab = "x軸標題",
     ylab = "y軸標題",
     main = "圖片標題")
#增加border參數
hist(mtcars$mpg,
     breaks = 15,
     col = "red",
     xlab = "x軸標題",
     ylab = "y軸標題",
     main = "圖片標題",
     border = "green")
#添加密度線
hist(mtcars$mpg,
     breaks = 12,
     col = "red",
     xlab = "x軸標題",
     ylab = "y軸標題",
     main = "圖片標題",
     border = "green",
     freq = FALSE)
lines(density(mtcars$mpg),
      col = "black",
      lwd = 5)
#添加填充類型為線條,線條的角度為45度
hist(mtcars$mpg,
     breaks = 12,
     col = "red",
     xlab = "x軸標題",
     ylab = "y軸標題",
     main = "圖片標題",
     border = "black",
     freq = FALSE,
     density = 12, 
     angle = 45,
     )
lines(density(mtcars$mpg),
      col = "black",
      lwd = 5)
#添加填充類型為線條,線條的角度為45度
hist(mtcars$mpg,
     breaks = 12,
     col = "red",
     xlab = "x軸標題",
     ylab = "y軸標題",
     main = "圖片標題",
     border = "black",
     freq = FALSE,
     density = 12, 
     angle = 45,
)
#添加密度線
lines(density(mtcars$mpg),
      col = "black",
      lwd = 3)
#添加外框線
box()
#添加每個柱子上的標簽
hist(mtcars$mpg,
     breaks = 12,
     col = "red",
     xlab = "x軸標題",
     ylab = "y軸標題",
     main = "圖片標題",
     border = "black",
     freq = FALSE,
     density = 12, 
     angle = 45,
     labels = T
)
#添加密度線
lines(density(mtcars$mpg),
      col = "black",
      lwd = 3)
#添加外框線
box()

參考文獻

[1] Robert I. Kabacoff (著). R語言實戰(zhàn)(高濤/肖楠/陳鋼 譯). 北京: 人民郵電出版社.
[2] https://www.cnblogs.com/xudongliang/p/6913363.html
[3] https://zhuanlan.zhihu.com/p/259835459

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

  • 直方圖表示被存儲到范圍中的變量的值的頻率。 直方圖類似于條形圖,但不同之處在于將值分組為連續(xù)范圍。 直方圖中的每個...
    yuanyb閱讀 6,270評論 0 2
  • 本系列博客習題來自《算法(第四版)》,算是本人的讀書筆記,如果有人在讀這本書的,歡迎大家多多交流。為了方便討論,本...
    kyson老師閱讀 2,577評論 0 49
  • 常見圖表介紹及實例 什么是直方圖 直方圖(Histogram)又稱質量分布圖。是一種統(tǒng)計報告圖,由一系列高度不等的...
    橘貓吃不胖閱讀 4,634評論 0 51
  • 我是黑夜里大雨紛飛的人啊 1 “又到一年六月,有人笑有人哭,有人歡樂有人憂愁,有人驚喜有人失落,有的覺得收獲滿滿有...
    陌忘宇閱讀 8,879評論 28 54
  • 信任包括信任自己和信任他人 很多時候,很多事情,失敗、遺憾、錯過,源于不自信,不信任他人 覺得自己做不成,別人做不...
    吳氵晃閱讀 6,390評論 4 8

友情鏈接更多精彩內容