R語言-如何給直方圖加標簽

看代碼吧~

hist(data$MEDV,col="grey")#可以看到目標數據的總體分佈
legend(35,170,c("min:5","median:21.2","mean:22.51","max:50"),fill=c("lightblue","wheat"))

補充:R語言作圖——histogram(直方圖)

最近小仙同學很是煩惱,本以為自己已經掌握瞭ggplot2作圖的語法,用read.csv(), ggplot()+geom_point()/boxplot()/violinplot()…就可以畫遍天下圖表,結果卻發現到真正畫圖的時候,還是會出現不少的小問題。

比如小仙最近要畫一個直方圖,最開始用hist()函數試瞭一下,看瞭下形狀, 好像因為數據取值范圍跨度太大(最大值104,724,最小值30),這個圖畫出來有點醜,於是決定用ggplot美化一下。

調整之後好看是好看瞭,但是大傢有沒有看出什麼不對的地方,明明bins=10但是隻畫出8個格子,之後調整bins的值,每次都會比我指定的值少2個格子。

而且,圖中第一個格子(取值范圍0-1250)應該有700多個數據,但是圖上顯示隻有不到300個,問題出在哪裡呢?

小仙同學百思不得其解。

在geom_histogram()函數中,bins就是用來指定分組數目(格子),為什麼總是會少兩個?

小仙同學考慮到自己能力有限,決定量力而行,另辟蹊徑。

於是設置另外一個參數breaks,終於找回瞭丟失的格子

經過此事,小仙同學深刻認識到瞭自己的有限水平,哈哈。不過還是分享一下,希望能幫助到大傢。實際的數據可真是比書上的例子難處理呢。

按照慣例寫一下整個作圖的過程。

Step1. 繪圖數據的準備

首先要把你想要繪圖的數據調整成R語言可以識別的格式,建議大傢在excel中保存成csv格式。

Step2. 繪圖數據的讀取

data<-read.csv(“your file path”, header = T)

#註釋:header=T表示數據中的第一行是列名,如果沒有列名就用header=F

Step3.繪圖所需package的安裝、調用

library(ggplot2)

#註釋:package使用之前需要調用

Step4.繪圖

p<-ggplot(data, aes(x=data$銷量)) +
geom_histogram(breaks=seq(0,10000,1000))+ xlim(0,10000)
p

以上為個人經驗,希望能給大傢一個參考,也希望大傢多多支持WalkonNet。如有錯誤或未考慮完全的地方,望不吝賜教。