您現在的位置是:首頁 > 藝術

R資料分析:結合APA格式作圖大法講講ggplot2和ggsci,請收藏

由 Codewar 發表于 藝術2022-07-30
簡介首先安裝colourpicker包,然後你的Rstudio就會出現顏色選擇的外掛了Plot Color Helper,有了它你就可以非常方便地選出來你想要的顏色並得到顏色的表示方法:點選Plot Colour Helper得到如下圖(我只截

word怎麼弄apa格式

之前給大家寫過一篇plot的基礎操作,相信同學們應該沒有看過癮。不過主流的用的多的還是ggplot2,所以今天打算結合一個形成APA樣板格式圖片的例項寫寫ggplot2的操作和圖的配色。

關於APA格式

大家可以去到美國心理學會的官網,就可以看到APA格式的詳細介紹了:

R資料分析:結合APA格式作圖大法講講ggplot2和ggsci,請收藏

包括

論文模板、引注規則

等等,內容可以說很豐富了,對於社科類學生,不會寫論文的,這個網站就是金標準啦,強烈推薦下。

不過我們今天關注的是裡面的figure的標準,點開主頁的Tables and Figures我們進入到下一個介面:

R資料分析:結合APA格式作圖大法講講ggplot2和ggsci,請收藏

裡面有表格模板,和figure模板,像表格模板裡面,迴歸分析如何做表,因子分析如何做表等等的,人家都給了標準模板,這些不就是好多同學想要的嗎,好多同學跑來諮詢的嗎?一股腦人家美國心理學會全給大家整理好了,推薦一波

。具體到figure模板,裡面有這麼多:

R資料分析:結合APA格式作圖大法講講ggplot2和ggsci,請收藏

像樣本納入排除的流程圖怎麼做,路徑分析的圖怎麼做,質性研究,混合設計研究的圖等等應有盡有無所不有,只能說---真好!

那麼本文希望將下面的這一幅APA官網上的示例柱狀圖用ggplot2做出來,並在做過程中結合著給大家寫寫ggplot2的常見操作(ggplot2的作圖原理我看網上已經有很多了,大家可以自行去搜索學習,本文略過)

R資料分析:結合APA格式作圖大法講講ggplot2和ggsci,請收藏

例項操練

我的畫圖示例資料如下:

R資料分析:結合APA格式作圖大法講講ggplot2和ggsci,請收藏

可以看到資料中有我們畫柱狀圖需要的score和誤差線需要的upper和lower的值,和分組變數reward。

第一步我們將對映關係處理好:

viz_data_one %>% ggplot(aes(x = age_group, y = framing_score, fill = reward, ymin = lower, ymax = upper))

形成下圖,在上面的程式碼中我只是告訴ggplot,我的xy軸分別是那兩個變數,用什麼變數去對映到填充色,同時上下限分別是多少,僅此而已,我並沒有告訴它應該用什麼geom去代表我的資料,所以ggplot不知道,它也不會給你展示任何的geometry,所以程式碼執行後輸出除了對映的xy軸,就沒了,如下:

R資料分析:結合APA格式作圖大法講講ggplot2和ggsci,請收藏

在上面的程式碼繼續往下寫,我知道我需要一個柱狀圖,所以geometry應該是geom_bar,同時我要用來畫柱子的變數-score就代表柱子的高度,不需要進行統計轉換,所以寫引數stat = ‘identity’;我需要3組柱子並排排列,同時設定柱子之間的寬度(position_dodge(。6))和柱子的寬度(width),到此時寫出程式碼如下:

geom_bar(stat = ‘identity’,color=‘black’,position = position_dodge(。6),width = 。5)

上面程式碼中的position_dodge就是要求柱子並列排列,裡面的第一個引數就是並列的寬度,width = 。5設定的是柱子的寬度,執行程式碼後效果如下:

R資料分析:結合APA格式作圖大法講講ggplot2和ggsci,請收藏

感覺還不錯哦。

下一步我們需要將誤差條加上,這又是另一個geom了,此時我們繼續加一個geometry,叫做geom_errorbar,同樣的

我們的誤差條和柱子一樣需要並列排列,同時我們的誤差棒的寬度也得減少,於是我們設定width = .1,同時position = position_dodge(.6)

,寫出程式碼如下:

geom_errorbar(width = 。1, position = position_dodge(。6))

執行後輸出如下:

R資料分析:結合APA格式作圖大法講講ggplot2和ggsci,請收藏

到現在圖中有兩個geom,一個bar,一個是errorbar,我們的資料資訊已經全部透過geometry展示出來了。

接下來修飾細節,首先是改變顏色,我們需要指定一下對映的顏色,具體來講我們是改變fill的填充色,所以需要用到scale_fill_manual函式。

那麼顏色怎麼樣去選呢?或者怎麼快速找到你心儀的顏色呢?

首先安裝colourpicker包,然後你的Rstudio就會出現顏色選擇的外掛了Plot Color Helper,有了它你就可以非常方便地選出來你想要的顏色並得到顏色的表示方法:

R資料分析:結合APA格式作圖大法講講ggplot2和ggsci,請收藏

點選Plot Colour Helper得到如下圖(我只截了一張,你可以選各種顏色的):

R資料分析:結合APA格式作圖大法講講ggplot2和ggsci,請收藏

透過這麼一下,我就選了下面3個顏色,並且寫出如下程式碼:

scale_fill_manual(values = c(“#FAFAFA”, “#FFA500”, “#6CA6CD”))

此時再執行輸出結果如下:

R資料分析:結合APA格式作圖大法講講ggplot2和ggsci,請收藏

接下來我們要處理一些圖中的非資料元素(non-data elements),比如背景,比如各種標籤,首先我們改xy軸的標籤和圖例的title,需要用到labs函式,寫出程式碼如下:

labs( x = “Age Group”,y = “Framing Score”,fill = NULL,title = “Low Risk”)

上面的程式碼,x = “Age Group”,y = “Framing Score”這都很簡單,因為我們的圖例是針對fill的,那麼此時fill在labs中就是圖例的title,上面的程式碼將圖例的title拿掉了,同時加上了整個圖的title。

還有我們需要將xy軸的結合位點設定為0,這個操作是針對y軸的,需要用到scale_y_continuous,程式碼如下:

scale_y_continuous(expand = expansion(0), limits = c(0, 0。4), breaks = seq(0, 。4, 。1))

上面的程式碼中expand是控制y軸的上下限的伸展程度的,expansion(0)就意味著y軸不做任何拓展,limits設定y軸的界限(

其實是資料量的界限

),breaks設定y軸上的ticks。

執行後得到下圖:

R資料分析:結合APA格式作圖大法講講ggplot2和ggsci,請收藏

到這兒還有很多的非資料元素需要改動,需要用到theme函式,原圖的背景版是白的,我們需要panel。background引數來設定背景版,同時我希望整幅圖的title居中加粗,plot。title可以實現我的需求,同理我們需要修正座標軸得用到axis。line,axis。title和axis。text,需要修改座標軸上的小標可以用axis。ticks等等;

上面提到的這些都叫做非資料繪圖元素,對於每一種元素都有對應的元素函式,比如element_line(改變相應元素的線條型別),element_text(改變相應元素的文字,包括大小,粗細。。。)等等:

Each element is associated with an element function, which describes the visual properties of the element。 For example, element_text() sets the font size, colour and face of text elements like plot。title。

限於本文的篇幅,也沒法給大家介紹的很詳細,大家可以搜搜這本書《ggplot2: Elegant Graphics for Data Analysis》,網上都有免費的,感興趣的同學可以去閱讀學習,到這兒,我們的程式碼寫出如下:

theme( plot。margin = unit(c(1, 1, 1, 1), “cm”), panel。background = element_blank(), plot。title = element_text(size = 22, face = “bold”, hjust = 0。5, margin = margin(b = 15)), axis。line = element_line(color = “black”), axis。title = element_text(size = 22, color = “black”, face = “bold”), axis。text = element_text(size = 22, color = “black”), axis。text。x = element_text(margin = margin(t = 10)), axis。text。y = element_text(size = 17), axis。title。y = element_text(margin = margin(r = 10)), axis。ticks。x = element_blank(), legend。position = c(0。20, 0。8), legend。background = element_rect(color = “black”), legend。text = element_text(size = 15), legend。margin = margin(t = 5, l = 5, r = 5, b = 5), legend。key = element_rect(color = NA, fill = NA) )

到此,執行上面的程式碼後得到下圖:

R資料分析:結合APA格式作圖大法講講ggplot2和ggsci,請收藏

基本上和APA官網上的示例格式一樣了,示例完成!

ggsci的使用

接下來介紹ggsci,這是一個比較高階的雜誌配色板:

ggsci offers a collection of high-quality color palettes inspired by colors used in scientific journals, data visualization libraries, science fiction movies, and TV shows。

這麼說吧,你圖畫好了,像按照雜誌配色,就使用這個包就行,十分簡單好用,這個包提供包括自然出版集團Nature Publishing Group,美國科學促進會American Association for the Advancement of Science,新英格蘭雜誌The New England Journal of Medicine,還有jama,Lancet等等頂級期刊配色,所以想要成為大佬,得抓緊學會使用ggsci了。

用起來也很簡單,做好圖之後直接改動相應的scale就行

,比如我剛剛做的圖是用scale_fill_manual來定義顏色的,我直接將這行程式碼改為scale_fill_aaas,我就可以得到Science雜誌的配色如下:

R資料分析:結合APA格式作圖大法講講ggplot2和ggsci,請收藏

Science配色

改為scale_fill_npg,我便可以得到nature雜誌的配色:

R資料分析:結合APA格式作圖大法講講ggplot2和ggsci,請收藏

nature雜誌配色

改為scale_fill_nejm,我便可以得到新英格蘭醫學雜誌的配色:

R資料分析:結合APA格式作圖大法講講ggplot2和ggsci,請收藏

NEJM配色

不得不說高階雜誌的調色盤,還是挺好看的

有沒有一種看了上面的內容感覺發Science有望的感覺,如果有,請收藏本文並轉發擴散,謝謝大家啦,如果還沒有也請收藏本文,說不定下次再回看就有了,哈哈哈哈。

祝福大家早日成為大佬。

小結

今天結合一個畫圖示例,給大家整理了些許的ggplot2作圖思路和配色的操作,如果每有ggplot原理的掌握的話估計看起來還是比較吃力,基本原理大家隨意搜搜都能搜得到資源的。

感謝大家耐心看完,自己的文章都寫的很細,重要程式碼都在原文中,請轉發本文到朋友圈後私信回覆“資料鏈接”獲取所有資料和本人收集的學習資料。如果對您有用請先記得收藏,再點贊分享。

也歡迎大家的意見和建議,大家想了解什麼統計方法都可以在文章下留言,說不定我看見了就會給你寫教程哦,有疑問歡迎私信,有合作意向請直接滴滴我。

如果你是一個大學本科生或研究生,如果你正在因為你的統計作業、資料分析、模型構建,科研統計設計等發愁,如果你在使用SPSS, R,Python,Mplus, Excel中遇到任何問題,都可以聯絡我。因為我可以給您提供最好的,最詳細和耐心的資料分析服務。

如果你對Z檢驗,t檢驗,方差分析,多元方差分析,迴歸,卡方檢驗,相關,多水平模型,結構方程模型,中介調節,量表信效度等等統計技巧有任何問題,請私信我,獲取詳細和耐心的指導。

If you are a student and you are worried about you statistical #Assignments, #Data #Analysis, #Thesis, #Reports, #Composing, #Quizzes, Exams。。 And if you are facing problem in #SPSS, #R-Programming, #Excel, Mplus, then contact me。 Because I could provide you the best services for your Data Analysis。

Are you confused with statistical Techniques like z-test, t-test, ANOVA, MANOVA, Regression, Logistic Regression, Chi-Square, Correlation, Association, SEM, multilevel model, mediation and moderation etc。 for your Data Analysis。。。??

Then Contact Me。 I will solve your Problem。。。

加油吧,打工人!

往期精彩

R資料分析:ROC曲線與模型評價例項

R資料分析:用R語言做潛類別分析LCA

R資料分析:什麼是人群歸因分數Population Attributable Fraction

R語言:利用caret的dummyVars函式設定虛擬變數

R文字挖掘:情感分析

R資料分析:如何用R做驗證性因子分析及畫圖,例項操練

R資料分析:如何用R做多重插補,例項操練

R資料分析:傾向性評分匹配完整例項(R實現)

R資料分析:手把手教你畫列線圖(Nomogram)及解讀結果

R資料分析:臨床預測模型的樣本量探討及R實現

R資料分析:樣本量計算的底層邏輯與實操,pwr包

R文字挖掘:文字聚類分析

R文字挖掘:中文文字聚類

R資料分析:混合效應模型例項

R文字挖掘:中文詞雲生成,以2021新年賀詞為例

R文字挖掘:詞雲圖怎麼做,worldcloud2初識

R資料分析:線性迴歸的做法和最佳化例項

R資料分析:隨機截距交叉滯後RI-CLPM與傳統交叉滯後CLPM

R資料分析:層次聚類實操和解析,一看就會哦

R資料分析:多元邏輯斯蒂迴歸的做法

R資料分析:生存分析的做法與解釋續

R資料分析:資料缺失值的常見處理方法

R資料分析:競爭風險模型的做法和解釋二

R資料分析:交叉滯後模型非專業解釋

R資料分析:邏輯斯蒂迴歸與泊松迴歸

R資料分析:結構方程模型的分組比較,例項解析

R資料分析:結構方程模型(SEM)介紹

R資料分析:潛在剖面分析LPA的做法與解釋

R資料分析:再寫潛在類別分析LCA的做法與解釋

R資料分析:工具變量回歸的做法和解釋,例項解析

R資料分析:論文中的軌跡的做法,潛增長模型和增長混合模型

R資料分析:互動作用的簡單斜率圖做法及解釋

R資料分析:縱向分類結局的分析-馬爾可夫多型模型的理解與實操

R機器學習:樸素貝葉斯與支援向量機的原理與實現

R資料分析:潛變數與降維方法(主成分分析與因子分析)

R資料分析:如何用lavaan包做結構方程模型,例項解析

R資料分析:工具變量回歸與孟德爾隨機化,例項解析

R資料分析:孟德爾隨機化分析文獻解析和例項操練

R機器學習:分類演算法之K最鄰進演算法(KNN)的原理與實現

R資料分析:二分類因變數的混合效應,多水平logistics模型介紹

R資料分析:跟隨top期刊手把手教你做一個臨床預測模型

推薦文章