中文字幕国产91无码|AV成人手机在线|av成人先锋在线|911无码在线国产人人操|91蜜桃视频精品免费在线|极品美女A∨片在线看|日韩在线成人视频日韩|电影三级成人黄免费影片|超碰97国产在线|国产成人精品色情免费视频

  • +1

提升R語言的數(shù)據(jù)可視化效果的五個范例

文/James 譯/LapYeung
2015-06-18 12:00
市政廳 >
字號

        文獻(xiàn)/ 眾山小 校核/ 張丹云 編輯/ 眾山小

        

        當(dāng)我開講R語言課程時,開場白通常是:紐約時報的視覺部門或Facebook,現(xiàn)在正在使用這款軟件來挖掘數(shù)據(jù),給出壯美的可視化效果。不過,說完這些之后,我需要努力給出實際的案例,以展示R語言輸出的結(jié)果如何變?yōu)榱钊苏痼@的、信息量巨大的圖片?,F(xiàn)在,這終于不再那么困難了。

        去年,我與一位妙人設(shè)計師Oliver Uberti,一起寫了一本書,其中有100多幅關(guān)于倫敦的地圖和信息圖。我們?yōu)檫@本《倫敦:信息之都》制作的絕大部分信息圖,需要利用R語言,呈現(xiàn)某些形狀或形式。R語言可用來做任何事,從簡化數(shù)百萬的GPS數(shù)據(jù),到制作泡泡圖或簡單繪制大量直線。我們每三天就得做出一張圖,以在截止期限前完成,如果復(fù)制粘貼R語言的代碼毫無效率,或制作任何圖片都沒有靈活性,那么這本書不可能完成。如果你對利用R語言創(chuàng)作偉大圖片的過程感興趣,請注意下面展示的5組圖片,包括利用R語言剛制作出的草圖,到最后成型的作品。

        這張圖片展示了英格蘭南部通勤者起訖點(diǎn)流。在R語言中,我利用絕妙的ggplot2包中的geom_segment()命令,繪制起訖點(diǎn)重心間纖細(xì)透明的白色線條。我覺得,R語言制作出的圖片在黑色背景下顯得特別漂亮,不過,之后我們將其導(dǎo)入AdobeIllustrator,Oliver將一系列透明效果應(yīng)用在線條上,使得線條在深藍(lán)的背景下熠熠奪目(我們在整本書中使用了深藍(lán))。
                
        這是我們制作的一張圖片,展示了倫敦晝夜的人口分布,這里只展示晚上。為了制作這幅圖,我復(fù)制了制作人口線圖的代碼,而Oliver努力手動清除了我過度繪制的紅色線條的邊緣(我在ggplot2中調(diào)試不出如何自動清除線條)。然后,在Illustrator中,轉(zhuǎn)換了顏色,增加了標(biāo)簽。
                
        這本書中我最愛的一張圖片,顯示了泰特美術(shù)館中每位藝術(shù)家作品的數(shù)量。這里只展示了一小部分,而其全景尤為壯觀,因為其中心突出了一幅特納的繪畫。這張圖片以樹形圖的形式展示,矩形框的大小表示藝術(shù)家作品數(shù)量多少??梢院芎唵蔚卦赗語言的treemap包中使用treemap()功能來制作。Oliver費(fèi)勁地將輸出的圖片打碎成小片,把矩形轉(zhuǎn)換為圖片相框,并將其掛在“墻上”。
                
        這張地圖展示了倫敦一天中騎行者的情況。在這個例子中,R語言輸出圖片后,無需做太多工作,只是增加了泰晤士河、一些標(biāo)簽,然后優(yōu)化了印刷顏色。這張地圖中描繪出了幾十萬條線段,這也是R語言繪制海量數(shù)據(jù)能力的極佳例證。
        
        

        

        上圖是至今為止書中最火的一張圖片。該圖利用了2011年的人口普查數(shù)據(jù)制作了不同婚姻狀況的人口分布地圖,并以水流圖的形式展示出了絕對數(shù)量。利用ggplot2包制作出了地圖和圖片。我們堅持使用輸出時地圖的顏色,然后手動編輯水流圖的顏色。水流圖是利用ggplot2包中的geom_ribbon()功能制作的。

        

        
        目前為止展示的所有圖片都是從數(shù)據(jù)開始的,最少也有數(shù)千行數(shù)據(jù)。最后這張圖片,我們展示一個小型數(shù)據(jù)的例子—獲得藍(lán)色牌匾的100位倫敦人。手動編輯每個人的數(shù)據(jù),每個人的名字包含3個屬性:他們活著的年齡、他們創(chuàng)作最重要作品的年齡、他們一生中生活在倫敦的時期。多虧ggplot2包,我才能利用下面的代碼輸出上面看上去粗糙的圖片。Oliver拿過圖片,手指彈了彈,然后在Illustrator變換圖片的風(fēng)格、增加標(biāo)簽。這里最關(guān)鍵的是,R語言里的幾行代碼,節(jié)省了一天手工繪制線條的時間。

        

        

        #We order by age of when the person startedliving in London, this is the order field.

        ggplot(Data,aes(order,origin))+geom_segment(aes(xend=order,yend=Age))+geom_segment(aes(x=order,y=st_age, xend=order, yend=end_age),col="red")+geom_segment(aes(x=order,y=st_age2, xend=order,yend=end_age2), col="yellow")+ coord_polar()

        

        源自微信公眾號“一覽眾山小-可持續(xù)城市與交通”

        

    澎湃新聞報料:021-962866
    澎湃新聞,未經(jīng)授權(quán)不得轉(zhuǎn)載
    +1
    收藏
    我要舉報
            查看更多

            掃碼下載澎湃新聞客戶端

            滬ICP備14003370號

            滬公網(wǎng)安備31010602000299號

            互聯(lián)網(wǎng)新聞信息服務(wù)許可證:31120170006

            增值電信業(yè)務(wù)經(jīng)營許可證:滬B2-2017116

            ? 2014-2026 上海東方報業(yè)有限公司