R語言數(shù)據(jù)可視化繪制Circular?bar?plot實現(xiàn)環(huán)形柱狀圖
不知不覺,距離小仙上次發(fā)文已經(jīng)過去五個多月了。R語言作圖系列的更新頻率跟理想中的一月一次差別有點忒大了,不得不讓小仙陷入深深的反思,對于時間的規(guī)劃也有了一些新的感悟。
不知道大家有沒有跟我一樣的感受啊,舉些例子:
放學(xué)、下班或者放假之后先把學(xué)習(xí)任務(wù)扔在一邊,心想著,我先玩會游戲,等會玩夠了再做;
網(wǎng)上看到一篇干貨滿滿的文章,先點收藏,心想著,等我有空的時候再仔細看看;
聽說身邊的朋友利用空余時間做了什么了不起的事情,心想著,等我有空了,我也可以試一試;
…
這樣的例子數(shù)不勝數(shù)了,哈哈,小仙常想的就是,一個月有四個周末,這周末先休息,等下個周末再寫文章…
就這樣,周末要么覺得自己前一段太辛苦了要放松一下,要么在趕緊急的deadline,反倒是重要但是不那么緊急,也沒有人給設(shè)立deadline的發(fā)文大事業(yè)被耽誤了,哈哈。
現(xiàn)在小仙就覺得,等我有空了 = 沒有空, 很多時候,一些可做可不做的事情,等著等著就不做了。如果真的想做某件事情,要么立刻馬上行動起來,要么就安排好具體的時間(某一天的幾點到幾點之間),并且把有可能發(fā)生沖突的事情也安排好。
可惜目前小仙也只是能意識到這個問題,還不能合理安排好自己的時間,現(xiàn)在還是在摸索階段…
言歸正傳,這次給大家分享的圖,是這個樣子的,姑且稱之為環(huán)形柱狀圖
Step1. 繪圖數(shù)據(jù)的準備
首先還是要把你想要繪圖的數(shù)據(jù)調(diào)整成R語言可以識別的格式excel中保存成csv格式。
數(shù)據(jù)的格式如下圖:
Step2. 繪圖數(shù)據(jù)的讀取
data <- read.csv(“your file path”, header = T)
Step3.繪圖所需package的調(diào)用
library(ggplot2)
Step4.繪圖
先畫出普通的柱狀圖
p1 <- ggplot(data, aes(x = 書名, y = 銷量, fill = 書名)) + geom_bar(stat = "identity", width = 0.5) + theme(axis.text.x = element_text(angle = 45, hjust = 0.8, vjust = 0.9)) + xlab("銷量排行前十") + theme(legend.position = "none") + scale_y_continuous("銷量", breaks = c(0, 200000, 400000, 600000), labels = c("0", "200000", "400000", "600000")) p1
環(huán)形柱狀圖
p2 <- ggplot (data, aes(x = 書名,y = 銷量, fill = 書名)) + geom_bar(stat = "identity", width = 0.5) + theme(axis.text.x = element_text(angle = 45, hjust = 0.8, vjust = 0.9)) + xlab("銷量排行前十") + theme(legend.position = "none") + scale_y_continuous("銷量", breaks = c(0, 200000, 400000, 600000), labels = c("0", "200000", "400000", "600000")) + coord_polar(start = 7) p2
排好序的環(huán)形柱狀圖
data$書名 <- factor(data$書名) data$書名 <- reorder(data$書名, -data$銷量) p3 <- ggplot(data, aes(x = 書名,y = 銷量, fill = 書名)) + geom_bar(stat = "identity", width = 0.5) + theme(axis.text.x = element_text(angle = 45, hjust = 0.8, vjust = 0.9)) + xlab("銷量排行前十") + theme(legend.position = "none")+ scale_y_continuous("銷量", breaks = c(0, 200000, 400000, 600000), labels = c("0","200000","400000","600000")) +coord_polar(start = 7) p3
調(diào)整顏色
p4 <- ggplot(data, aes(x =書名,y = 銷量,fill = 分組)) + geom_bar(stat = "identity", width = 0.5) + theme(axis.text.x = element_text(angle = 45, hjust = 0.8, vjust = 0.9))+ xlab("銷量排行前十") + theme(legend.position = "none")+ scale_y_continuous("銷量", breaks = c(0, 200000, 400000, 600000), labels = c("0","200000","400000","600000")) + coord_polar(start = 7) + scale_fill_manual(values = c(第一梯隊="#E41A1C",第二梯隊="#377eb8",第三梯隊="gray")) p4
注意事項
在調(diào)整顏色的時候有個小插曲,一開始用的語句是
scale_fill_manual(values = c("#E41A1C", "#377eb8", "gray"))
但是得到的圖是這樣的
并不是"第一梯隊"給到了紅色
debug的時候發(fā)現(xiàn),data$分組 這一列的數(shù)據(jù)是這樣的,怪不得給不到想要的顏色
把scale_fill_manual()的語句調(diào)整一下就可以啦
scale_fill_manual(values = c(第一梯隊="#E41A1C",第二梯隊="#377eb8",第三梯隊="gray"))
以上就是R語言數(shù)據(jù)可視化繪制Circular bar plot實現(xiàn)環(huán)形柱狀圖的詳細內(nèi)容,更多關(guān)于R語言繪制Circular bar plot環(huán)形柱狀圖的資料請關(guān)注腳本之家其它相關(guān)文章!