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

R語言中g(shù)gplot2繪制雙坐標(biāo)軸圖

 更新時(shí)間:2022年08月02日 15:10:06   作者:天橋下的賣藝者  
本文主要介紹了R語言中g(shù)gplot2繪制雙坐標(biāo)軸圖,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

R包ggplot2繪圖精美,可以做出很復(fù)雜的圖形,深受用戶喜愛。它的作者h(yuǎn)adley并不推薦使用ggplot2繪制雙坐標(biāo)軸圖,認(rèn)為這樣會(huì)增加讀圖的難度,但是目前需要雙坐標(biāo)軸圖應(yīng)用的場景還是很多,如下圖形直方圖和曲線分別有不同的坐標(biāo)軸,表示不同的意思,圖片展示內(nèi)容比較豐富

在這里插入圖片描述

在這里插入圖片描述

今天我們通過我們的汽車銷售數(shù)據(jù)(公眾號(hào)回復(fù):汽車銷售,可以獲得數(shù)據(jù))來演示一下ggplot2繪制雙坐標(biāo)軸圖,主要是通過sec.axis函數(shù)進(jìn)行轉(zhuǎn)換,進(jìn)行第二個(gè)坐標(biāo)軸的轉(zhuǎn)換。我們先來導(dǎo)入數(shù)據(jù)

library(foreign)
library(ggplot2)
library(plyr)
bc <- read.spss("E:/r/test/tree_car.sav",
                use.value.labels=F, to.data.frame=T)

在這里插入圖片描述

我們來看下數(shù)據(jù),car就是汽車售價(jià),age是年齡,gender是性別,inccat是收入,這里分成4個(gè)等級(jí),ed是教育程度。
我們用這個(gè)數(shù)據(jù)生成兩個(gè)子數(shù)據(jù),展示不同教育程度人群購車的區(qū)別,繼續(xù)使用原來的summarySE函數(shù)生成數(shù)據(jù),想了解這個(gè)函數(shù)的看《R語言繪制帶誤差和可信區(qū)間的折線圖》這篇文章,主要是利用這個(gè)函數(shù)生成不同類型的數(shù)據(jù)分析指標(biāo),函數(shù)的代碼如下:

summarySE <- function(data=NULL, measurevar, groupvars=NULL, na.rm=FALSE,
                      conf.interval=.95, .drop=TRUE) {
  library(plyr)
  
  # New version of length which can handle NA's: if na.rm==T, don't count them
  length2 <- function (x, na.rm=FALSE) {
    if (na.rm) sum(!is.na(x))
    else       length(x)
  }
  
  # This does the summary. For each group's data frame, return a vector with
  # N, mean, and sd
  datac <- ddply(data, groupvars, .drop=.drop,
                 .fun = function(xx, col) {
                   c(N    = length2(xx[[col]], na.rm=na.rm),
                     mean = mean   (xx[[col]], na.rm=na.rm),
                     sd   = sd     (xx[[col]], na.rm=na.rm)
                   )
                 },
                 measurevar
  )
  
  # Rename the "mean" column    
  datac <- rename(datac, c("mean" = measurevar))
  
  datac$se <- datac$sd / sqrt(datac$N)  # Calculate standard error of the mean
  
  # Confidence interval multiplier for standard error
  # Calculate t-statistic for confidence interval: 
  # e.g., if conf.interval is .95, use .975 (above/below), and use df=N-1
  ciMult <- qt(conf.interval/2 + .5, datac$N-1)
  datac$ci <- datac$se * ciMult
  
  return(datac)
}

這個(gè)函數(shù)并不是今天的主要內(nèi)容,主要是看我們生成的數(shù)據(jù)

carss<- summarySE(bc, measurevar="car", groupvars=c("gender","ed"))
carss1<- summarySE(bc, measurevar="car", groupvars=c("inccat","ed"))

我們來看看生成的兩個(gè)數(shù)據(jù)

Carss

在這里插入圖片描述

carss1

在這里插入圖片描述

carss1和carss都有ed這個(gè)數(shù)據(jù),carss1的數(shù)據(jù)比carss多,carss1有inccat這個(gè)指標(biāo)carss沒有
我們先畫一個(gè)carss數(shù)據(jù)的教育和汽車售價(jià)的直方圖

ggplot() +
  geom_col( data = carss,aes(x = ed,y = car),fill="#6794a7")

在這里插入圖片描述

上圖展示了不同教育程度買車的情況,假設(shè)我們想把carss1這個(gè)數(shù)據(jù)的inccat和ci這個(gè)指標(biāo)映射進(jìn)上圖中(不管臨床意義,只是展示數(shù)據(jù)映射),我們可以看到ci這個(gè)指標(biāo)很小0-5這樣,而汽車這個(gè)指標(biāo)的范圍是0-80,不能通過同一坐標(biāo)軸展示,所以只能通過分軸展示。主要是通過rescale函數(shù)先把ci這個(gè)指標(biāo)在在0-80區(qū)間進(jìn)行標(biāo)準(zhǔn)化轉(zhuǎn)換,然后在投射于右坐標(biāo)軸。
先把inccat轉(zhuǎn)換成因子

carss1$inccat<-as.factor(carss1$inccat)

