【R語言學習筆記】探索ggplot的排列組合:線圖(一)

Ryan_Yang_發表於2017-04-05

上一節探索了散點圖,但是散點圖好像可以編輯的點不多,排列組合也不太多;下面進行線圖的探索

1、 最簡單的線圖
還是借用mtcars的資料集:

p<-ggplot(data=mtcars)
p+geom_line(aes(x=wt,y=mpg))

結果如圖:
這裡寫圖片描述

也就是橫軸為wt,縱軸為mpg的一個折線圖。這個折線圖和之前的散點圖非常相似,不過是把點用線之間連了起來。

下面進行上色,上色有兩個區別,第一個程式碼為:

p+geom_line(aes(x=wt,y=mpg),colour='red')

這個就是普通的上色,賦予line一個red色的線圖,圖形如下:
這裡寫圖片描述

這也是一般的上色方法。

但是在aes裡也可以加入colour引數,但是這個引數和之前的上色具有一定的區別,在aes裡上色就是針對x,y軸以外形成了一個新的引數(或者認為座標軸),所以在aes裡的colour會有單獨的一個標識,展示出第三個引數為colour,比如:

p+geom_line(aes(x=wt,y=mpg,colour='red'))

這裡寫圖片描述

在右側有一個圖例,展示出來。

2、帶粗細或帶不同顏色的線圖
下面再進行一個線圖中帶大小的展示,其實是線的粗細,這部分有點類似於散點圖的氣泡圖,個人理解,一般應用於類似既需要知道樣本的大小,又需要知道趨勢的一類圖,顏色也類似,但是顏色圖一般只有用粗一點的線才能看的清除。

假設按照年齡、身高、體重進行資料集的建立,我們都知道身高長到一定程度就不長了,但是體重仍舊會增長,所以建立如下資料集

set.seed(100)
d<-data.frame(
  weight=c(rnorm(9,1,0.1)*c(seq(1,1.8,0.1))*50,seq(90,110,2)),
  height=c(seq(1,1.8,0.1),rep(1.8,11)),
  age=seq(11,30,1)
)

資料為

    weight height age
1   47.48904    1.0  11
2   55.72342    1.1  12
3   59.52650    1.2  13
4   70.76410    1.3  14
5   70.81880    1.4  15
6   77.38973    1.5  16
7   75.34567    1.6  17
8   91.07353    1.7  18
9   82.57267    1.8  19
10  90.00000    1.8  20
11  92.00000    1.8  21
12  94.00000    1.8  22
13  96.00000    1.8  23
14  98.00000    1.8  24
15 100.00000    1.8  25
16 102.00000    1.8  26
17 104.00000    1.8  27
18 106.00000    1.8  28
19 108.00000    1.8  29
20 110.00000    1.8  30

可以看出,然後進行年齡和身高的關係展示,下面程式碼從兩個方面展示:線的粗細和顏色

p1<-ggplot(data=d)
p1+geom_line(aes(x=age,y=height,size=weight))
p1+geom_line(aes(x=age,y=height,colour=weight),size=2)

結果如下
粗細線圖

顏色線圖
第二個顏色線圖,為了看的清楚,加粗了(size=2)。

這兩個圖都是說明一個問題,就是大體上可以看到年齡過了20,身高就不漲了,體重卻仍舊在漲。

相關文章