本篇內容介紹了“R語言怎么利用barplot()制作條形圖的各種實例”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!
函數barplot()可以繪制條形圖,其格式為
barplot(height)
height是一個向量或者矩陣,使用horiz=TRUE可以生成一個水平的條形圖,
例子
注意條形圖常用來統計分類變量每一鐘元素的頻數,此時可以運用table()進行處理分類變量,其可以統計分類變量的各個元素的頻次。處理后的結果為table格式而barplot()可以識別table格式
table()函數可以統計列各種元素出現的次數
counts <- table(Arthritis$Improved) counts barplot(counts,xlab = "Improvement",ylab = "Frequency",main = "Simple Bar Ploy")
例子2
barplot()參數horiz可以指定圖形是否為水平的條形圖
注意生成的水平的條形圖時,x,y軸的名稱不會跟著變換所以x,y軸的名稱應同時跟著變換
barplot(counts,horiz = TRUE ,ylab = "Improvement",xlab = "Frequency",main = "Simple Bar Ploy")
如果像上面的例子那樣,繪制的類別型變量是一個因子或有序因子,可以直接使用plot()函數快速創建條形圖,這樣就不用再通過table()函數進行處理變量。圖片效果與例子1相同
plot(Arthritis$Improved,xlab = "Improvement",ylab = "Frequency",main = "Simple Bar Ploy") #繪制水平的條形圖 plot(Arthritis$Improved,horiz=TRUE,xlab = "Improvement",ylab = "Frequency",main = "Simple Bar Ploy")
如果height是一個矩陣而不是一個向量,則繪制結果將是一幅堆砌條形圖或分組條形圖
當beside=FALSE(默認值),則生成堆砌條形圖–矩陣的每一列都將生成一個條形
當beside=TRUE,則生成分組條形圖–矩陣中的每一列都表示一個分組,各列的中值將并列而不是堆砌
注意barplot()中的height要么是向量要么是矩陣,不能是data.frame但是可以是table格式
opar <- par(no.readonly = TRUE) par(opar) par(mfrow=c(1,2)) counts <- table(Arthritis$Improved,Arthritis$Treatment) counts #繪制堆砌條形圖 barplot(counts,main = "Stacked Bar Plot",xlab = "Treatment",ylab="Frequency", col = c("red","yellow","green"),legend=row.names(counts)) #繪制分組條形圖 barplot(counts,beside = TRUE,main = "Stacked Bar Plot",xlab = "Treatment",ylab="Frequency", col = c("red","yellow","green"),legend=row.names(counts))
使用數據整合函數 aggregate()并將結果傳遞給barplot()函數,來創建表示均值,中位數,標準值等條形圖
能夠如此作圖的原因是因為我們可以向作圖函數barplot()只傳遞一個數值向量,再通過參數names.arg指定橫坐標的標簽,(arg為英文自變量的含義)
這樣我們我們輸入各個分組后各組的平均值的值向量、在通過參數names.arg指定各組名稱為橫坐標標簽就可以制作成一個條形圖了
#使用數據整合函數aggregate()并將結果傳遞給barplot()函數,來創建表示均值,中位數,標準差等條形圖 #生成要作圖的數據框 states <- data.frame(state.region,state.x77) #根據列state.region對列states$Illiteracy進行分組并求每組的均值。 #by = list(state.region)指定分組變量 #states$Illiteracy為被分組的變量 #FUN=mean是指定處理被分組的變量的函數 means <- aggregate(states$Illiteracy,by = list(state.region),FUN=mean) #設定數值只能保留2位小數 options(digits = 2) #barplot()函數可以輸入沒有索引的向量,但是這個時候就沒有橫坐標的標簽, #這時就需要通過names.arg參數指定(arg為自變量的意思) par(opar) barplot(means$x,names.arg = means$Group.1) title("Mean Illiteracy Rate")
cex.names參數調整字號
names.arg指定字符向量作為條形的標簽圖
las可以調整標簽的參數,las=2為水平方向,las=0為垂直方向
par(mar=c(5,8,4,2)) #las調整標簽的參數,2為水平,0為垂直 par(las=2) library(vcd) counts <- table(Arthritis$Improved) barplot(counts, main = "Treatment Outcome", horiz = TRUE, #調整標簽字體大小 cex.names = 0.8, #修改標簽文本 names.arg = c("No Improvement","Some Improvement","Marked Improvement"))
棘狀圖–棘狀圖對堆砌條形圖進行了重縮放,這樣讓每列生成的條形圖的高度均為1,換句話說它把每一列的數值替換為此數值在這一列數值總和的占比。
棘狀圖可以由vcd包中的函數spine()繪制
library(vcd) attach(Arthritis) counts <- table(Treatment,Improved) spine(counts,main="Spinogram Example")
能夠制作條形圖的函數有三個分別是barplot()函數,plot()函數和vcd包中的spine()函數
plot()函數可以直接輸入分類變量,不用再通過table()處理分類變量把它變成含有分類變量各個元素頻數的表格。
spine()函數可以生成棘狀圖
條形圖可以繪制成水平的,但是此時應注意修改x軸坐標的名稱
當需要繪制條形圖的是一個數據框時此時會生成堆砌或者分組的條形圖。生成什么樣的條形圖由參數beside決定,當beside=FALSE時生成堆砌的條形圖(每一列的數值將堆砌在一個條形上),否則生成分組的條形圖
當函數barplot()的參數height是一個數值向量時(只有數值不附帶索引),此時可以通過names.arg參數指定x軸刻度的標簽
“R語言怎么利用barplot()制作條形圖的各種實例”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。