久久精品精选,精品九九视频,www久久只有这里有精品,亚洲熟女乱色综合一区
    分享

    ggplot2|theme主題設(shè)置,詳解繪圖優(yōu)化-“精雕細(xì)琢”

     生信補給站 2021-01-04

    學(xué)習(xí)了ggplot2的基本繪圖元素ggplot2|詳解八大基本繪圖要素,可以初步繪制出需要展示的圖形,legend可以對圖例進行細(xì)節(jié)的修改ggplot2 |legend參數(shù)設(shè)置,圖形精雕細(xì)琢,那theme有什么用呢?

    theme是解決圖是否美觀的一個工具,其與scale最大的區(qū)別在于不受數(shù)據(jù)左右先把scale做好,就是一張合格的圖;再處理theme,則是一張出色的圖。

    載入數(shù)據(jù),R包

    library(ggplot2)
    #載入數(shù)據(jù)
    data(diamonds)
    set.seed(1234)
    diamond <- diamonds[sample(nrow(diamonds), 2000), ]

    # 繪制初始圖形
    p <- ggplot(data = diamond) +geom_point(aes(x=carat, y=price, colour=color,shape=cut)) + labs(title="學(xué)習(xí)ggplot2可視化",subtitle = "參數(shù)好多學(xué)不會?",caption = "熟能生巧")
    p

    可以看到上圖的標(biāo)題,軸標(biāo)簽和圖例已經(jīng)默認(rèn)設(shè)置好了,是否可以個性化修改呢?當(dāng)然可以?。?!

    R控制臺輸入?theme即可以看到theme函數(shù)的大量參數(shù),可以實現(xiàn)更改圖形外觀的大多數(shù)要求,有四種主要類型:

    1. element_text():使用element_text()函數(shù)設(shè)置基于文本的組件,如title,subtitle 和caption等。

    2. element_line():使用element_line()設(shè)置基于線的組件,如軸線,主網(wǎng)格線和次網(wǎng)格線等。

    3. element_rect():使用element_rect()修改基于矩形的組件,如繪圖區(qū)域和面板區(qū)域的背景。

    4. element_blank():使用element_blank()關(guān)閉顯示的主題內(nèi)容。

    精雕細(xì)琢


    1 修改標(biāo)題,坐標(biāo)軸

    由于繪圖和軸標(biāo)題是文本組件,使用element_text()參數(shù)修改。

    設(shè)置title的尺寸,顏色,線高,位置

    p + theme(plot.title=element_text(size=20,
                                       face="bold",
                                       color="skyblue", #顏色
                                       hjust=0.5, #調(diào)整位置,正中間
                                       lineheight=1.2))

    設(shè)置subtitle和caption

    p + theme(plot.subtitle=element_text(size=15,
                                          face="bold",
                                          color = "red",
                                          hjust=0.5),  # subtitle
               plot.caption=element_text(size=15))  # caption

    修改坐標(biāo)軸

    p + theme(axis.title.x=element_text(vjust=1,  
                                         size=20),  # X axis title
               axis.title.y=element_text(size=10,
                                        color = "blue"),  # Y axis title
               axis.text.x=element_text(size=10,
                                        angle = 45,
                                        color = "red",
                                        vjust=.5),  # X axis text
               axis.text.y=element_text(size=10))  # Y axis text

    以上示例涵蓋了一些常用的主題修改,其中

    • vjust,控制標(biāo)題(或標(biāo)簽)和繪圖之間的垂直間距。

    • hjust,控制水平間距。將其設(shè)置為0.5將標(biāo)題居中。

    • face,設(shè)置字體(“plain”,“italic”,“bold”,“bold.italic”)

    2 修改圖例

    設(shè)置圖例標(biāo)題,文本和鍵的樣式

    圖例的關(guān)鍵是像元素一樣的圖形,因此使用element_rect()函數(shù)進行設(shè)置。

    p + theme(legend.title = element_text(size=15, color = "firebrick"),
              legend.text = element_text(size=10),
              legend.key=element_rect(fill='green'))

    刪除圖例和更改圖例位置

    圖例是主題的一個方面,因此可以使用theme()功能進行修改。其中legend.justification參數(shù)可以將圖例設(shè)置在圖中,legend.position參數(shù)用來將圖例設(shè)置在圖表區(qū)域,其中x和y軸的位置(0,0)是在圖表的左下和(1,1)是右上角。

    # No legend --------------------------------------------------
    p + theme(legend.position="None") + labs(subtitle="No Legend")

    # legend at the bottom and horizontal ------------------------
    p + theme(legend.position="bottom", legend.box = "horizontal") + labs(subtitle="Legend bottom")

    # legend at bottom-right, inside the plot --------------------
    p + theme(legend.title = element_text(size=12, color = "salmon", face="bold"),
              legend.justification=c(1,0),
              legend.position=c(0.95, 0.05),  
              legend.background = element_blank(),
              legend.key = element_blank()) +
     labs(subtitle="Legend: Bottom-Right Inside the Plot")


    3 修改繪圖背景,主軸和次軸

    更改繪圖背景

    # 更改繪圖背景和繪圖區(qū)域
    p + theme(panel.background = element_rect(fill = 'grey80'),
     plot.background=element_rect(fill="khaki"),
             plot.margin = unit(c(3, 2, 1, 1), "cm")) +  #設(shè)置繪圖區(qū)域距離邊的據(jù)類,上,右,下,左
       labs(title="Modified Background", subtitle="Change Plot Margin")  

    更改主次網(wǎng)格線以及X,Y坐標(biāo)軸

    # Change Plot Background elements -----------------------------------
    p + theme(
             panel.grid.major = element_line(colour = "burlywood", size=1.5),
             panel.grid.minor = element_line(colour = "tomato",
                                             size=0.25,
                                             linetype = "dashed"),
             panel.border = element_blank(),
             axis.line.x = element_line(colour = "darkorange",
                                        size=1.5,
                                        lineend = "butt"),
             axis.line.y = element_line(colour = "skyblue",
                                        size=1.5)) +
       labs(
            subtitle="Change Major and Minor grid, Axis Lines")

    刪除主,次網(wǎng)格線,邊框,軸標(biāo)題,文本和刻度

    p + theme(panel.grid.major = element_blank(), #主網(wǎng)格線
    panel.grid.minor = element_blank(), #次網(wǎng)格線
    panel.border = element_blank(), #邊框
    axis.title = element_blank(), #軸標(biāo)題
    axis.text = element_blank(), # 文本
    axis.ticks = element_blank()) +
    labs(title="Modified Background", subtitle="Remove major and minor axis grid, border, axis title, text and ticks")

    4 默認(rèn)主題以及自定義主題

    ggplot2 自帶主題

    theme_grey()為默認(rèn)主題,theme_bw()為白色背景主題,theme_classic()為經(jīng)典主題。

    p + theme_bw() +
    labs(subtitle="Change theme_bw")

    ggplot2 擴展包主題

    library(ggthemes)
    p + theme_economist() +
    labs(subtitle="Change theme_economist")

    #其他可選

    #theme_economist theme_economist_white theme_wsj theme_excel theme_few

    #theme_foundation theme_igray theme_solarized theme_stata theme_tufte

    自定義主題

    可根據(jù)常見需要自定義常用主題

    p + theme_MJ() + labs(subtitle = "Change theme_MJ")

    學(xué)習(xí)ggplot2的八大基本元素,了解legend的基本設(shè)置后,現(xiàn)在也清楚了主題的相關(guān)設(shè)置,就可以畫出一張出色的圖了??

      轉(zhuǎn)藏 分享 獻花(0

      0條評論

      發(fā)表

      請遵守用戶 評論公約

      類似文章 更多

      主站蜘蛛池模板: 亚洲欧美日韩在线码| 亚洲精品天堂一区二区| 亚洲AV无一区二区三区| 婷婷丁香五月六月综合激情啪| 韩国青草无码自慰直播专区 | 中文无码AV一区二区三区| 无码中文人妻视频2019| 国产欧美综合在线观看第十页| 亚洲另类精品无码专区| 亚洲av日韩在线资源| 国产SUV精品一区二区88L| 亚洲综合精品第一页| 好吊妞国产欧美日韩免费观看| 55大东北熟女啪啪嗷嗷叫| 欧美日韩一区二区三区视频播放| 26uuu另类亚洲欧美日本| 强行无套内大学生初次| 中文字幕在线国产精品| 在线精品视频一区二区三四| 亚洲av永久无码精品天堂久久| 久久五月丁香合缴情网| 中文字幕成人精品久久不卡| 国产清纯在线一区二区| av中文字幕国产精品| 伊人热热久久原色播放WWW| 一区二区中文字幕久久| 无码人妻精品一区二区三区蜜桃| 野外做受三级视频| 欧美伊人久久大香线蕉综合| 久久亚洲AV成人网站玖玖| 亚洲精品香蕉一区二区| 成人午夜福利视频镇东影视| 国产成人综合95精品视频| 中文字幕日韩有码av| 精品日本一区二区三区在线观看| 美女爽到高潮嗷嗷嗷叫免费网站| 又爽又黄无遮拦成人网站| 国产无套乱子伦精彩是白视频| 欧美一本大道香蕉综合视频| 国产AV大陆精品一区二区三区| 人妻少妇精品久久|