繪圖

ggplot() +
  geom_col( data = carss,aes(x = ed,y = car),fill="#6794a7")+
  geom_line(data = carss1,aes(x = ed,y = rescale(ci,c(0,80)),colour=inccat,group=inccat),size=1.5) +
  geom_point(data = carss1,aes(x = ed,y = rescale(ci,c(0,80))),shape=21,fill="white",size=4)+
  scale_y_continuous(breaks=pretty_breaks(4),
                     sec.axis = sec_axis( ~rescale(.,c(0,5)),name = "ci",labels=sprintf('%.5f',(0:5))))

在這里插入圖片描述

圖形左軸表示直方圖中購車情況,右軸表示不同收入人群的ci情況,把圖形進(jìn)一步美化一下

ggplot() +
  geom_col( data = carss,aes(x = ed,y = car),fill="#6794a7")+
  geom_line(data = carss1,aes(x = ed,y = rescale(ci,c(0,80)),colour=inccat,group=inccat),size=1.5) +
  geom_point(data = carss1,aes(x = ed,y = rescale(ci,c(0,80))),shape=21,fill="white",size=4)+
  scale_y_continuous(breaks=pretty_breaks(4),
                     sec.axis = sec_axis( ~rescale(.,c(0,5)),name = "ci",labels=sprintf('%.5f',(0:5))))+
  labs(title="This is a Title!",subtitle="This is a Subtitle",caption="This is a Caption")+
  theme_minimal(base_size=16) %+replace% 
  theme(
    plot.caption = element_text(hjust=0),
    plot.margin = unit(c(1,0.5,1,0.5), "lines")
  )

在這里插入圖片描述

參考文獻(xiàn)

ggplot2:數(shù)據(jù)分析與圖形藝術(shù)

ggplot2雙坐標(biāo)軸的解決方案 杜雨 https://zhuanlan.zhihu.com/p/31872309

到此這篇關(guān)于R語言中g(shù)gplot2繪制雙坐標(biāo)軸圖的文章就介紹到這了,更多相關(guān)R語言 ggplot2雙坐標(biāo)軸圖內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • R語言的Dataframe常用操作使用

    R語言的Dataframe常用操作使用

    本文將結(jié)合實(shí)例代碼,介紹R語言的Dataframe常用操作使用,文中通過示例代碼介紹的非常詳細(xì),需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-06-06
  • R語言數(shù)據(jù)可視化分析天貓雙十一銷售額增長率

    R語言數(shù)據(jù)可視化分析天貓雙十一銷售額增長率

    這篇文章主要為大家介紹了R語言數(shù)據(jù)可視化來分析天貓雙十一銷售額增長率,來一探多年來歷年雙十一銷售額數(shù)據(jù)是否有造假,有需要的朋友可以借鑒參考下,希望能夠有所幫助
    2021-11-11
  • 詳解R語言中的PCA分析與可視化

    詳解R語言中的PCA分析與可視化

    這篇文章主要介紹了R語言中的PCA分析與可視化的相關(guān)資料,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-03-03
  • R語言數(shù)據(jù)讀取以及數(shù)據(jù)保存方式

    R語言數(shù)據(jù)讀取以及數(shù)據(jù)保存方式

    這篇文章主要介紹了R語言數(shù)據(jù)讀取以及數(shù)據(jù)保存方式,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-04-04
  • 使用R語言填補(bǔ)缺失值的方法

    使用R語言填補(bǔ)缺失值的方法

    這篇文章主要介紹了使用R語言填補(bǔ)缺失值的方法,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-03-03
  • R語言rmarkdown使用安裝教程

    R語言rmarkdown使用安裝教程

    markdown是文本處理的標(biāo)記語言,它的功能類似于word,但與word中各種排版、字體設(shè)置不同,markdown能使我們更專注于碼字這件事,用標(biāo)記語法來代替常見的排版格式,Rmarkdown基于R中的文本處理格式,這篇文章主要介紹了R語言rmarkdown使用安裝教程,需要的朋友可以參考下
    2024-02-02
  • R語言學(xué)習(xí)之線圖的繪制詳解

    R語言學(xué)習(xí)之線圖的繪制詳解

    線圖是反映趨勢變化的一種方式,其輸入數(shù)據(jù)一般也是一個(gè)矩陣。本文將利用R語言繪制單線圖、多線圖以及橫軸文本線圖,感興趣的可以了解一下
    2022-03-03
  • R語言 數(shù)據(jù)表匹配和拼接 merge函數(shù)的使用

    R語言 數(shù)據(jù)表匹配和拼接 merge函數(shù)的使用

    這篇文章主要介紹了R語言 數(shù)據(jù)表匹配和拼接 merge函數(shù)的使用說明,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-03-03
  • R語言 解決無法打開鏈結(jié)的問題

    R語言 解決無法打開鏈結(jié)的問題

    這篇文章主要介紹了R語言 解決無法打開鏈結(jié)的問題,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-04-04
  • R語言ggplot2包之坐標(biāo)軸詳解

    R語言ggplot2包之坐標(biāo)軸詳解

    這篇文章主要介紹了R語言ggplot2包之坐標(biāo)軸詳解,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-04-04

最新評(píng)論