日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

设置图例字体_R高级画图(0903)关于字体、溪流图、ggplot2主题等设置 (tidyTuesday)...

發布時間:2023/12/19 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 设置图例字体_R高级画图(0903)关于字体、溪流图、ggplot2主题等设置 (tidyTuesday)... 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

在使用ggplot2畫圖的時候如何導入字體,在使用ggplot2的時候如何處理復雜的控件、主題等,今天將一一介紹。

part1 對ggplot2使用字體。

這個難點肯定就是導入字體,然后在ggplot2里面渲染就行了。

使用的包就是extrafont包。這個包可以方便的導入系統的字體,也可以指定下載的文件然后安裝,總之非常簡單,直接使用install.packages("extrafont")就可以安裝,然后可以在加載包之后,使用font_import()就可以一氣呵成。唯一的不足的地方就是等待??時間比較長。當然是一勞永逸的。

install.packages("extrafont") library(extrafont) font_import()

part2 案例講解,

今天講解的是tidyTuesday的一個圖,這個圖還算比較簡單,但是細節非常多。

以前寫代碼有的馬馬虎虎,注釋寫的不清楚,導致別人閱讀代碼的時候(尤其是對剛入門的非常不友好),當代碼多的時候,看著是真的累,我現在學JavaScript,看的js代碼真的頭大。所以我以后決定將我的代碼注釋寫的盡可能細致。

第一部分是安裝ggstream。這個包是用來畫中間的主體內容(占且叫她溪流圖)。

install.packages("remotes") # 用來安裝一些包的, remotes::install_github("davidsjoberg/ggstream") # 從github安裝包

第二部分是下面是加載包

#Load packages library(tidyverse) library(colorspace) # 這個是用來調顏色的 library(ggstream) library(extrafont) # 用來畫字體的

第三部分是加載數據的

#Import data tuesdata <- tidytuesdayR::tt_load('2020-09-01') tuesdata <- tidytuesdayR::tt_load(2020, week = 36) key_crops <- tuesdata$key_crop_yields

如果學R的竟然不知道這個tidyTuesday的,那你還算別繼續看這個文章了。

上面主要是用來從Tuesday下載數據。

數據長得如下:

第四部分是數據整理的部分

?#Wrangle data NZ_yield <- key_crops %>% filter(Code == "NZL") %>% # 篩選Code等于NZL的pivot_longer(cols = 4:last_col(), # 將數據從寬類型轉換成長數據,這是因為ggplot2要求的,如果要畫多類別的數據,轉換成長數據是最方便的names_to = "crop", # 將轉換為類別的這一列的名字改為“crop”values_to = "crop_production") %>% # 將值這一列的名字改為cropproductionmutate(crop = str_remove_all(crop, " (tonnes per hectare)")) %>% # 將數據框的crop列中含有(tonnes per hectare)都刪掉set_names(nm = names(.) %>% tolower()) %>% # 將數據框的列名字都改為小寫的filter(!is.na(crop_production)) # 篩選crop——production為空的 ?

第五部分是ggplot2的主題部分,也就是用來控制ggplot2的布局、字體、背景等。

#Set theme font_family1 <- 'Times New Roman' #'Century Gothic' # 這里設置默認字體為新羅馬 font_family2 <- 'Times New Roman' background <- "#39393A" # 設置背景顏色 text_colour1 <- "white" # 設置文本1的顏色 text_colour2 <- "black" # 設置文本2 的顏色 axis_colour <- "white" # 設置參考線的顏色(注意我這里說的是參考線,并不是坐標軸) theme_style <- theme(text = element_text(family = font_family1), # 這里是設置ggplot2的全部字體rect = element_rect(fill = background), # 這里是設置所有的矩形元素填充顏色plot.background = element_rect(fill = background, color = NA), # 設置背景顏色plot.title = element_text(size = 30, colour = text_colour1), # 設置標題的字體 size為d大小,colour為顏色plot.subtitle = element_text(size = 16, colour = text_colour1), # 副標題plot.caption = element_text(size = 12, colour = text_colour1, margin=margin(60,0,0,0)), # 右下角的標注panel.background = element_rect(fill = background, color = NA), # 設置面板背景(也就是繪圖區域的背景)panel.border = element_blank(), # 繪圖區域的邊框panel.grid.major.y = element_blank(), # 繪圖區域的網格panel.grid.major.x = element_blank(), # 繪圖區域x主網格panel.grid.minor.x = element_blank(), #繪圖區域的x次要網格plot.margin = unit(c(1, 1, 1, 1), "cm"), # ggplot2的邊框axis.title = element_blank(), # 設置x,y軸的標簽為空axis.text.x = element_text(size = 14, colour= text_colour1), # 設置x軸刻度的標簽axis.text.y = element_blank(), # 設置y軸刻度的標簽為空axis.line = element_blank(), # 設置軸的線為空legend.text = element_text(size = 10, colour= text_colour1), # 設置圖例的字體legend.title = element_blank(), # 圖例的名字legend.box = "horizontal", # 圖例的擺放方向legend.position="top", # # 圖例的擺放位置legend.justification = "left") # 用來固定圖例的位置,在畫圖區域內還算畫圖區域外 ? theme_set(theme_classic() + theme_style) # 設置為全局的主題

