R-ggridges包的改進

很忙,很久沒有寫文章。學習R繪圖,這些都是我的興趣愛好,並非我大的主業。也被我朋友說了很多次,別做這些沒用的,既不能帶來實際的收益,又耽誤正事的時間。

但是我可能對繪圖有著某種濃烈的興趣吧,所以總是抽出時間來瞎搗鼓這些。所以今天跟大家分享一個最近無意中實現的對於R-ggridges包的改進。ggridges包有一個很驚艷的函數geom_density_ridges_gradient()可以繪製多數據系列的核密度估計圖,如下圖所示:

#代碼如下:nlibrary(ggplot2)nlibrary(ggridges)n#theme_set(theme_ridges())nggplot(lincoln_weather, aes(x = `Mean Temperature [F]`, y = `Month`)) +ngeom_density_ridges_gradient(aes(fill = `Month`), scale = 3, size = 0.3) + theme(legend.position = "none")n

在這個函數中,fill的顏色還可以以x軸的數值作為映射,如下圖所示:

#代碼如下:

library(ggplot2)

library(ggridges)

#theme_set(theme_ridges())

library(RColorBrewer)

Colormap<- colorRampPalette(rev(brewer.pal(11,Spectral)))(32)

ggplot(lincoln_weather, aes(x = `Mean Temperature [F]`, y = `Month`)) +

geom_density_ridges_gradient(aes(fill = ..x..), scale = 3, size = 0.3 ) +

scale_fill_gradientn(colours=Colormap,name = "Temp. [F]")

但是這種圖好看歸好看,存在兩個問題:

1. 由於沒有Y軸數值,無法得知每個數據系列對應的Y軸數值,也就無法得到核密度估計得具體數值,只能看到數據大概的分布形狀;

2.這個函數只能繪製這種核密度估計的山峰疊巒圖,但是有時候我們只是想展示多數據系列的時序數據的波動,而不是核密度估計。

所以,我自己研究解決了這兩個問題:下圖就是核密度估計的山峰疊巒圖,但是每個數據系列的核密度估計面積的高度對應核密度估計得數值,這就相當於將Y軸的對應數值使用顏色映射實現啦。

下面就是使用山峰疊巒圖展示多數據系列的時序數據,而不是核密度估計,如下圖1所示。但是這個圖也存在之前的問題:由於沒有Y軸數值,無法得知每個數據系列對應的Y軸數值。圖2所示就將Y軸數值映射到顏色colormap,這樣就可以得到每個時間點對應的數值。n

圖1

圖2

大家,肯定想知道這些怎麼實現的。所以,我現在想把這幾個圖的函數打包供大家直接使用。但是由於我時間有限,最近比較忙。順便看有沒有有共同愛好的之士,同時又會打包的朋友。大家可以一起合作,將這幾個函數打包package,供大家直接使用。

ggplot2分面氣泡圖餅圖

ggplot2玫瑰圖案例

炫酷階梯狀圖表

構造方塊條形圖

多維放射狀流向圖

ggplot2高階案例應用

商務圖表案例:仿經濟學人分組漏斗圖~

你所不知道的R-柱形圖繪製細節問題!

和我一起學習克利夫蘭點圖系列

如需轉載請聯繫EasyCharts團隊!

微信後台回復「轉載」即可!


【書籍推薦】《Excel 數據之美--科學圖表與商業圖表的繪製》

【手冊獲取】國內首款-數據可視化參考手冊:專業繪圖必備

【必備插件】 EasyCharts -- Excel圖表插件

【網易雲課堂】 Excel 商業圖表修鍊秘笈之基礎篇

qm.qq.com/cgi-bin/qm/qr? (二維碼自動識別)

推薦閱讀:

仿經濟學人——矩陣氣泡圖
Excel圖表的基本類型與選擇
你會怎樣衡量你的產品? —— 一點產品數據分析的經驗分享
ECharts+Python 給你的數據做「美顏」
Python--matplotlib 繪圖可視化練手--折線圖/條形圖

TAG:R编程语言 | 数据可视化 | Excel图表绘制 |