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

R語言數(shù)據(jù)可視化ggplot添加左右y軸繪制天貓雙十一銷售圖

 更新時(shí)間:2021年11月06日 10:36:42   作者:Kanny廣小隸  
本篇文章主要介紹如何在R中,使用ggplot2包在一個圖像上添加左右兩個 y 軸刻度,并在同一個圖像上繪制兩個完全不一樣的統(tǒng)計(jì)圖,有需要的朋友可以借鑒參考下

本文是以天貓雙十一銷量與增長率為例,原始的數(shù)據(jù)可以參考上一篇文章:用 ggplot 重繪天貓雙十一銷售額圖,這里不再作過多的介紹。

同時(shí)整個的天貓雙十一的銷售額數(shù)據(jù)分析可以關(guān)注:天貓雙十一“數(shù)據(jù)造假”是真的嗎?

老規(guī)矩,先上最終成果(兩張圖只是顏色的差別):

上圖左邊 y 軸表示增長率的刻度,右邊 y 軸表示銷售額的數(shù)據(jù),我們將兩者在同一張圖上進(jìn)行展現(xiàn)。其實(shí)將兩個統(tǒng)計(jì)圖在同一個坐標(biāo)系中呈現(xiàn)不算是這個繪圖的難點(diǎn),其真正的難點(diǎn)在與刻度的變換以及坐標(biāo)軸標(biāo)簽的設(shè)定。

下面我們開始一步一步來繪制出上圖所示的圖案~

構(gòu)造數(shù)據(jù)集

構(gòu)造數(shù)據(jù)集前,我們先看看數(shù)據(jù):

年份 銷售額 增長率
2009 0.5
2010 9.36 1772.00
2011 52 455.56
2012 191 267.31
2013 350 83.25
2014 571 63.14
2015 912 59.72
2016 1207 32.35
2017 1682 39.35
2018 2135 26.93
2019 2684 25.71

由于銷售額與增長率都是近乎相同的量綱(單論數(shù)值看,都是在 0-3000 之間),所以我們在事先可以不對數(shù)據(jù)進(jìn)行變換,變換為統(tǒng)一的尺度。但我想要在坐標(biāo)軸上,增長率以百分比的形式顯示,所以需要除以100,但增長率除以100之后,為了把我們的兩個 y 軸變換到同一個尺度區(qū)間,所以銷售額也需要隨之除以100。(注意,這里的銷售額除以100 可以不需要具體的實(shí)際意義,只是保證在圖像上呈現(xiàn)效果美觀即可,最后的實(shí)際區(qū)間我們可以通過修改坐標(biāo)軸的刻度值實(shí)現(xiàn)。)

因此生成數(shù)據(jù)的代碼如下:

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_overview <- data.frame(year = factor(year), sales = sales / 100, growth_rate = growth_rate / 100)

但經(jīng)常使用 ggplot 童鞋可能知道,我們沒有辦法直接只用上述的數(shù)據(jù)在 ggplot 中進(jìn)行繪制,需要進(jìn)行一個變換,也就是將銷售額與增長率并列,并且再加一列變量作為 index,具體操作我們可以使用管道數(shù)據(jù)處理的 package :tidyr。

具體的原因與使用方法可參見:tidyr+ggplot2多個變量分層展示

library(tidyr)
dat_overview %>%
  gather(sales, growth_rate, key = "var", value = "value")

其結(jié)果如下:

   year         var      value
1  2009       sales  0.0050000
2  2010       sales  0.0936000
3  2011       sales  0.5200000
4  2012       sales  1.9100000
5  2013       sales  3.5000000
6  2014       sales  5.7100000
7  2015       sales  9.1200000
8  2016       sales 12.0700000
9  2017       sales 16.8200000
10 2018       sales 21.3500000
11 2019       sales 26.8400000
12 2009 growth_rate         NA
13 2010 growth_rate 17.7200000
14 2011 growth_rate  4.5555556
15 2012 growth_rate  2.6730769
16 2013 growth_rate  0.8324607
17 2014 growth_rate  0.6314286
18 2015 growth_rate  0.5971979
19 2016 growth_rate  0.3234649
20 2017 growth_rate  0.3935377
21 2018 growth_rate  0.2693222
22 2019 growth_rate  0.2571429

繪制散點(diǎn)

首先我們將數(shù)據(jù)框中的散點(diǎn)映射到圖像中:

dat_overview %>%
  gather(sales, growth_rate, key = "var", value = "value") %>%
  ggplot(aes(x = year, y = value, col = var)) +
  geom_point(size = 3, alpha = 0.6)

這里我們使用的是管道數(shù)據(jù)的 ggplot 的繪制方法,所以數(shù)據(jù)集直接使用 %>% 連接即可,不需要寫在 ggplot() 函數(shù)中。

同時(shí)關(guān)于繪圖,上面只是修改了我們散點(diǎn)的尺寸與透明度:size = 3, alpha = 0.6,得到的繪圖如下面所示。

這時(shí)候的圖還是非常 吃藕 (chou) 的,下面我們再精雕細(xì)琢一些坐標(biāo)的布局與名稱。

修改兩坐標(biāo)軸信息

先直接上代碼:

dat_overview %>%
  gather(sales, growth_rate, key = "var", value = "value") %>%
  ggplot(aes(x = year, y = value, col = var)) +
  geom_point(size = 3, alpha = 0.6) +
  scale_y_continuous("增長率", labels = scales::percent,
                     sec.axis = sec_axis(~ . * 100, name = "銷售額 (億元)")) +
  # scale_color_manual(labels = c("增長率", "銷售額 (億元)"), values = c("blue", "red")) +
  scale_color_discrete(labels = c("增長率", "銷售額 (億元)")) +
  labs(title = "2009 - 2019 年銷售額與增長率", x = "年份") +
  theme(legend.position = "bottom",
        legend.title = element_blank(),
        plot.title = element_text(hjust = 0.5))

