R包——ggplot2(一)

來源:互聯網
上載者:User

標籤:

關於ggplot2包(一) 關於ggplot2包(一)ggplot2基本要素
  • 資料(Data)和映射(Mapping)
  • 幾何對象(Geometric)
  • 尺規(Scale)
  • 統計變換(Statistics)
  • 座標系統(Coordinate)
  • 圖層(Layer)
  • 分面(Facet)
  • 主題(Theme)
資料(Data)和映射(Mapping)

下面用diamonds的資料為例,由於資料很大,隨機選取一個子集進行畫圖

> library(ggplot2)
> data(diamonds)
> set.seed(42)#設定產生隨機數的種子,使結果具有重複性
> small<-diamonds[sample(nrow(diamonds),1000),]#抽樣
> head(small)
carat cut color clarity depth table price x y z
49345 0.71 Very Good H SI1 62.5 60 2096 5.68 5.75 3.57
50545 0.79 Premium H SI1 61.8 59 2275 5.97 5.91 3.67
15434 1.03 Ideal F SI1 62.4 57 6178 6.48 6.44 4.03
44792 0.50 Ideal E VS2 62.2 54 1624 5.08 5.11 3.17
34614 0.27 Ideal E VS1 61.6 56 470 4.14 4.17 2.56
27998 0.30 Premium E VS2 61.7 58 658 4.32 4.34 2.67

summary一下

> summary(small)
carat cut color clarity depth
Min. :0.2200 Fair : 28 D:121 SI1 :258 Min. :55.20
1st Qu.:0.4000 Good : 88 E:186 VS2 :231 1st Qu.:61.00
Median :0.7100 Very Good:227 F:164 SI2 :175 Median :61.80
Mean :0.8187 Premium :257 G:216 VS1 :141 Mean :61.71
3rd Qu.:1.0700 Ideal :400 H:154 VVS2 : 91 3rd Qu.:62.50
Max. :2.6600 I:106 VVS1 : 67 Max. :72.20
J: 53 (Other): 37
table price x y
Min. :50.10 Min. : 342.0 Min. :3.850 Min. :3.840
1st Qu.:56.00 1st Qu.: 989.5 1st Qu.:4.740 1st Qu.:4.758
Median :57.00 Median : 2595.0 Median :5.750 Median :5.775


Mean :57.43 Mean : 4110.5 Mean :5.787 Mean :5.791
3rd Qu.:59.00 3rd Qu.: 5495.2 3rd Qu.:6.600 3rd Qu.:6.610
Max. :65.00 Max. :18795.0 Max. :8.830 Max. :8.870

z
Min. :2.330
1st Qu.:2.920
Median :3.550
Mean :3.572
3rd Qu.:4.070
Max. :5.580

以克拉(carat)數為X軸變數,價格(price)為Y軸變數

> p<-ggplot(data=small,mapping=aes(x=carat,y=price))#將資料對應到XY座標軸上

下面,畫出散佈圖

> p+geom_point()


如果想把切工(cut)映射到形狀屬性:

> p<-ggplot(data=small,mapping=aes(x=carat,y=price,shape=cut))
> p+geom_point()


如果想再將顏色(color)映射顏色屬性:

> p<-ggplot(data=small,mapping=aes(x=carat,y=price,shape=cut,colour=color))
> p+geom_point()

幾何對象(Geometric)

在上面的例子,各種屬性對應都由ggplot函數執行,只需要加一個圖層,使用geom_point()告訴ggplot要畫散佈圖,於是所有的屬性都映射到散點上。

再如geom_histogram用於長條圖,geom_bar用於畫柱狀圖,geom_boxplot用於畫箱式圖等。

,也可以用下面代碼,來畫

> p<-ggplot(small)
> p+geom_point(aes(x=carat,y=price,shape=cut,colour=color))
長條圖
>ggplot(small)+geom_histogram(aes(x=price))


同樣可以根據另外的變數給它填充顏色

>ggplot(small)+geom_histogram(aes(x=price,fill=cut))


同樣,可以將它們分開

>ggplot(small)+geom_histogram(aes(x=price, fill=cut), position="dodge")


還可以按照相對比例來畫,

>ggplot(small)+geom_histogram(aes(x=price, fill=cut), position="fill")

柱狀圖
> ggplot(small)+geom_bar(aes(x=clarity))


通過stat參數,可以讓geom_bar按指定高度畫圖,

> ggplot()+geom_bar(aes(x=c(LETTERS[1:3]),y=1:3), stat="identity")

密度函數圖
> ggplot(small)+geom_density(aes(x=price, colour=cut))

> ggplot(small)+geom_density(aes(x=price,fill=clarity))


colour參數指定的是顏色,fill是往曲線下面填充顏色

箱式圖
> ggplot(small)+geom_boxplot(aes(x=cut, y=price,fill=color))

下面是各種geom_xxx函數

geom_abline    geom_area  

geom_bar geom_bin2d

geom_blank geom_boxplot

geom_contour geom_crossbar

geom_density geom_density2d

geom_dotplot geom_errorbar

geom_errorbarh geom_freqpoly

geom_hex geom_histogram

geom_hline geom_jitter

geom_line geom_linerange

geom_map geom_path

geom_point geom_pointrange

geom_polygon geom_quantile

geom_raster geom_rect

geom_ribbon geom_rug

geom_segment geom_smooth

geom_step geom_text

geom_tile geom_violin

geom_vline

R包——ggplot2(一)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.