日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

R语言数据可视化 ggplot2基础2 创建单图层的散点图 创建facet

發布時間:2025/4/14 49 豆豆
生活随笔 收集整理的這篇文章主要介紹了 R语言数据可视化 ggplot2基础2 创建单图层的散点图 创建facet 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

R語言數據可視化 ggplot2基礎2 創建單圖層的散點圖 創建facet

    • 單圖層散點圖
    • 單圖層散點圖的facet

單圖層散點圖

這一講我們從最簡單的散點圖開始介紹ggplot2應用的基礎,首先我們下載并應用tidyverse包:

install.packages("tidyverse") library(tidyverse)

用tidyverse自帶的數據mpg舉例,

> ggplot2::mpg # A tibble: 234 x 11manufacturer model displ year cyl trans drv cty<chr> <chr> <dbl> <int> <int> <chr> <chr> <int>1 audi a4 1.8 1999 4 auto~ f 182 audi a4 1.8 1999 4 manu~ f 213 audi a4 2 2008 4 manu~ f 204 audi a4 2 2008 4 auto~ f 215 audi a4 2.8 1999 6 auto~ f 166 audi a4 2.8 1999 6 manu~ f 187 audi a4 3.1 2008 6 auto~ f 188 audi a4 q~ 1.8 1999 4 manu~ 4 189 audi a4 q~ 1.8 1999 4 auto~ 4 16 10 audi a4 q~ 2 2008 4 manu~ 4 20 # ... with 224 more rows, and 3 more variables: # hwy <int>, fl <chr>, class <chr>

在這個數據中,我們比較關注displ與hwy這兩個變量,displ表示引擎尺寸(升),hwy表示高速路上的燃油效率(英里/加侖)。為了展示這兩個變量之間的關系,我們先畫一個簡單的散點圖:

ggplot(data = mpg)+geom_point(mapping = aes(x = displ, y = hwy))

因為我們只想要一個散點圖,所以用minimal code,而不是用上一講介紹的Layered Grammar,如果用Layered Grammar來寫那就是

ggplot()+layer(data = mpg,mapping = aes(x = displ, y = hwy),geom = "point",stat = "identity",position="identity")+scale_y_continuous()+scale_x_continuous()+coord_cartesian()

這段代碼的輸出與minimal code輸出的圖像一樣,但這段代碼是嚴格按照Layered Grammar來寫的,ggplot()開頭表示接下來要應用圖形語法創建圖形對象,第一步是創建圖層,每一個圖層包含數據、映射(aesthetic mapping)、幾何對象、統計變換、位置調整;第二步是指定scale以及坐標系統;對比Layered Grammar與minimal code,大家可以開始建立一些直覺,哪些是可以省略的,哪些是minimal requirement,后續的代碼樣例都用minimal code。

整體來看這個散點圖是有一個下降的趨勢的,但右邊中部的哪些點很可能導致線性擬合殘差出現非線性pattern,因此我們希望引入另一個變量能解釋這種現象,于是我們可以把不同車型對應的散點用不同顏色表示:

ggplot(data = mpg)+geom_point(mapping = aes(x = displ, y = hwy, color = class))


這樣我們就可以分車型比較引擎尺寸與燃油效率的關系了。

大家可以自行嘗試在aesthetics mapping中把color=class改為alpha=class,shape=class或者size=class,這三個語句可以分別用透明度、點型、點的大小表示不同的車型。

單圖層散點圖的facet

如果我們不想把這些車型綜合到一張圖下比較,而是用subplot展示每一個車型引擎尺寸與燃油效率的關系,那么我們就需要創建facet了。

Minimal Code:

ggplot(data = mpg)+geom_point(mapping = aes(x = displ, y = hwy))+facet_wrap(~class,nrow = 2)

Layered Grammar:

ggplot()+layer(data = mpg,mapping = aes(x = displ, y = hwy),geom = "point",stat = "identity",position="identity")+facet_wrap(~class,nrow = 2)+scale_y_continuous()+scale_x_continuous()+coord_cartesian()


facet_wrap(~class,nrow = 2)表示用車型的數據作為subplot創建facet,subplot均勻排列為兩行。

也可以使用兩個變量創建facet,比如把facet_wrap(~class,nrow = 2)改成facet_grid(drv~cyl),得到的結果就是


如果想去掉行,只保留列,可以用facet_grid(.~cyl)替換,

總結

以上是生活随笔為你收集整理的R语言数据可视化 ggplot2基础2 创建单图层的散点图 创建facet的全部內容,希望文章能夠幫你解決所遇到的問題。

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