利用ggplot構(gòu)造繪圖函數(shù)2018-04-29

繪制圖形過程中瞭稼,常常需要精細化調(diào)節(jié),這就需要我們對于各種繪圖參數(shù)有一定的把握腻惠。下面我以一個簡單的例子來介紹我自己的常用背景參數(shù)設置环肘。
數(shù)據(jù)使用iris數(shù)據(jù),主要探索Sepal的長度與寬度的相互關(guān)系集灌。主要要求是將Species考慮也考慮在內(nèi)悔雹。
下面探索一下iris數(shù)據(jù)的特點。

str(iris)
搜狗截圖18年04月29日2226_2.png

在ggplot框架下欣喧,我們能夠很快的繪制出想要的模型:

library(ggplot2)
pic <- ggplot(data=iris, aes(x=Sepal.Length,y=Sepal.Width,color=Species,shape=Species)) + geom_point()
opic <- pic
pic

搜狗截圖18年04月29日2200_1.png

這個圖形可以形象化的表現(xiàn)出Sepal的長度與寬度的關(guān)系腌零,但是這些圖形太過僵化,下面我們通過微調(diào)來定制屬于我們自己的圖片唆阿。
首先我們想對圖中點的大小益涧,顏色性狀進行調(diào)整,已符合特定的標準驯鳖。
對于點的形狀和顏色闲询,我們可以參考下面兩張圖片:


ggplot2-shape-identity.png
9vl3r5.png

下面構(gòu)造函數(shù)

# color and shape setting
cbbPalette <- c("#FF0000", "#9933FF", "#CC79A7")
shapeSet <- c(16,8,17)
pic <- pic + scale_fill_manual( values=cbbPalette)
pic <- pic + scale_colour_manual( values=cbbPalette)
pic <- pic + scale_shape_manual(values =shapeSet)
pic 

效果如下:


2.png

其次,我們構(gòu)造一個特殊函數(shù)浅辙,該函數(shù)可以調(diào)整標簽扭弧、坐標軸以及圖形背景

  # axis setting
  axisSetting <- theme(  # remove grid line
    panel.border = element_blank(),
    axis.line = element_line(colour = "black"),
    panel.grid.major = element_blank(),
    panel.grid.minor = element_blank(),
    axis.title.x = element_text(size=15,color='black',face='bold'),
    axis.title.y = element_text(size=15,color='black',face='bold'))

代碼及效果圖如下

 pic <- pic + axisSetting
pic
23.png

再次,我們也構(gòu)造函數(shù)可對圖例進行微調(diào)记舆,以適應版面:

  legendSetting <- theme(
    legend.position = c(.95, .95),
    legend.justification = c("right", "top"),
    legend.box.just = "right",
    legend.margin = margin(6, 6, 6, 6)
    #legend.position = "none"
  )

代碼及效果如下:

pic  <- pic + legendSetting 
pic 
33.png

最后鸽捻,我們雖然可以對單張圖進行精細化調(diào)劑,但更希望構(gòu)造一個函數(shù)能夠同時對多張圖進行調(diào)節(jié)泽腮。結(jié)合上面三個討論御蒲,構(gòu)造一個整體函數(shù)

Adjust_picture<- function(data,x,y,group)
{
  
  #basic picture
  pic <-ggplot2::ggplot(data=data,ggplot2::aes_string(x=x,y=y, color=group,shape=group))+
    ggplot2::geom_point()
  
  # point type and color setting
  cbbPalette <- c("#FF0000", "#9933FF", "#CC79A7")
  shapeSet <- c(16,8,17)
  pic <- pic + scale_fill_manual( values=cbbPalette)
  pic <- pic + scale_colour_manual( values=cbbPalette)
  pic <- pic + scale_shape_manual(values =shapeSet)
  
  # axis setting
  axisSetting <- theme(  # remove grid line
    panel.border = element_blank(),
    axis.line = element_line(colour = "black"),
    panel.grid.major = element_blank(),
    panel.grid.minor = element_blank(),
    axis.title.x = element_text(size=15,color='black',face='bold'),
    axis.title.y = element_text(size=15,color='black',face='bold'))
  
  pic <- pic + axisSetting
  
  # legend setting
  legendSetting  <- theme(
    legend.position = c(.95, .95),
    legend.justification = c("right", "top"),
    legend.box.just = "right",
    legend.margin = margin(6, 6, 6, 6))
  
  pic <- pic + legendSetting
  pic
}

這樣我們就可以使用Adjust_picture 函數(shù)同時完成上述改進

Adjust_picture(iris,"Sepal.Length", "Sepal.Width","Species")

探索是無止境的,最后的最后我們可以使用同一個函數(shù)分析多種關(guān)系诊赊,也就是一頁多圖厚满,希望大家自己探索。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末豪筝,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子摘能,更是在濱河造成了極大的恐慌续崖,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,640評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件团搞,死亡現(xiàn)場離奇詭異严望,居然都是意外死亡,警方通過查閱死者的電腦和手機逻恐,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,254評論 3 395
  • 文/潘曉璐 我一進店門像吻,熙熙樓的掌柜王于貴愁眉苦臉地迎上來峻黍,“玉大人,你說我怎么就攤上這事拨匆∧飞” “怎么了?”我有些...
    開封第一講書人閱讀 165,011評論 0 355
  • 文/不壞的土叔 我叫張陵惭每,是天一觀的道長骨饿。 經(jīng)常有香客問我,道長台腥,這世上最難降的妖魔是什么宏赘? 我笑而不...
    開封第一講書人閱讀 58,755評論 1 294
  • 正文 為了忘掉前任,我火速辦了婚禮黎侈,結(jié)果婚禮上察署,老公的妹妹穿的比我還像新娘。我一直安慰自己峻汉,他們只是感情好贴汪,可當我...
    茶點故事閱讀 67,774評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著俱济,像睡著了一般嘶是。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上蛛碌,一...
    開封第一講書人閱讀 51,610評論 1 305
  • 那天聂喇,我揣著相機與錄音,去河邊找鬼蔚携。 笑死希太,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的酝蜒。 我是一名探鬼主播誊辉,決...
    沈念sama閱讀 40,352評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼亡脑!你這毒婦竟也來了堕澄?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,257評論 0 276
  • 序言:老撾萬榮一對情侶失蹤霉咨,失蹤者是張志新(化名)和其女友劉穎蛙紫,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體途戒,經(jīng)...
    沈念sama閱讀 45,717評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡坑傅,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,894評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了喷斋。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片唁毒。...
    茶點故事閱讀 40,021評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡蒜茴,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出浆西,到底是詐尸還是另有隱情粉私,我是刑警寧澤,帶...
    沈念sama閱讀 35,735評論 5 346
  • 正文 年R本政府宣布室谚,位于F島的核電站毡鉴,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏秒赤。R本人自食惡果不足惜猪瞬,卻給世界環(huán)境...
    茶點故事閱讀 41,354評論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望入篮。 院中可真熱鬧陈瘦,春花似錦、人聲如沸潮售。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,936評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽酥诽。三九已至鞍泉,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間肮帐,已是汗流浹背咖驮。 一陣腳步聲響...
    開封第一講書人閱讀 33,054評論 1 270
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留训枢,地道東北人托修。 一個月前我還...
    沈念sama閱讀 48,224評論 3 371
  • 正文 我出身青樓,卻偏偏與公主長得像恒界,于是被迫代替她去往敵國和親睦刃。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,974評論 2 355

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