最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

R語言使用ggplot繪制畫中畫細(xì)節(jié)放大的方法

 更新時(shí)間:2021年11月05日 14:36:05   作者:Kanny廣小隸  
這篇文章主要為大家介紹了R語言使用ggplot繪制畫中畫細(xì)節(jié)放大的方法實(shí)現(xiàn)示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步

當(dāng)我們?cè)诶?code>ggplot繪圖時(shí),當(dāng)遇到一些量綱相差過大,或者一些圖的某些點(diǎn)排布密集時(shí),需要將細(xì)節(jié)部分進(jìn)行放大,這時(shí)我們就需要采用畫中畫的方式,或者將統(tǒng)計(jì)圖的細(xì)節(jié)在旁邊進(jìn)行放大。

下面我們就來一步一步講解如何將圖中的細(xì)節(jié)進(jìn)行放大(核心為ggforce包)。話不多說,先上最終效果圖(以2019年雙十一數(shù)據(jù)擬合為例):

1. 載入相關(guān)包

library(ggplot2)  # 繪圖核心
library(tidyr)    # 數(shù)據(jù)整理
library(ggforce)  # 畫中畫核心包

2. 數(shù)據(jù)生成

我們收集了雙十一銷量數(shù)據(jù),并進(jìn)行一些處理,這里生成數(shù)據(jù)相對(duì)比較簡(jiǎn)單,就不進(jìn)行解釋了。

# generate data
year <- 2009:2019
sales <- c(0.5, 9.36, 52, 191, 350, 571, 912, 1207, 1682, 2135, 2684)
growth_rate <- c(NA, diff(sales) / sales[1:(length(sales) - 1)] * 100)
dat <- data.frame(year = factor(year), sales, growth_rate)

# fit the curve of data
dat_curve <- data.frame(year_std = 1:10, growth_rate = growth_rate[2:11] / 100)
dat_curve$ind <- factor(c(rep(x = 1, 9), 2))

生成的數(shù)據(jù)長(zhǎng)下面這樣:

   year_std growth_rate ind
1         1  17.7200000   1
2         2   4.5555556   1
3         3   2.6730769   1
4         4   0.8324607   1
5         5   0.6314286   1
6         6   0.5971979   1
7         7   0.3234649   1
8         8   0.3935377   1
9         9   0.2693222   1
10       10   0.2571429   2

3. 基礎(chǔ)繪圖

首先我們添加一些散點(diǎn)(geom_point),與擬合曲線(geom_smooth),并將2019年與歷年區(qū)別開,代碼如下:

dat_curve %>%
  ggplot(aes(x = year_std, y = growth_rate, col = ind)) +
  geom_smooth(se = FALSE, method = "gam", formula = y ~ I(x^(-2)), size = 2, col = "#b3cde3") +
  geom_point(size = 4, alpha = 0.8)

接著我們發(fā)現(xiàn),在后面段這些散點(diǎn)在增長(zhǎng)率上的差異看不出來了,因此需要使用畫中畫的方法,來對(duì)這部分進(jìn)行放大。

4. 放大效果

其實(shí)非常簡(jiǎn)單facet_zoom(y = growth_rate < 1),我們選取增長(zhǎng)率小于1的部分進(jìn)行放大即可:

dat_curve %>%
  ggplot(aes(x = year_std, y = growth_rate, col = ind)) +
  geom_smooth(se = FALSE, method = "gam", formula = y ~ I(x^(-2)), size = 2, col = "#b3cde3") +
  geom_point(size = 4, alpha = 0.8) +
  facet_zoom(y = growth_rate < 1)

5. 繪圖美化

最后,我們?cè)偬砑右恍┐a進(jìn)行美化即可?。阑拇a可以在我其他的博客中找到具體的解釋哦)

dat_curve %>%
  ggplot(aes(x = year_std, y = growth_rate, col = ind)) +
  geom_smooth(se = FALSE, method = "gam", formula = y ~ I(x^(-2)), size = 2, col = "#b3cde3") +
  geom_point(size = 4, alpha = 0.8) +
  labs(title = expression(paste('年份與銷售額增長(zhǎng)率擬合 (', R^2, " = 0.9978)")), x = "年份", y = "銷售額增長(zhǎng)率") + # 混合公式與中文,可參考本人另外的博客,相關(guān)的說明。
  xlim(0, 10) +
  scale_y_continuous(labels = scales::percent) +   # y軸刻度改為百分?jǐn)?shù)
  scale_x_continuous(breaks = 1:10, labels = 2010:2019) +
  scale_fill_manual(values = c('#fbb4ae', '#ccebc5')) +
  theme_bw(base_family = "Times") +
  theme(axis.text.x = element_text(angle = 30), # x軸刻度傾斜30度
        panel.grid.minor = element_blank(),
        legend.position = "none",
        text = element_text(family = "STHeiti"),
        plot.title = element_text(hjust = 0.5)) +
  facet_zoom(y = growth_rate < 1)

