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

    填坑-2017年的主題調整專題(基礎版):大匠致巧,隨R所圖

     微生信生物 2021-01-31

    title: “大匠致巧,隨R所圖” author: “wentao” date: “2020/12/23” output: html_document editor_options:

    大匠致巧,隨R所圖 (基礎版)

    寫在前面

    早在17年,我就說過要寫一篇設置主題的貼子,讓我們可以更好的使用R語言繪圖系統,當然主要是ggplot主題。從主題到顏色,到形狀都包含在這篇推文中。但是最近的工作,讓我將保存也包含到了這篇推文中,尤其是按照paper進行保存圖片。只是這還沒有達到完整解決圖片使用的問題,高級版本還在制作中。

    安裝github R包方式

    ##如果沒有這個包,安裝起來還是挺麻煩的
    # if (!requireNamespace("devtools", quietly = TRUE))
    # install.packages("devtools")
    #
    # devtools::install_github("calligross/ggthemeassist")

    0 用于演示的例圖

    #--主題修改--顏色修改
    library(ggplot2)
    head(iris)
    iris$Species
    p1 <- ggplot(iris) + geom_point(aes(x = Sepal.Length, y = Petal.Length,fill = Species,color = Species),pch = 21)

    p1

    1 使用R包中各種主題

    1.1 ggplot內含主題

    # 默認灰色主題
    p2_1 <- p1+theme_gray() # 默認
    # 白色主題
    p2_2 <- p1+theme_bw()
    #--實線網格
    p2_3 <- p1+theme_linedraw()
    #
    p2_4 <- p1+theme_light()
    #-黑色背景往往不會使用
    p2_5 <- p1+theme_dark()
    # 無邊框
    p2_6 <- p1+theme_minimal()
    #--origin類似兩邊框
    p2_7 <- p1+theme_classic()#這個包簡潔好看
    # 無邊框
    p2_8 <- p1+theme_void()#橫縱坐標群去掉

    library(patchwork)

    (p2_1 + p2_2 + p2_3 + p2_4)/( p2_5 + p2_6 + p2_7 + p2_8)

    1.2 themes包中的主題

    library(ggthemes)

    p1 + theme_base() # 多添加外邊框 **
    p1 + theme_fivethirtyeight() # 類似excel的主題
    p1 + theme_solarized()# 類似excel的主題
    p1 + theme_gdocs() # 類似excel的主題
    p1 + theme_stata() # 類似excel的主題
    p1 + theme_few() # 四周邊框,網格去除 ***
    p1 + theme_wsj() # 類似excel的主題
    p1 + theme_economist()# 類似excel的主題
    p1 + theme_pander() # 類似excel的主題
    p1 + theme_excel() # 類似excel的主題
    p1 + theme_tufte() # 去坐標軸
    p1 + theme_calc() # 加邊框
    p1 + theme_par() # 格子去除,外邊框保留 ***
    p1 + theme_hc() # 類似excel的主題

    1.3 ggthemr 主題 不太適合科研圖表的繪制,所以這里不采用

    但是其修改全局圖形樣式方式,值得借鑒為科研所使用。

    # library(devtools)
    # devtools::install_github('cttobin/ggthemr')

    # library(ggthemr)
    # ggthemr_reset()#清除現有主題
    # ggthemr('dust')
    # p1
    # ggthemr('flat')
    # p1
    # ggthemr('pale')
    # p1
    # ggthemr('fresh')
    # p1
    # ggthemr('flat dark')
    # p1
    # ggthemr('light')
    # p1
    # ggthemr('earth')
    # p1
    # ggthemr('sea')
    # p1

    1.4 ggtech 和 ggsci

    ##接下來我們使用ggtech包來試試#具體學習參照網址:https://github.com/ricardo-bion/ggtech############
    # devtools::install_github("ricardo-bion/ggtech", dependencies=TRUE)
    library(ggtech)
    p1 + theme_tech(theme="airbnb") +scale_color_tech(theme="airbnb") + scale_fill_tech(theme="airbnb")
    p1 + theme_tech(theme="etsy") + scale_color_tech(theme="etsy")
    # 具體學習參照網址:https://github.com/ricardo-bion/ggtech############

    ######接下來我們使用ggsci包來試試################
    library(ggsci)
    #ggsci打包了Nature Publishing Group,American Association for the Advancement of Science,Lancet journals等期刊的圖片配色
    ##使用此包中的配色#
    p1 +scale_color_nejm()
    p1 + scale_color_lancet()

    全局主題設置:

    • https://ggplot2./reference/theme_get.html

    詳細的全局設置參考ggopt:

    • https:///github/hadley/ggplot1/man/ggopt.html

    1.5 全方位了解主題組成

    #現在我們一步一步將全部可變修改參數進行一個整理修改:#為了設計主題,我們還需要知道的知識:#linetype的類型有哪些:0 = blank, 1 = solid, 2 = dashed, 3 = dotted, 4 = dotdash, 5 = longdash, 6 = twodash
    mytheme<-theme(

    #########################首先是繪圖區域的整體參數:
    #先拿網格線開刀,對全部網格線控制
    panel.grid.major=element_line(colour = "red"),
    panel.grid.minor=element_line(colour = "red",linetype = "dashed",size = 0.2),
    panel.grid.major.x=element_line(colour = "red"),
    panel.grid.minor.x=element_line(colour = "red"),
    panel.grid.major.y=element_line(colour = "red"),
    panel.grid.minor.y=element_line(colour = "red"),
    #整個圖片背景
    plot.background=element_rect(color="blue",fill="grey60"),
    #其次是繪圖區域的背景:panel.background = element_rect(fill = "blue"),
    #在這繪圖區域邊框
    panel.border = element_rect(colour = "white",fill = NA,size = 2),
    #########################首先是繪圖區域的整體參數:

    #########################設置坐標軸線和刻度線
    #axis.line.x = NULL,#移除坐標軸線x
    #axis.line.y = NULL,#移除坐標軸線y
    axis.line = element_line(color="black", size = 5),
    #下面是坐標軸刻度線外觀如果想去掉坐標軸線,axis.ticks=element_blank()
    #axis.ticks=element_blank(),#移除兩個坐標軸刻度線
    axis.ticks.x = element_line(colour = "red",size = 5),
    axis.ticks.y = element_line(colour = "red",size = 2),#控制刻度標簽而不是坐標軸線
    #########################設置坐標軸線和刻度線


    #####################對文本進行控制
    #首先是標題:plot.title = element_text(family="myFont",colour = "black",size = 20,face = "bold"),#
    #坐標軸文本只坐標軸標題
    axis.title.x =element_text(colour = "red",size = 14),
    axis.title.y =element_text(colour = "yellow",size = 14),
    #坐標軸標簽文本
    #axis.text.x=element_blank(),#
    axis.text.x = element_text(colour = "red",size = 14),
    axis.text.y = element_text(colour = "red",size = 14),
    #接下來就是圖例部分了
    #首先是圖例背景
    legend.background = element_rect(fill = "#FF7F00",colour = "red",size=1),
    #其次是圖例文本
    #圖例標題
    legend.title = element_text(colour = "blue",face = "bold",size = 14),
    #圖例項文本
    legend.text = element_text(colour = "red"),
    #圖例符號
    legend.key = element_rect(fill = "gray87",colour = "blue",size = 0.25)
    #####################對文本進行控制
    )

    ##在這些控制部分中我們主題可以控制每一個部分的外觀和有無,但是有些部分是否在這個位置不屬于主題設置的范疇
    ##通過控制一下四個參數達到控制圖片外觀的需求,所以了解一下四個參數詳細信息會有很大幫助

    1.6 交互式設置主題-用于交互式修改主題

    但是這里學習一下每個參數的函數也是很好的,只是,我覺得,這些參數學習完成后,還是代碼來的方便,快捷。

    # install.packages("ggThemeAssist")
    library(ggplot2)
    library(ggThemeAssist)

    # 開始調整主題
    ggThemeAssistGadget(p1)

    1.7 關于全局設定主題

    # 設置全局主題樣式
    theme_set(theme_bw())
    • https://rstudio./thematic/

    2 顏色設置

    2.1 RColorBrewer中的配色方案

    #############顏色庫,調取顏色###############
    library(RColorBrewer)#調色板調用包
    #調用所有這個包中的調色板
    display.brewer.all()
    #提取特定個數的調色板顏色,會出圖顯示
    display.brewer.pal(9,"Set1")
    display.brewer.pal(10,"Dark2")
    ##僅僅只顯示色號,我們要在顏色上并顯示色號才好
    brewer.pal(9,"YlGn")
    #########這個包就來做這個功能#########
    library(scales)
    ###提取主題包中的顏色
    m1<-economist_pal()(9)#通過這條命令可以知道economist這個主題只有9種顏色
    show_col(m1)
    m2<-wsj_pal()(6)#
    show_col(m2)

    show_col(wsj_pal()(6))

    2.2 如何修改配色方案

    R包中的一些顏色直接使用,指定顏色調用

    p1 + theme_economist()
    p1 + theme_economist() + scale_color_economist()
    p1 + theme_calc() + scale_color_calc()

    ##########如何使用顏色在圖上#####################
    #調用調色板調用包顏色
    p1+scale_fill_brewer()
    p1+scale_colour_brewer()
    #使用灰度調色板
    p1+scale_fill_grey()
    p1+scale_colour_grey()
    #色輪周圍均勻等距色
    p1+scale_fill_hue()
    p1+scale_colour_hue()
    p1+scale_colour_discrete()
    p1+scale_fill_discrete()
    ####使用自定義
    m3=brewer.pal(9,"YlGn")
    m1<-economist_pal()(9)#通過這條命令可以知道economist這個主題只有9種顏色

    show_col(m1)
    m2<-wsj_pal()(6)#
    show_col(m2)
    ######我們提取這些顏色為自己所用
    m=c(m2,m1)
    m
    p1+scale_fill_manual(values=m)
    p1+scale_colour_manual(values=m)

    2.3 幾種常見顏色

    2.31離散的幾種顏色

    #根據需要的顏色將顏色號通過下面命令收集
    mi=c("#E41A1C" ,"#377EB8", "#4DAF4A", "#984EA3", "#FF7F00" ,"#FFFF33", "#7c260b",
    "#1B9E77", "#D95F02" ,"#7570B3" ,"#E7298A", "#66A61E", "#E6AB02",
    "#8DD3C7", "#FFFFB3", "#BEBADA","#FB8072" ,"#80B1D3", "#FDB462", "#B3DE69",
    "#FCCDE5","#D9D9D9", "#BC80BD")
    show_col(mi)
    #將顏色加上圖上
    p+scale_colour_manual(values = mi)
    library(RColorBrewer)#調色板調用包
    #調用所有這個包中的調色板
    display.brewer.all()
    #提取特定個數的調色板顏色,會出圖顯示
    display.brewer.pal(9,"Set1")
    colset1 <- brewer.pal(9,"Set1")[c(5,4)]
    colset2 <- brewer.pal(12,"Paired")
    colset3 <- c(brewer.pal(12,"Paired"),brewer.pal(9,"Pastel1"))

    2.31 連續顏色

    如果連續變量,尤其是熱圖等使用顏色-更加豐富的熱圖顏色梯度

    scale_fill_gradientn用于設置連續填充。

    # Justification controls where the cells are anchored
    df <- expand.grid(x = 0:5, y = 0:5)
    df$z <- runif(nrow(df))
    # default is compatible with geom_tile()
    p2 <- ggplot(df, aes(x, y, fill = z)) + geom_raster() + scale_fill_gradientn(colours =colorRampPalette(RColorBrewer::brewer.pal(11,"Spectral"))(60)) + mytheme1
    p2

    3 多種視覺感官聯用區分

    顏色和形狀聯合使用

    p1 <- ggplot(iris) + geom_point(aes(x = Sepal.Length,
    y = Petal.Length,
    group = Species,
    color = Species,
    shape = Species
    )
    )

    p1

    有些時候分組下面有子分組,所以用形狀區分大組,用顏色區分小組;

    顏色的漸變可以讓我們更加容易觀察一組具有變化的數值,例如在時間尺度上的東西和空間尺度上的東西。

    形狀填充顏色不同,讓我們很容易想到一組具有共同特征的東西,或者變量。

    iris1 = iris
    iris1$group = c("A","B","C")
    head(iris1)

    p1 <- ggplot(iris1) + geom_point(aes(x = Sepal.Length,
    y = Petal.Length,
    shape = Species,
    fill = group
    )
    )

    p1 + scale_fill_manual(values = c("red","blue","white")) + scale_shape_manual(values = c(21:23))

    4 字體-win字體

    #使用字體
    windowsFonts(myFont = windowsFont("微軟雅黑"))

    ###這種方式將所有字體調整為新羅馬字體
    windowsFonts(myFont = windowsFont("Times New Roman"))
    p1 +theme_gray(base_size = 20, base_family = "myFont")

    #########調整字體大小和漢字字體類型################
    p1 + theme_gray(base_size = 20, base_family = "")#可以自己調整字體大小和字體類型

    5 常用主題

    5.1 常用主題1

    library(RColorBrewer)#調色板調用包
    geom.text.size = 15
    theme.size = (8/5) * geom.text.size

    library(ggthemes)
    mytheme1 = theme_par() + theme(
    panel.background=element_blank(),
    panel.grid=element_blank(),
    legend.position="right",

    legend.title = element_blank(),
    legend.background=element_blank(),
    legend.key=element_blank(),
    # legend.text= element_text(size=7),
    # text=element_text(),
    # axis.text.x=element_text(angle=45,vjust=1, hjust=1)
    plot.title = element_text(size = theme.size,face = "plain",colour = "black",vjust = -8.5,hjust = 0.1),
    axis.title.y =element_text(size = theme.size,face = "plain",colour = "black"),
    axis.title.x =element_text(size = theme.size,face = "plain",colour = "black"),
    axis.text = element_text(size = theme.size,face = "plain"),
    axis.text.x = element_text(colour = "black",size = theme.size,angle = 45,vjust = 1,hjust = 1),
    axis.text.y = element_text(colour = "black",size = theme.size),
    legend.text = element_text(size = theme.size,face = "plain"),
    strip.text.x = element_text(colour = "black",size = theme.size),
    strip.text.y = element_text(colour = "black",size = theme.size),
    strip.background = element_blank(),
    plot.margin=unit(c(0,0,0,0), "cm")

    )

    mytheme2 = theme_void() + theme(
    panel.background=element_blank(),
    panel.grid=element_blank(),
    legend.position="right",

    legend.title = element_blank(),
    legend.background=element_blank(),
    legend.key=element_blank(),
    # legend.text= element_text(size=7),
    # text=element_text(),
    # axis.text.x=element_text(angle=45,vjust=1, hjust=1)
    plot.title = element_text(size = theme.size,face = "plain",colour = "black",vjust = -8.5,hjust = 0.1),
    axis.title.y =element_text(size = theme.size,face = "plain",colour = "black"),
    axis.title.x =element_text(size = theme.size,face = "plain",colour = "black"),
    axis.text = element_text(size = theme.size,face = "plain"),
    axis.text.x = element_text(colour = "black",size = theme.size,angle = 45,vjust = 1,hjust = 1),
    axis.text.y = element_text(colour = "black",size = theme.size),
    legend.text = element_text(size = theme.size,face = "plain"),
    strip.text.x = element_text(colour = "black",size = theme.size),
    strip.text.y = element_text(colour = "black",size = theme.size),
    strip.background = element_blank()
    )

    # p1 + mytheme1

    5.2 常用主題2

    ########這份主題來自劉永鑫老師自己的設計
    mytheme2 = theme(panel.background=element_blank(),
    panel.grid=element_blank(),
    axis.line.x=element_line(size=.5, colour="black"),
    axis.line.y=element_line(size=.5, colour="black"),
    axis.ticks=element_line(color="black"),
    axis.text=element_text(color="black", size=7),
    legend.position="right",
    legend.background=element_blank(),
    legend.key=element_blank(),
    legend.text= element_text(size=7),
    text=element_text(family="sans", size=7))
    p1 + mytheme2

    5.3 新羅馬字體主題-此時使用win字體

    windowsFonts(myFont = windowsFont("Times New Roman"))
    mytheme1 = theme_par(base_family = "myFont") + theme(
    panel.background=element_blank(),
    panel.grid=element_blank(),
    legend.position="right",

    legend.title = element_blank(),
    legend.background=element_blank(),
    legend.key=element_blank(),
    # legend.text= element_text(size=7),
    # text=element_text(),
    # axis.text.x=element_text(angle=45,vjust=1, hjust=1)
    plot.title = element_text(vjust = -8.5,hjust = 0.1),
    axis.title.y =element_text(size = 24,face = "bold",colour = "black"),
    axis.title.x =element_text(size = 24,face = "bold",colour = "black"),
    axis.text = element_text(size = 20,face = "bold"),
    axis.text.x = element_text(colour = "black",size = 14),
    axis.text.y = element_text(colour = "black",size = 14),
    legend.text = element_text(size = 15,face = "bold")
    )

    p1 + mytheme1

    5.4 不需要坐標軸主題-熱圖等

    mytheme2 = theme_void() + theme(
    panel.background=element_blank(),
    panel.grid=element_blank(),
    legend.position="right",

    legend.title = element_blank(),
    legend.background=element_blank(),
    legend.key=element_blank(),
    # legend.text= element_text(size=7),
    # text=element_text(),
    # axis.text.x=element_text(angle=45,vjust=1, hjust=1)
    plot.title = element_text(vjust = -8.5,hjust = 0.1),
    axis.title.y =element_text(size = 24,face = "bold",colour = "black"),
    axis.title.x =element_text(size = 24,face = "bold",colour = "black"),
    axis.text = element_text(size = 20,face = "bold"),
    axis.text.x = element_text(colour = "black",size = 14),
    axis.text.y = element_text(colour = "black",size = 14),
    legend.text = element_text(size = 15,face = "bold")
    )

    p2 + mytheme2

    根際互作生物學研究室 簡介

    根際互作生物學研究室是沈其榮教授土壤微生物與有機肥團隊下的一個關注于根際互作的研究小組。本小組由袁軍副教授帶領,主要關注:1.植物和微生物互作在抗病過程中的作用;2 環境微生物大數據整合研究;3 環境代謝組及其與微生物過程研究體系開發和應用。團隊在過去三年中在 isme J, Microbiome, PCE,SBB,Horticulture Research等期刊上發表了多篇文章。歡迎關注 微生信生物 公眾號對本研究小組進行了解。

    團隊工作及其成果 (點擊查看)

    了解 交流 合作

    • 團隊成員郵箱 袁軍:

      junyuan@njau.edu.cn;

      文濤:

      2018203048@njau.edu.cn

    • 團隊公眾號:

      轉藏 分享 獻花(0

      0條評論

      發表

      請遵守用戶 評論公約

      類似文章 更多

      主站蜘蛛池模板: 亚洲av成人在线一区| 国产午夜福利精品视频| 成人av午夜在线观看| 男女动态无遮挡动态图| 国产香蕉一区二区三区在线视频| 三上悠亚久久精品| 亚洲国产精品一区二区第一页| 美女爽到高潮嗷嗷嗷叫免费网站| 国产精品无码久久综合网| 成人免费乱码大片a毛片| 免费人成再在线观看网站| 亚洲成AV人片在线观看麦芽| 另类 亚洲 图片 激情 欧美 | 国产在线精品一区二区夜色| 吃奶呻吟打开双腿做受动态图| 色欲AV伊人久久大香线蕉影院| 一卡2卡三卡4卡免费网站| 性无码专区无码| 亚洲AVAV天堂AV在线网阿V| 97久久天天综合色天天综合色HD| 巨胸美乳无码人妻视频漫画| 无码人妻人妻经典| 婷婷五月综合丁香在线| 欧美中文字幕无线码视频| 精品国产免费一区二区三区香蕉| 国产福利萌白酱在线观看视频| 成人免费A级毛片无码网站入口| 西西大胆午夜人体视频| 国产精品中文字幕一区| 国产无套粉嫩白浆在线观看| 欧洲精品色在线观看| 久久国产精品波多野结衣AV| 国产精品人妻久久无码不卡| 777奇米四色成人影视色区| 色一乱一伦一图一区二区精品| 日本一区二区三区免费播放视频站| 日本边添边摸边做边爱的视频| 国产成人无码AV大片大片在线观看| 成人无码小视频在线观看| 国产成人精品无码免费看| 久久免费精品国自产拍网站 |