第十一講:R作圖-ggplot2軟體包快速入門-qplot()函數

2021-03-02 投必得醫學

在「R作圖」專輯中,我們將向大家介紹常見圖形的R作圖方法以及對應代碼解釋,幫助大家輕鬆理解和學習R作圖技巧。


首先,在這裡勘誤第六講 R作圖-詳解基本箱式圖、線圖、餅圖。我們對此錯誤表示抱歉。

原文

#創建數據group= c("Male", "Female", "Child"),  value= c(25, 25, 50)    )df

更正為

#創建數據df<-data.frame(  group= c("Male", "Female", "Child"),  value= c(25, 25, 50)    )df


第十講 R作圖-巧繪非meta分析的森林圖的勘誤內容如下:

原文

forestplot()函數在Gmisc軟體包中。所以我們需要安裝Gmisc軟體包,並導入該軟體包。

install.packages('Gmisc','Hmisc')library(Gmisc)forestplot(mean=Sweden[,"coef"],              lower=Sweden[,"lower"],             upper=Sweden[,"upper"],             labeltext=rownames(Sweden), xticks=c(-.1,-.05, 0, .05)) 

更正為

forestplot()函數在forestplot軟體包中。所以我們需要安裝forestplot軟體包,並導入該軟體包。

install.packages('forestplot')library(forestplot)forestplot(mean=Sweden[,"coef"],              lower=Sweden[,"lower"],             upper=Sweden[,"upper"],             labeltext=rownames(Sweden), xticks=c(-.1,-.05, 0, .05)) 



以下為今天的內容:

qplot()函數[在ggplot2包中]是與我們之前介紹的plot()函數非常相似的函數。它可用於輕鬆創建和組合不同類型的圖。雖然它仍然不如函數ggplot()靈活,但是它的入門學習相對ggplot()函數要容易很多。



數據必須是data.frame(列是變量,行是觀察值)。

我們使用R中自動數據集mtcars:

install.packages('ggplot2')library(ggplot2)data(mtcars)df <- mtcars[,c("mpg","cyl","wt")]head(df)

輸出結果

                   mpg cyl    wtMazda RX4         21.0   6 2.620Mazda RX4 Wag     21.0   6 2.875Datsun 710        22.8   4 2.320Hornet 4 Drive    21.4   6 3.215Hornet Sportabout 18.7   8 3.440Valiant           18.1   6 3.460



qplot()的簡化格式為:

qplot(x,y=NULL,data,geom="auto",      xlim =c(NA,NA),ylim =c(NA,NA))


·x:x值

·y:y值(可選)

·data:要使用的數據框(可選)。

·geom:指定要使用的geom的字符向量。如果指定了x和y,則默認為「點」;如果僅指定x,則默認為「直方圖」。

·xlim,ylim:x和y軸限制範圍


還可以使用其他參數,包括main,xlab,ylab和log:

·main:圖形標題

·xlab,ylab:x和y軸標籤

·log:軸是否做對數變換。允許值為「 x」,「 y」或「 xy」


請注意,自ggplot2 2.0.0版以來,不推薦使用qplot()的stat和position參數。






可以使用數值矢量或數據框的數據來創建圖:

x<-1:10;y=x*xqplot(x,y)qplot(x,y,geom=c("point","line"))qplot(mpg,wt,data=mtcars)





選項smooth用於添加具有標準誤的平滑線:

qplot(mpg,wt,data=mtcars,geom=c("point","smooth"))




參數color可是按組給點和線著色:

qplot(mpg,wt,data=mtcars,color=factor(cyl),     geom=c("point","smooth"))





可以根據連續變量或離散變量的值對點進行著色。使用參數color

qplot(mpg,wt,data=mtcars,colour=cyl)df<-mtcarsdf[,'cyl']<-as.factor(df[,'cyl'])qplot(mpg,wt,data=df,colour=cyl)qplot(mpg,wt,data=df,colour=cyl,     geom=c("point","line"))



