您好,登錄后才能下訂單哦!
小編給大家分享一下利用R語言的ggplot2包繪制直方圖,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
一 繪制基本直方圖
準備數據及R包
library(ggplot2)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 weight1 F 492 F 563 F 604 F 435 F 576 F 58
1.1 基本直方圖
ggplot(df, aes(x=weight)) +geom_histogram(binwidth=1,color="black",fill="white")# 改變 bins 和 顏色
1.2 添加均值線
ggplot(df, aes(x=weight)) +geom_histogram(binwidth=1,color="black", fill="lightblue",linetype="dashed")+ #設置框線類型,顏色和fill的顏色geom_vline(aes(xintercept=mean(weight)), color="blue", linetype="dashed", size=1) #添加均值線,設置線型,顏色等
1.3 添加密度曲線
ggplot(df, aes(x=weight)) + geom_histogram(aes(y=..density..), colour="black", fill="white")+ # 需要密度形式 geom_density(alpha=.2, fill="#FF6666")
二 分組設置顏色 線型等
2.1 分組更改線型顏色
ggplot(df, aes(x=weight, color=sex)) +geom_histogram(fill="white", alpha=0.5, position="identity")
其中position可選 “identity”, “stack”, “dodge”. 默認值是 “stack”.
2.2 分組添加均值線
library(plyr)mu <- ddply(df, "sex", summarise, grp.mean=mean(weight))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
自定義顏色
# Use custom color palettesp+scale_color_manual(values=c("#999999", "#E69F00", "#56B4E9"))# Use brewer color palettesp+scale_color_brewer(palette="Dark2")# Use grey scalep + scale_color_grey() + theme_classic() + theme(legend.position="top")
分組更改fill的顏色
ggplot(df, aes(x=weight, fill=sex, color=sex)) + geom_histogram(binwidth=1,position="identity", alpha=0.5)+ geom_vline(data=mu, aes(xintercept=grp.mean),linetype="dashed")
三 匯總展示
ggplot(df, aes(x=weight, color=sex, fill=sex))+geom_histogram(binwidth=1,aes(y=..density..), 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 ="Density")+theme_classic()
以上是“利用R語言的ggplot2包繪制直方圖”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。