這里我們新添加了 scale_y_continuous(),這里是修改 y 軸的刻度,首先我們修改了 y 軸左軸的名稱,為增長率,然后 label = scales::percent 表示將刻度上的數(shù)值以百分比的形式顯示。

最后 sec.axis = sec_axis(~ . * 100, name = "銷售額 (億元)") 則是添加右側(cè) y 軸 (這里叫 scecond axis),刻度為原始刻度乘以100,這里乘以100是由于我們在生成銷售額數(shù)據(jù)的時(shí)候,為了容易尺度范圍,除以了100,同時(shí)添加右側(cè) y 軸的名稱: "銷售額 (億元)"。

scale_color_discrete() 表示將我們的圖例中的名稱進(jìn)行修改:英文改成中文。

也可以使用注釋中的 scale_color_manual() 函數(shù),同時(shí)修改名稱與散點(diǎn)的顏色,這里添加了注釋,需要的童鞋可以取消注釋,同時(shí)將 scale_color_discrete() 打上注釋。

接著我們再修改一些主題設(shè)置:legend.position = "bottom" 將我們圖例的標(biāo)簽調(diào)整到底部。其它的設(shè)置都是一些常規(guī)操作,可以翻看前面的博文,這里就不進(jìn)行細(xì)說了。

最后就能得到我們最終的成果!

以上就是R語言數(shù)據(jù)可視化ggplot添加左右y軸繪制天貓雙十一銷售額的詳細(xì)內(nèi)容,更多關(guān)于ggplot添加左右兩邊y軸的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • R語言控制結(jié)構(gòu)知識點(diǎn)總結(jié)

    R語言控制結(jié)構(gòu)知識點(diǎn)總結(jié)

    在本篇文章里小編給大家整理一篇關(guān)于R語言控制結(jié)構(gòu)知識點(diǎn)總結(jié)內(nèi)容,有興趣的朋友們可以學(xué)習(xí)參考下。
    2021-03-03
  • R語言中aggregate?函數(shù)詳解

    R語言中aggregate?函數(shù)詳解

    這篇文章主要介紹了R語言中aggregate?函數(shù)的相關(guān)資料,aggregate函數(shù)是數(shù)據(jù)處理中常用到的函數(shù),具有強(qiáng)大的功能,可以按照要求把數(shù)據(jù)打組聚合,然后對聚合以后的數(shù)據(jù)進(jìn)行加和、求平均等各種操作,需要的朋友可以參考下
    2023-04-04
  • R語言strsplit函數(shù)用法深入詳解

    R語言strsplit函數(shù)用法深入詳解

    這篇文章主要介紹了R語言strsplit函數(shù)用法深入詳解,代碼實(shí)例講解的很清晰,有感興趣的同學(xué)可以研究下
    2021-03-03
  • R語言中的因子類型詳解

    R語言中的因子類型詳解

    這篇文章主要介紹了R語言中的因子類型詳解,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-04-04
  • R語言常量知識點(diǎn)總結(jié)

    R語言常量知識點(diǎn)總結(jié)

    在本篇文章里小編給大家整理了一篇關(guān)于R語言常量知識點(diǎn)總結(jié)內(nèi)容,有興趣的朋友們可以學(xué)習(xí)分享下。
    2021-03-03
  • R語言 實(shí)現(xiàn)將數(shù)據(jù)框中的字符類型數(shù)字轉(zhuǎn)換為數(shù)值

    R語言 實(shí)現(xiàn)將數(shù)據(jù)框中的字符類型數(shù)字轉(zhuǎn)換為數(shù)值

    這篇文章主要介紹了R語言 實(shí)現(xiàn)將數(shù)據(jù)框中的字符類型數(shù)字轉(zhuǎn)換為數(shù)值,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-03-03
  • R語言批量讀取某路徑下文件內(nèi)容的方法

    R語言批量讀取某路徑下文件內(nèi)容的方法

    批量地做就是解放雙手地過程,本文主要介紹了R語言批量讀取某路徑下文件內(nèi)容的方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-04-04
  • R語言中quantile()函數(shù)的用法說明

    R語言中quantile()函數(shù)的用法說明

    這篇文章主要介紹了R語言中quantile()函數(shù)的用法說明,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-04-04
  • 教你利用R語言測試電腦的性能

    教你利用R語言測試電腦的性能

    這篇文章主要介紹了利用R語言測試電腦的性能如何,通過矩陣的運(yùn)算來計(jì)算,本文通過代碼講解的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-04-04
  • R語言繪圖布局實(shí)例講解

    R語言繪圖布局實(shí)例講解

    這篇文章主要介紹了R語言繪圖布局實(shí)例講解,文中實(shí)例講解的很清晰,有感興趣的同學(xué)可以研究下
    2021-03-03

最新評論

宁德市| 延寿县| 孝义市| 眉山市| 吴桥县| 宁阳县| 遂溪县| 松原市| 庆元县| 赤水市| 大厂| 滨海县| 兴城市| 阿合奇县| 临沂市| 温州市| 乌拉特前旗| 和平区| 腾冲县| 凉城县| 金乡县| 光山县| 余干县| 怀仁县| 邵阳县| 邯郸县| 六安市| 张家界市| 嘉兴市| 崇仁县| 房产| 三门县| 恩平市| 广河县| 夏河县| 广南县| 庆阳市| 迁安市| 富川| 满城县| 呼图壁县|