其他方法

其他幾種ggplot繪制畫中畫的方法:

It is possible to create inset graphs?

Plots within plots with ggplot2 and ggmap

之后有時(shí)間我會(huì)補(bǔ)充另外一些利用ggplot進(jìn)行畫中畫繪圖的方法(覺得目前的繪制方式最好看且很簡(jiǎn)單,因此先講解本博文中的方法)。

以上就是R語言使用ggplot繪制畫中畫細(xì)節(jié)放大的方法的詳細(xì)內(nèi)容,更多關(guān)于ggplot繪制畫中畫細(xì)節(jié)放大的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • R語言與格式,日期格式,格式轉(zhuǎn)化的操作

    R語言與格式,日期格式,格式轉(zhuǎn)化的操作

    這篇文章主要介紹了R語言與格式,日期格式,格式轉(zhuǎn)化的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2021-04-04
  • R語言如何將大型Excel文件轉(zhuǎn)為dta格式詳解

    R語言如何將大型Excel文件轉(zhuǎn)為dta格式詳解

    這篇文章主要給大家介紹了關(guān)于R語言如何將大型Excel文件轉(zhuǎn)為dta格式的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-03-03
  • R語言向量下標(biāo)操作

    R語言向量下標(biāo)操作

    這篇文章主要介紹了R語言向量下標(biāo)操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2021-04-04
  • R語言變量賦值深入講解

    R語言變量賦值深入講解

    這篇文章主要介紹了R語言變量賦值深入講解,內(nèi)容講解的很清晰,有感興趣的可以學(xué)習(xí)下
    2021-03-03
  • RStudio中如何更改R包安裝位置淺析

    RStudio中如何更改R包安裝位置淺析

    R語言提供了豐富的功能和擴(kuò)展包來支持各種任務(wù),默認(rèn)R語言會(huì)將安裝的擴(kuò)展包存儲(chǔ)在特定的目錄中,有時(shí)我們希望將這個(gè)默認(rèn)存儲(chǔ)路徑更改為其他位置,以便更好地組織和管理我們的包,這篇文章主要給大家介紹了關(guān)于RStudio中如何更改R包安裝位置的相關(guān)資料,需要的朋友可以參考下
    2023-09-09
  • R語言實(shí)現(xiàn)將分類變量轉(zhuǎn)換為啞變量(dummy vairable)

    R語言實(shí)現(xiàn)將分類變量轉(zhuǎn)換為啞變量(dummy vairable)

    這篇文章主要介紹了R語言實(shí)現(xiàn)將分類變量轉(zhuǎn)換為啞變量(dummy vairable),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2021-04-04
  • R語言決策基礎(chǔ)知識(shí)點(diǎn)詳解

    R語言決策基礎(chǔ)知識(shí)點(diǎn)詳解

    在本篇文章里小編給大家整理了一篇關(guān)于R語言決策基礎(chǔ)知識(shí)點(diǎn)內(nèi)容,有興趣的朋友們可以學(xué)習(xí)參考下。
    2021-03-03
  • 詳解R語言圖像處理EBImage包

    詳解R語言圖像處理EBImage包

    EBImage是R的一個(gè)擴(kuò)展包,提供了用于讀取、寫入、處理和分析圖像的通用功能,非常容易上手,本文給大家介紹下R語言圖像處理EBImage包的相關(guān)知識(shí),感興趣的朋友一起看看吧
    2022-02-02
  • R語言 解決無法打開鏈結(jié)的問題

    R語言 解決無法打開鏈結(jié)的問題

    這篇文章主要介紹了R語言 解決無法打開鏈結(jié)的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2021-04-04
  • R語言seq()函數(shù)的調(diào)用方法

    R語言seq()函數(shù)的調(diào)用方法

    這篇文章主要介紹了R語言seq()函數(shù)的調(diào)用方法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-03-03

最新評(píng)論

南丹县| 图木舒克市| 湛江市| 西昌市| 都匀市| 深圳市| 曲阜市| 璧山县| 定南县| 交城县| 新闻| 麻江县| 深圳市| 鸡东县| 清苑县| 昌宁县| 连城县| 保定市| 开平市| 长子县| 大荔县| 岑溪市| 洪洞县| 龙川县| 巴林左旗| 玉龙| 常德市| 东山县| 阳朔县| 富阳市| 云阳县| 亚东县| 秦皇岛市| 台州市| 新邵县| 仁布县| 晋州市| 涟水县| 淮南市| 上饶县| 松滋市|