【ggplot2繪圖二:散點圖】

2021.4.23
持續(xù)更新中救巷。壶熏。。

參考:《R數(shù)據(jù)可視化手冊》浦译、學術(shù)數(shù)據(jù)分析及可視化

1. 理解數(shù)據(jù)與圖層

library(ggplot2)
set.seed(999)
diamonds <- diamonds[sample(1:53940, 5000, replace = F),]
#數(shù)據(jù)寫在底層棒假,則對后續(xù)所有圖層有效
ggplot(diamonds, aes(carat, price, color = cut)) +
  geom_point(shape = 18)
#數(shù)據(jù)寫在單一圖層在,則只對該圖層有效
ggplot() +
  geom_point(data = diamonds, aes(carat, price, color = cut), shape = 18)

數(shù)據(jù)在初始圖層ggplot()中定義時精盅,對后續(xù)所有圖層有效帽哑,當多組數(shù)據(jù)時,可在每個圖層分別定義數(shù)據(jù)


2. 簡單散點圖

library(ggplot2)
library(tidyr)

df <- iris
#修改表頭
colnames(df) <- c('SepalL','SepalW','PetalL','PetalW','Species')
#寬數(shù)據(jù)變長數(shù)據(jù)
df <- gather(df, Index, Value, -Species)
#將Index和Value變量映射x軸和y軸叹俏,同時將Species分類變量映射顏色和形狀
ggplot(df, aes(Index, Value, color = Species, shape = Species))+
  #設置點的大小妻枕,透明度,類型
  geom_point(size = 3, alpha = .5, shape = 18)+
  #設置每個點的文本,去重復屡谐,文本位置
  geom_text(aes(label = Species), check_overlap = TRUE, vjust=4, hjust=0)
##添加單個標簽文本
##annotate('text', x = 6, y = 7.5, label = 'Scatter plot with a linear fit line',
##         color = 'red', fontface = 'italic')

  1. 映射給顏色或大小的變量是分類變量時述么,則是對數(shù)據(jù)進行分組;若映射的是連續(xù)性變量愕掏,則是一個漸變過程度秘。
  2. scale_shape_manual()scale_color_brewer函數(shù)可以后續(xù)自定義圖形和顏色。scale_color_brewer()調(diào)色盤選擇:https://www.datavis.ca/sasmac/brewerpal.html

3. 散點圖 +擬合線

3.1 線性擬合

ggplot(iris, aes(Sepal.Length, Petal.Length))+
  geom_point()+
  #設置擬合線是否顯示置信域饵撑,顏色剑梳,大小和類型
  geom_smooth(method = 'lm', formula = y ~ x, se = F, 
              color = 'red', size = 2, linetype = 3)
##若要虛化擬合線,需要換一個函數(shù)
##geom_line(stat = 'smooth', method = 'lm', se = F,
##         color = 'red', size = 2, linetype = 6, alpha = .2)
  1. 可選的形狀和線型:
    形狀和線型
  2. color參數(shù)設置在aes()之外滑潘,則所有的變量都設置成一個顏色阻荒,而在aes()之內(nèi),會給不同的因子或者數(shù)值上色
  3. 模型除了y ~ x之外众羡,也可以用y ~ log(x)y ~ poly(x, 2)蓖租、y ~ poly(x, 3)等多項式

3.2 添加新構(gòu)建模型的擬合線

思路:首先創(chuàng)建回歸模型粱侣,然后根據(jù)模型計算變量和預測值的大小,最后繪制回歸線即可蓖宦。

library(ggplot2)
library(gcookbook)
rm(list=ls())
#用lm()函數(shù)創(chuàng)建回歸模型
model <-  lm(heightIn ~ ageYear + I(ageYear^2), heightweight)
#創(chuàng)建包含變量ageYear最小值和最大值的列
xmin <-  min(heightweight$ageYear)
xmax <-  max(heightweight$ageYear)
predicted <-  data.frame(ageYear=seq(xmin, xmax, length.out=100))
#計算變量heightIn的預測值齐婴,之后predicted包含兩個變量ageYear和heightln
predicted$heightIn <-  predict(model, predicted)

