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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

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

發布時間:2025/4/14 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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的全部內容,希望文章能夠幫你解決所遇到的問題。

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