請注意,您還可以使用以下R代碼生成第二個圖:

qplot(mpg, wt, data=df, colour=factor(cyl))


像顏色一樣,點的shape和size可以通過連續或離散變量來控制。

qplot(mpg,wt,data=mtcars,size=mpg)qplot(mpg,wt,data=mtcars,shape=factor(cyl))





參數label用於指定每個點要使用的文本:

qplot(mpg,wt,data =mtcars,label =rownames(mtcars),      geom=c("point","text"),           hjust=0,vjust=0)




在以下示例中使用PlantGrowth數據集:

data(PlantGrowth)head(PlantGrowth)

輸出結果

   weight group1   4.17  ctrl2   5.58  ctrl3   5.18  ctrl4   6.11  ctrl5   4.50  ctrl6   4.61  ctrl


·geom =「 boxplot」:繪製箱式圖

·geom =「 dotplot」:繪製點圖。需要補充參數stackdir =「 center」和binaxis =「 y」。

·geom =「violin」:繪製小提琴圖。參數trim設置為FALSE

#數值矢量繪製箱式圖x<-"1"y<-rnorm(100)qplot(x,y,geom="boxplot")#數據框繪製箱式圖qplot(group,weight,data=PlantGrowth,      geom=c("boxplot"))#點圖qplot(group,weight,data=PlantGrowth,      geom=c("dotplot"),      stackdir= "center",binaxis= "y")#小提琴圖qplot(group,weight,data=PlantGrowth,      geom=c("violin"),trim=FALSE)


按組更改顏色:

#添加jitter(抖動)並按組更改填充顏色qplot(group,weight,data=PlantGrowth,      geom=c("boxplot","jitter"),fill=group)#點圖qplot(group,weight,data=PlantGrowth,      geom= "dotplot",stackdir= "center",binaxis= "y",       color=group,fill=group)





直方圖和密度圖用於顯示數據的分布。



下面的R代碼生成一些包含按性別加權的數據(男為M;女為F):

set.seed(1234)mydata =data.frame(       sex =factor(rep(c("F","M"),each=200)),              weight =c(rnorm(200,55),rnorm(200,58)))head(mydata)

輸出結果

   sex   weight1   F 53.792932   F 55.277433   F 56.084444   F 52.654305   F 55.429126   F 55.50606



qplot(weight,data=mydata,geom= "histogram")qplot(weight,data=mydata,geom= "histogram",   fill=sex)




qplot(weight,data=mydata,geom= "density")qplot(weight,data=mydata,geom= "density",   color=sex,linetype=sex)




可以將標題添加到圖中,如下所示:

qplot(weight,data =mydata,geom = "density",     xlab = "Weight (kg)",ylab = "Density",           main = "Density plot of Weight")



參考內容:Alboukadel Kassambara, GGPlot2 Essentials for Great Data Visualization in R

好了,本期講解就先到這裡。小夥伴們趕緊試起來吧。在下一講中,我們將進行ggplot2-繪製箱式圖的講解。歡迎關注,投必得醫學,手把手帶您走入R語言的世界。


快掃二維碼撩客服,

帶你進入投必得醫學交流群,

讓我們共同進步!

↓↓


- END -


長按二維碼關注「投必得醫學」,更多科研乾貨在等你!

