R語言-15統計圖繪制

par(mfrow=c(2,3)) #把畫布分為兩行三列,mfrow表示以行優先填充

手工決定圖形上點的位置,可用locator()函數
在圖上添加數學符號和公式,可用expression()函數

將bar_netage, bar_age, bar_sex三個圖繪制在三列

library("Rmisc")
multiplot(bar_netage, bar_age, bar_sex, cols = 3)

頻數分布圖與滑珠圖
#畫頻數分布圖
hist(sort(datareposts_count), col='lightblue',main='微博轉發量分布',ylab="頻數",xlab="轉發量",labels=TRUE,xlim=c(0,200),ylim=c(0,3000)) #labels設為true表示顯示每一個柱的數值,xlim、ylim設定x、y軸顯示范圍 plot(ax, a$freq, xlab="微博數",ylab="頻數",main="微博數分布",col="red") #xlab,ylab為坐標軸標題,main表示圖形主標題

#畫滑珠圖
library(ggplot2)
a <- count(data$pic_num)
dd <- ddply(a,.(x,freq))
p <- ggplot(dd,aes(x=x,y=freq))
p + geom_linerange(aes(ymax=freq),color='gray',ymin=0,size=1)+geom_point(aes(color=freq),size=5)+theme_bw()+
labs(title = "微博圖片分布",x = "圖片數",y = "頻數") +scale_colour_gradient(name = "頻數")+
scale_x_continuous(limits=c(0,10), s=seq(0,10,1))
#scale_colour_gradient(name = "頻數")修改圖例標簽等同于labs(colour = "Displment")

相關系數矩陣圖與散點圖矩陣

library(corrplot)
M <- cor(data1)
corrplot(M,order = 'hclust')
#散點圖矩陣
    scatterplotMatrix(data1[,c("user_statuses_count","user_follow_count","user_urank")],diagonal = 'histogram',ellipse=TRUE,cex.main="0.5")#cex.main="0.5"表示把標題字體大小縮小為原來的50%

箱線圖

result是數據,按cluster繪制出多個箱線圖,看不同cluster的網齡分布

bar_age <- barplot(pack,col="lightblue")
bar_netage <- ggplot(result, aes(x = cluster, y = 網齡, fill =  cluster)) + 
  geom_boxplot() + 
  theme_bw() + 
  labs(x = ' cluster', y = '網齡')
image.png

頻數分布圖,使用ggplot2,美觀倒置效果

其中數據為alldata,繪制其中的“年齡”列的頻數分布圖

library(ggplot2)
library(stringr)
library(plyr)
library(dplyr)        # group_by()
library(Rmisc)        # multiplot()
fun_bar1 <- function(data, xlab, ylab, xname, yname) {
  ggplot(data, aes(xlab, ylab)) +
    geom_bar(stat = 'identity', fill = "#63B8FF") + 
    labs(x = xname, y = yname) +
    coord_flip() +  # 使圖形倒置
    theme_minimal()      # ggplot圖形的一種背景主題
}
user <- alldata %>% group_by(年齡) %>% dplyr::summarise(Freq = n())
p1 <- fun_bar1(data = user, 
               xlab = reorder(user$年齡, user$Freq),
               ylab = user$Freq,
               xname = '年齡', yname = 'Frequency')

餅圖

#二分類變量餅圖
user5 <- alldata %>% group_by(性別) %>% dplyr::summarise(Freq = n())
p <- ggplot(user5, aes(x = "", y = user5$Freq, fill = user5$性別)) + 
  geom_bar(stat = "identity", width = 1) +    
  coord_polar(theta = "y") + 
  labs(x = "", y = "", title = "")   ## 將標簽設為空
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容