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

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

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

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

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

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

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

下面我們開(kāi)始一步一步來(lái)繪制出上圖所示的圖案~

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

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

年份 銷(xiāo)售額 增長(zhǎng)率
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

由于銷(xiāo)售額與增長(zhǎng)率都是近乎相同的量綱(單論數(shù)值看,都是在 0-3000 之間),所以我們?cè)谑孪瓤梢圆粚?duì)數(shù)據(jù)進(jìn)行變換,變換為統(tǒng)一的尺度。但我想要在坐標(biāo)軸上,增長(zhǎng)率以百分比的形式顯示,所以需要除以100,但增長(zhǎng)率除以100之后,為了把我們的兩個(gè) y 軸變換到同一個(gè)尺度區(qū)間,所以銷(xiāo)售額也需要隨之除以100。(注意,這里的銷(xiāo)售額除以100 可以不需要具體的實(shí)際意義,只是保證在圖像上呈現(xiàn)效果美觀(guān)即可,最后的實(shí)際區(qū)間我們可以通過(guò)修改坐標(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 童鞋可能知道,我們沒(méi)有辦法直接只用上述的數(shù)據(jù)在 ggplot 中進(jìn)行繪制,需要進(jìn)行一個(gè)變換,也就是將銷(xiāo)售額與增長(zhǎng)率并列,并且再加一列變量作為 index,具體操作我們可以使用管道數(shù)據(jù)處理的 package :tidyr。

具體的原因與使用方法可參見(jiàn):tidyr+ggplot2多個(gè)變量分層展示

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ù)集直接使用 %>% 連接即可,不需要寫(xiě)在 ggplot() 函數(shù)中。

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

這時(shí)候的圖還是非常 吃藕 (chou) 的,下面我們?cè)倬窦?xì)琢一些坐標(biāo)的布局與名稱(chēng)。

修改兩坐標(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("增長(zhǎng)率", labels = scales::percent,
                     sec.axis = sec_axis(~ . * 100, name = "銷(xiāo)售額 (億元)")) +
  # scale_color_manual(labels = c("增長(zhǎng)率", "銷(xiāo)售額 (億元)"), values = c("blue", "red")) +
  scale_color_discrete(labels = c("增長(zhǎng)率", "銷(xiāo)售額 (億元)")) +
  labs(title = "2009 - 2019 年銷(xiāo)售額與增長(zhǎng)率", x = "年份") +
  theme(legend.position = "bottom",
        legend.title = element_blank(),
        plot.title = element_text(hjust = 0.5))

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

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

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

也可以使用注釋中的 scale_color_manual() 函數(shù),同時(shí)修改名稱(chēng)與散點(diǎn)的顏色,這里添加了注釋?zhuān)枰耐梢匀∠⑨專(zhuān)瑫r(shí)將 scale_color_discrete() 打上注釋。

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

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

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

相關(guān)文章

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

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

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

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

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

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

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

    R語(yǔ)言中的因子類(lèi)型詳解

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

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

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

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

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

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

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

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

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

    教你利用R語(yǔ)言測(cè)試電腦的性能

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

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

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

最新評(píng)論

当阳市| 买车| 三台县| 白银市| 鹰潭市| 娱乐| 松阳县| 本溪| 大港区| 铁力市| 桦川县| 六盘水市| 涞水县| 虹口区| 唐海县| 海口市| 万年县| 射洪县| 科技| 昆明市| 深州市| 驻马店市| 中江县| 永寿县| 涟源市| 合作市| 独山县| 湘阴县| 富民县| 晴隆县| 星座| 磐石市| 通化县| 洪洞县| 南汇区| 昌平区| 文水县| 博野县| 桃园市| 交城县| 乌鲁木齐市|