相關焦點

  • plotnine: Python版的ggplot2作圖庫
    R語言的ggplot2繪圖能力超強,python雖有matplotlib,但是語法臃腫,使用複雜,入門極難,seaborn的出現稍微改善了matplotlib代碼量問題,但是定製化程度依然需要藉助matplotlib,使用難度依然很大。
  • R語言包,掌握這10個就夠了!(含資源下載)
    一、數據可視化ggplot2ggplot2是最常用、最受用戶們喜愛的作圖工具包了,被譽為數據作圖的標杆。它做出的圖不僅漂亮,而且可以涵蓋很多複雜的信息。網上也有大量關於它的教程,學習資源很豐富。ggplot2做出來的圖更漂亮,但它入門難啊~lattice則適合入門選手,作圖速度較快,還能進行三維繪圖,這是ggplot2不具備的。
  • 一文讀懂ggplot2數據可視化
    ggplot2的命令是一種用R實現的繪圖語言ggplot2的代碼相對容易理解,設定各種參數較為方便,圖形也十分美觀,能用相對簡單的代碼在圖形中呈現出非常豐富的信息。不過,ggplot2的語法與傳統R函數的調用方式有很大差別,所以不少人反映學起來有些困難。在ggplot2出現以前,R繪圖都是調用函數,再通過改變函數的參數實現的。
  • 社會科學研究中的R語言與數據可視化系列直播課
    主要講解ggplot2軟體包的使用,也會附帶介紹R的基本操作和基本圖形製作步,本次系列課劉博士主要會介紹靜態圖形的繪製,而在之後開設系列課程中會介紹動態圖形的製作與呈現。課程大綱第一講:R介紹(1月9日 19:30——21:30)1. 基本計算2. 數據類型3. 軟體包的安裝與獲取幫助4. 基本統計量的獲取5. R軟體的數據導入6.
  • 如何通過Google來使用ggplot2可視化
    正好看到一些公司的科研結題報告裡面非常贊的圖都是ggplot2出品的,就下定決心學一下。老規矩,先看點中文資料,接觸最早是Y叔的ggplot系列,作為初學者入門指引綽綽有餘了。把代碼在R裡面原樣輸出看看效果,把數據和代碼和圖形在腦海中形成連接,最後留在我心底的就只有映射這一核心思想。
  • R語言 ggplot2 繪圖入門,看完你就理解ggplot2的繪圖邏輯了
    R語言最擅長的繪圖包是ggplot2,由於很多朋友沒有接觸過ggplot2,必須要對其語言方式有個初步的認識。所以入門學習是必須的。公眾號先前若干篇文章已經介紹ggplot2繪圖的基本方法(具體可以關注文末連結),為推動學習,今天介紹再次系統的一番。
  • R與生物專題 |第十二講 R作圖-ggplot2繪製箱式圖
    # 將可變劑量從數字轉換為因子變量ToothGrowth$dose<-as.factor(ToothGrowth$dose)head(ToothGrowth)len supp dose 1 4.2 VC 0.5 2 11.5 VC 0.5 3 7.3 VC 0.5 4 5.8
  • ggplot2簡易教程
    概述:ggplot2是R語言流行好用的畫圖包,功能強大,靈活性好。
  • 全棧數據之R語言常用包和函數
    當然,有比較文藝和優雅的——ggplot2系統,看《ggplot2:Elegant Graphics for Data Analysis》。還有數據挖掘方面的書:《Data Mining with Rattle and R》,主要是用Rattle軟體,個人比較喜歡Rattle!當然,Rattle不是最好的,Rweka也很棒!
  • 帶你從生信小白到精通R語言!所有難點一一攻破!限時免費送
    >4、斯坦福:公開課-機器學習40講5、山東大學 生物信息學(魏天迪148講)6、北京大學:生物信息學(高歌41講)7、北京大學:生物信息學公開課(61講)8、清華BI培訓班-R語言繪圖9、清華BI培訓班
  • R 語言入門不得不知的七個小知識
    1995年採用通用公共許可協議,使之成為免費軟體。因為其免費開源的特點,不僅可以同時運行在各種平臺上(Linux、Windows、MacOS 等),而且可以利用 R 包站在巨人的肩膀上工作。如果你是 R 語言的初學者,下面七個小知識或許能夠幫助你~1.
  • R語言的ggplot2做平滑的折線圖簡單小例子
    之前的圖文  跟著Nature Genetics學畫圖~ggplot2畫折線圖並在指定區域添加灰色背景 畫折線圖的遇到的一個問題是:ggplot2默認的折線圖畫出來基本都是帶尖的,有沒有辦法將折線圖變得平滑一點呢?
  • ggplot2高效實用指南 (可視化腳本、工具、套路、配色)
    R包ggseqlogo |繪製序列分析圖編者按:數據可視化是解析、理解和展示數據不可缺少的一部分。長文多圖預警,這是關於ggplot2使用的極詳細教程(190+圖),是入門和晉級參考的不二手冊。前面部分是關於qplot的使用,後面是ggplot2圖層的使用。原文使用R自帶數據集,後面有生信寶典出品的針對生信常見作圖的ggplot2使用教程。
  • 手握這些網站,分分鐘搞定R語言自學!
    R語言作為一款免費、開源的統計繪圖軟體,近年來可謂科研界的新寵兒。但由於其入門較難、debug能力要求較高,常常讓小白們望而卻步。今天筆者給大家帶來在自學R語言過程中發現的一些寶藏網站,助你快速完成從入門到萌新的蛻變!
  • R語言實戰(19)——使用ggplot2進行高級繪圖
    19.1 ggplot2包介紹ggplot2包是使用R進行數據可視化的重要工具,提供一個全面的、基於語法的、連貫一致的圖形生成系統,允許用戶創建新穎的、有創新性的數據可視化圖形。ggplot2的語法1. 在ggplot2中,圖是採用串聯起來(+)號函數創建的。每個函數修改屬於自己的部分。2. ggplot()函數設置圖形但沒有自己的視覺輸出。
  • Tidy時代R語言學習的一些ABC
    作為一種統計程式語言,R最初的用戶主要集中在學術領域,開源的優勢和快速、便利的統計建模,可以讓研究人員擺脫昂貴又不夠靈活的各種商業軟體。大數據革命的出現,將R帶到了數據科學舞臺的中央,R語言從學術界破圈而出,獲得了迅猛的發展。然而,R本身作為統計語言的一些固有缺點在越來越複雜的數據問題面前也逐漸暴露出來。比如,R的語法不夠規範,計算效率慢、工業化部署能力差等等。
  • 用R也可以跑Python了
    最近的KDnuggets Analytics的軟體調查中,Python和R位居數據科學和機器學習軟體的前兩名。如果你真的想提高你在數據科學領域的能力,這兩種語言你確實都應該學習。不過現在好消息來了!RStudio開發了一個名為reticulate的包。
  • R語言——ggplot2的繪圖邏輯
    在R語言裡,談及繪圖,ggplot2是最出名的繪圖包之一,作為一個繪圖神器,它提供了許許多多的功能給用戶使用,僅用短短幾行代碼,一幅幅高端大氣的圖像便躍然紙上,這可能就是ggplot2包的魅力所在。我剛開始學習ggplot2的時候只用於學術上的製圖,對深層的製圖一知半解,趁著有空便重新學習了一下ggplot2包,才發現其背後的製圖邏輯竟然跟GIS的圖層疊加有著高度的相似,下面就是我學習到的內容了。這次使用的數據集是R包內置的iris數據集,是由Edgar Anderson記錄的3種鳶尾花形態數據。
  • Matlab入門教程 | 009二維作圖:看完此文,所有初等函數的圖像都會畫了!
    前一篇推文Matlab入門教程 | 008二維作圖:一文講透plot用法介紹了plot畫圖的要領,今天我們介紹用plot畫任意初等函數的方法。  for k = 1:n      x(k) = a + (k-1)*h;  end一般初等函數作圖現在回到一般初等函數作圖的問題:設
  • R語言學習路線和常用數據挖掘包
    更深入的可以讀《Lattice:Multivariate Data Visualization with R》。上面這些都是比較普通的。當然,有比較文藝和優雅的——ggplot2系統,看《ggplot2:Elegant Graphics for Data Analysis》。