第六部分是畫圖(也就是將數據傳遞給ggplot2)

#Set colour palette cols <- c("#F3D2B3", "#F2B8A2", "#F38C8D", "#5E9DB8", "#ADA296", "#2C5F72") ? #Plot data ggplot(NZ_yield, aes(year, crop_production, fill = factor(crop))) +geom_stream(method = "raw", bw = .7) +scale_fill_manual(name = "crop", values = cols) + # 設置填充顏色scale_x_continuous(breaks = seq(1960, 2020, 10)) + # 設置x軸的分割geom_vline(data = tibble(x = c(1960, seq(1970, 2010, by = 10), 2020)),aes(xintercept = x), color = axis_colour, size = .1) + # 因為網格都被取消了,現在需要使用geom——vline來模擬網格,哈哈哈,我也經常干geom_segment(aes(x=1961,xend=1982,y=45,yend=45),size = .5, color="white", linetype = 2) + # 注意到文字的上的虛線。這個就是畫虛線的annotate("label", x = 1971, y = 45, size = 6, fontface = "italic", label.size=NA,color = text_colour1, family = font_family2, fill = background,label = "Golden Years of Agriculture") + # 添加文本注釋geom_segment(aes(x=1984,xend=2018,y=45,yend=45),color="white", linetype = 2) +annotate("label", x = 2001, y = 45, size = 6, fontface = "italic", label.size=NA,color = text_colour1, family = font_family2, fill = background,label = "Deregulation and Export Growth") +geom_curve(aes(x = 1975, y = -35, xend = 1975, yend = -17),arrow = arrow(length = unit(0.3, "cm")), size = 0.5,color = "white", curvature = -0.3) + # 添加曲線,就是左下角的帶有??的annotate("label", x = 1975, y = -35, size = 3.5, color = text_colour1, family = font_family1, fill = background,label = "Trials for growing soybeans occurrednin the 1970s, but evidence suggested itnwasn't going to be a commerciallynviable crop") +annotate("text", x = 1965.5, y = 0, size = 3.5, color = text_colour2, family = font_family1,label = "Majority of potatoes werensold fresh and preparednat home during the 1960s") +annotate("text", x = 1995, y = 0, size = 3.5, color = text_colour2, family = font_family1,label = "Exporting Potatoes begannin 1991 and have steadilyngrown since then") +annotate("text", x = 2005, y = 5, size = 3.5, color = text_colour2, family = font_family1,label = "By 2007 over half of NZ'snpotato crop was processedninto chips and fries") +annotate("text", x = 2005, y = -15, size = 3.5, color = text_colour2, family = font_family1,label = "Additionally, Potatoes werenNZ's second highest earningnvegetable in 2007 (NZ$94.2M).nOnions took the crown as thenhighest earner") +labs(title = "Kiwis and their Potatoes",subtitle = "New Zealand Crop Yields (tonnes per hectare) Since 1961",caption = "Visualisation: @JaredBraggins | Sources: Our World in Data, Te Ara") +guides(fill = guide_legend(nrow = 1)) # 控制圖例的排數。,就一排

第七部分保存圖片。

#Export plot ggsave("NZ Crops.png", dpi = 700, width = 15, height = 9)

關于保存圖像縮放比例的,可以看我的另外一個文章:

圓子:關于ggplot2縮放問題的解決?zhuanlan.zhihu.com

總結

以上是生活随笔為你收集整理的设置图例字体_R高级画图(0903)关于字体、溪流图、ggplot2主题等设置 (tidyTuesday)...的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。