#繪制點圖
p <- ggplot(heightweight, aes(x=ageYear, y=heightIn)) +
     geom_point()+
#添加回歸曲線
     geom_line(data=predicted, size=1)

4. 繪制兩組來自不同數(shù)據(jù)的點圖

library(tidyr)
library(ggplot2)
df <- iris
head(df)
#修改表頭
colnames(df) <- c('SpealL', 'SpepalW', 'PetalL', 'PetalW', 'Species')
#寬數(shù)據(jù)變長數(shù)據(jù)
df <- gather(df, Index, Value, -Species)
df

ggplot()+
  geom_point(data = df, aes(Species, Value, color =Index))+
  geom_point(data = iris, aes(Species, Sepal.Width, color = Species))

繪制多組不同數(shù)據(jù)時ggplot()不接任何參數(shù),后續(xù)繪圖函數(shù)調(diào)用參數(shù)data =分別指明具體的數(shù)據(jù)名稠茂。


5. 氣泡圖

ggplot(mtcars, aes(wt, mpg, color = factor(cyl)))+
  #將cyl影射給大小
  geom_point(aes(size = cyl))+
  #添加坐標
  scale_size(breaks = c(4,6,8))
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末柠偶,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子睬关,更是在濱河造成了極大的恐慌诱担,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,682評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件电爹,死亡現(xiàn)場離奇詭異蔫仙,居然都是意外死亡,警方通過查閱死者的電腦和手機丐箩,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,277評論 3 395
  • 文/潘曉璐 我一進店門摇邦,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人屎勘,你說我怎么就攤上這事施籍。” “怎么了概漱?”我有些...
    開封第一講書人閱讀 165,083評論 0 355
  • 文/不壞的土叔 我叫張陵丑慎,是天一觀的道長。 經(jīng)常有香客問我,道長立哑,這世上最難降的妖魔是什么夜惭? 我笑而不...
    開封第一講書人閱讀 58,763評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮铛绰,結(jié)果婚禮上诈茧,老公的妹妹穿的比我還像新娘。我一直安慰自己捂掰,他們只是感情好敢会,可當我...
    茶點故事閱讀 67,785評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著这嚣,像睡著了一般鸥昏。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上姐帚,一...
    開封第一講書人閱讀 51,624評論 1 305
  • 那天吏垮,我揣著相機與錄音,去河邊找鬼罐旗。 笑死膳汪,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的九秀。 我是一名探鬼主播遗嗽,決...
    沈念sama閱讀 40,358評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼鼓蜒!你這毒婦竟也來了痹换?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,261評論 0 276
  • 序言:老撾萬榮一對情侶失蹤都弹,失蹤者是張志新(化名)和其女友劉穎娇豫,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體缔杉,經(jīng)...
    沈念sama閱讀 45,722評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡锤躁,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,900評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了或详。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片系羞。...
    茶點故事閱讀 40,030評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖霸琴,靈堂內(nèi)的尸體忽然破棺而出椒振,到底是詐尸還是另有隱情,我是刑警寧澤梧乘,帶...
    沈念sama閱讀 35,737評論 5 346
  • 正文 年R本政府宣布澎迎,位于F島的核電站庐杨,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏夹供。R本人自食惡果不足惜灵份,卻給世界環(huán)境...
    茶點故事閱讀 41,360評論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望哮洽。 院中可真熱鬧填渠,春花似錦、人聲如沸鸟辅。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,941評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽匪凉。三九已至枪眉,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間再层,已是汗流浹背贸铜。 一陣腳步聲響...
    開封第一講書人閱讀 33,057評論 1 270
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留聂受,地道東北人萨脑。 一個月前我還...
    沈念sama閱讀 48,237評論 3 371
  • 正文 我出身青樓,卻偏偏與公主長得像饺饭,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子职车,可洞房花燭夜當晚...
    茶點故事閱讀 44,976評論 2 355

推薦閱讀更多精彩內(nèi)容