亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

R語言利用barplot()制作條形圖的各種實例

 更新時間:2021年03月12日 10:49:52   作者:weixin_42712867  
這篇文章主要給大家介紹了關于R語言利用barplot()制作條形圖的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

前言

函數(shù)barplot()可以繪制條形圖,其格式為

barplot(height)

height是一個向量或者矩陣,使用horiz=TRUE可以生成一個水平的條形圖,

例子

1,用條形圖統(tǒng)計分類變量的頻數(shù)

注意條形圖常用來統(tǒng)計分類變量每一鐘元素的頻數(shù),此時可以運用table()進行處理分類變量,其可以統(tǒng)計分類變量的各個元素的頻次。處理后的結果為table格式而barplot()可以識別table格式

table()函數(shù)可以統(tǒng)計列各種元素出現(xiàn)的次數(shù)

counts <- table(Arthritis$Improved)
counts 
barplot(counts,xlab = "Improvement",ylab = "Frequency",main = "Simple Bar Ploy")

例子2

生成水平的條形圖

barplot()參數(shù)horiz可以指定圖形是否為水平的條形圖

注意生成的水平的條形圖時,x,y軸的名稱不會跟著變換所以x,y軸的名稱應同時跟著變換

barplot(counts,horiz = TRUE ,ylab = "Improvement",xlab = "Frequency",main = "Simple Bar Ploy")

例子3,使用plot()函數(shù)繪制條形圖

如果像上面的例子那樣,繪制的類別型變量是一個因子或有序因子,可以直接使用plot()函數(shù)快速創(chuàng)建條形圖,這樣就不用再通過table()函數(shù)進行處理變量。圖片效果與例子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")

例子3繪制堆砌條形圖和分組條形圖

如果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))

例子4

使用數(shù)據(jù)整合函數(shù) aggregate()并將結果傳遞給barplot()函數(shù),來創(chuàng)建表示均值,中位數(shù),標準值等條形圖
能夠如此作圖的原因是因為我們可以向作圖函數(shù)barplot()只傳遞一個數(shù)值向量,再通過參數(shù)names.arg指定橫坐標的標簽,(arg為英文自變量的含義)

這樣我們我們輸入各個分組后各組的平均值的值向量、在通過參數(shù)names.arg指定各組名稱為橫坐標標簽就可以制作成一個條形圖了

#使用數(shù)據(jù)整合函數(shù)aggregate()并將結果傳遞給barplot()函數(shù),來創(chuàng)建表示均值,中位數(shù),標準差等條形圖
#生成要作圖的數(shù)據(jù)框
states <- data.frame(state.region,state.x77)
#根據(jù)列state.region對列states$Illiteracy進行分組并求每組的均值。
#by = list(state.region)指定分組變量
#states$Illiteracy為被分組的變量
#FUN=mean是指定處理被分組的變量的函數(shù)
means <- aggregate(states$Illiteracy,by = list(state.region),FUN=mean)
#設定數(shù)值只能保留2位小數(shù)
options(digits = 2)
#barplot()函數(shù)可以輸入沒有索引的向量,但是這個時候就沒有橫坐標的標簽,
#這時就需要通過names.arg參數(shù)指定(arg為自變量的意思)
par(opar)
barplot(means$x,names.arg = means$Group.1)
title("Mean Illiteracy Rate")

例子5,條形圖的微調(diào)

cex.names參數(shù)調(diào)整字號

names.arg指定字符向量作為條形的標簽圖

las可以調(diào)整標簽的參數(shù),las=2為水平方向,las=0為垂直方向

par(mar=c(5,8,4,2))
#las調(diào)整標簽的參數(shù),2為水平,0為垂直
par(las=2)
library(vcd)
counts <- table(Arthritis$Improved)
barplot(counts,
    main = "Treatment Outcome",
    horiz = TRUE,
    #調(diào)整標簽字體大小
    cex.names = 0.8,
    #修改標簽文本
    names.arg = c("No Improvement","Some Improvement","Marked Improvement"))

例子6,棘狀圖

棘狀圖–棘狀圖對堆砌條形圖進行了重縮放,這樣讓每列生成的條形圖的高度均為1,換句話說它把每一列的數(shù)值替換為此數(shù)值在這一列數(shù)值總和的占比。

棘狀圖可以由vcd包中的函數(shù)spine()繪制

library(vcd)
attach(Arthritis)
counts <- table(Treatment,Improved)
spine(counts,main="Spinogram Example")

結束總結

能夠制作條形圖的函數(shù)有三個分別是barplot()函數(shù),plot()函數(shù)和vcd包中的spine()函數(shù)

plot()函數(shù)可以直接輸入分類變量,不用再通過table()處理分類變量把它變成含有分類變量各個元素頻數(shù)的表格。

spine()函數(shù)可以生成棘狀圖

條形圖可以繪制成水平的,但是此時應注意修改x軸坐標的名稱

當需要繪制條形圖的是一個數(shù)據(jù)框時此時會生成堆砌或者分組的條形圖。生成什么樣的條形圖由參數(shù)beside決定,當beside=FALSE時生成堆砌的條形圖(每一列的數(shù)值將堆砌在一個條形上),否則生成分組的條形圖

當函數(shù)barplot()的參數(shù)height是一個數(shù)值向量時(只有數(shù)值不附帶索引),此時可以通過names.arg參數(shù)指定x軸刻度的標簽

到此這篇關于R語言利用barplot()制作條形圖的文章就介紹到這了,更多相關R語言barplot()條形圖內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

最新評論