6個技巧,讓你的視覺化看起來更專業
當我開始使用R時,像任何初學者一樣,我想要一個真正能夠工作的程式碼和一個最低限度可理解的影象,並且很長一段時間這是我的主要目標,但是一旦這一點完成後,我意識到我的視覺化看起來很糟糕,特別是在比較和審查其他部落格和網站之後,我開始搜尋 如何改進我的視覺化 。 下面,建立一個簡單且專業的影象的一些技巧,以吸引讀者的注意力。
1 建立視覺化
讓我們開始一個簡單的視覺化,來自diamonds資料集的直方圖。
library(ggplot2) visualization <- ggplot(diamonds, aes(carat, fill = cut)) + geom_histogram(bins = 30)
1.1 包括上下文資訊:標題、副標題和腳註
我們為什麼要新增這些資訊?因為這是一個快速和簡單的方式來給圖形上下文,並讓讀者理解我們在談論什麼。 新增這些資訊的第二個原因是對我們所看到的內容有一個共同的理解。所有的文字都允許我們與讀者“交談”,並說:
- 你看到的圖形顯示的是“磚石資料集直方圖”
- 這張圖“讓我們看到”克拉的分佈。
- 該資料的來源是gglopt2包,該圖形的作者是部落格thinkingondata.com
另一個需要考慮的問題是,如果您包含了原始碼,那麼您就為您的工作添加了一個可信度層,因為讀者知道您的資料來自哪裡。
visualization <- visualization + labs( title ="Histogram for Diamond dataset", subtitle = "This is a general example in order to show the distribution of carats.", caption = "source: gglopt2 package\nauthor: thinkingondata.com")
1.2 包括一個專業的調色盤的顏色
我愛上了Viridis調色盤,所以我把它包含在我的所有圖形中,使用相同的調色盤一直使得選擇顏色的過程非常容易,同時,作為次要的好處統一了所有的視覺化 我的工作。
visualization <- visualization + scale_fill_viridis(discrete = TRUE)
1.3 包括主題
包含主題允許我們為視覺化提供預定義的格式,讓我們將其視為Times New Roman中編寫的文件或Helvetica中的同一文件之間的區別。
我們可以在同一個簡報中的所有視覺化中使用相同的主題,以建立一致感,例如在此部落格中,所有視覺化都使用相同的主題:theme_minimal。 ofollow,noindex" target="_blank"> 有很多預定義的主題 ,如果你覺得你想要一些特別的東西,總有機會建立自己的 主題 。
visualization <- visualization + theme_minimal()
1.4 刪除變數
很多時候,太多的資訊會影響讀者的注意,從視覺化中刪除隱含資訊是一個好主意,在這種情況下,我認為我們不需要在軸中包含變數的名稱。
儘管你可以刪除x軸標籤,但這並不總是一個好主意:取決於很多視覺化的標題和表示格式。 在某些情況下,如果您在標題中包含相同的資訊,刪除標籤可能是一個不錯的選擇。
visualization <- visualization + theme(axis.title.x=element_blank(), axis.title.y=element_blank())
2 統一感
為什麼我們要為我們的影象集創造一種統一感?因為如果一切都很和諧,就更容易閱讀我們正在接收的資訊:顏色,影象,風格,來源......我們可以考慮像流動一樣的資訊,在這種情況下我們想要一個柔和的流動,某些東西讀者幾乎察覺不到。
在建立簡報時 - 將其命名為報表,專案,文章 - 可能我們正在使用一組視覺化,並且在編輯結束之前重要的是建立類似的樣式以便於吸引讀者:使用相同型別的字母,保持標題和副標題的使用不變,引用源,使用相同的調色盤,我們正在建立一種通用格式,一種通用語言。
理解視覺化是一種努力,一種注意力的努力。如果有人做了一次努力,我們不會每次為每個新影象重新建立相同的工作量。
一些例子:
-
flowingdata.com,當所有視覺化都保持相似的特徵時,即使大多數時候每個帖子的主題都完全不同。
-
theeconomist.com,所有的視覺化都有類似的風格,如果我們是常規讀者,我們知道他們的視覺化,標題,字幕和非常相似的顏色選擇的相同位置,當我們檢查新的視覺化時,我們將重點放在訊息是什麼,而不是試圖重新解釋一切(再次!)。
2.1 使用GRIDEXTRA庫將多個圖形混合在一起
使用gridExtra庫我們可以把多個視覺化中建立一個視覺化。 所有影象一起幫助我們更好地瞭解所選顏色以及它們如何相互作用。 這並不意味著我們必須在我們的演示中一起使用這些影象,這是為了方便決策者瞭解什麼是最適合所有人的風格。
讓我們用兩個視覺化實現一個例子。
## Initial vis_a <- ggplot(diamonds, aes(x = price, fill = cut)) + geom_bar(stat = "bin") vis_b <- ggplot(diamonds, aes(x=clarity,fill=clarity)) + geom_bar() grid.arrange(vis_a, vis_b)
包含的格式:
## Testing format vis_a <- ggplot(diamonds, aes(x = price, fill = cut)) + geom_bar(stat = "bin") + theme_minimal() + vis_text vis_b <- ggplot(diamonds) + geom_bar(mapping = aes(x = cut)) + theme_minimal() + vis_text
我們已經有兩種具有正確格式的視覺化,指示它們來自哪裡,但少了調色盤是不好的。
2.2 包括專業的PALETTE
我選擇了兩種不同的方式來包含Viridis調色盤中的顏色,以創造一種統一感。
## Final vis_a <- ggplot(diamonds, aes(x = price, fill = cut)) + geom_bar(stat = "bin") + theme_minimal() + scale_fill_viridis(discrete = TRUE) + vis_text ## Picking manually 8 colors from Viridis Palette library(scales) q_colors <-8 v_colors <-viridis(q_colors, option = "D") vis_b <- ggplot(diamonds, aes(x=clarity,fill=clarity)) + geom_bar()+ scale_fill_manual(values=v_colors) + theme_minimal()+ vis_text library(gridExtra) grid.arrange(vis_a, vis_b)
2.3 從多個圖形中建立獨特的視覺化
有時,使用多個圖表建立一個獨特的視覺化可能是一個好主意,在這種情況下,我們可以使用以下庫之一:
GRIDEXTRA庫提供許多使用者級函式來處理“網格”圖形,特別是在頁面上排列多個基於網格的圖,並繪製表格。
COWPLOT庫這個軟體包可以很容易地將多個'ggplot2'圖組合成一個圖並用字母標記它們,例如 A,B,C等,這是科學出版物經常需要的。
PATCHWORK庫PATCHWORK包使得在ggplot中建立具有多個面板的佈局變得非常容易。 PATCHWORK的目標是使單獨的ggplots組合到同一圖形中變得簡單。 因此,它嘗試解決與gridExtra :: grid.arrange()和cowplot :: plot_grid相同的問題,但使用的是引發探索和迭代的API。
最好的結果
對於我們的示例,我們使用cowplot庫或PATCHWORK庫(最終結果幾乎相同)獲得了最好的結果,而不是gridExtra庫,但是因為我們正在使用一組非常有限的示例(只有一個!),所以最好的結果 可能會根據您想要加入的圖表型別而有所不同。
兩個圖的程式碼
vis_text <- labs( title ="Exploring Diamond dataset", caption = "source: gglopt2 package") q_colors <-8 v_colors <-viridis(q_colors, option = "D") avg.y <- mean(as.double(diamonds$clarity))*10 vis_a <- ggplot(diamonds, aes(x = price, fill = cut)) + geom_bar(stat = "bin") + theme_bw() + scale_fill_viridis(discrete = TRUE) + vis_text vis_b <- ggplot(diamonds, aes(x=clarity,fill=clarity)) + geom_bar()+ geom_segment(aes(x=0, xend=.01, y=avg.y, yend=avg.y)) + scale_x_discrete(breaks = 1:8)+ scale_fill_manual(values=v_colors) + theme_bw()+ vis_text
使用COWPLOT庫
plot_grid(vis_a, vis_b, labels = c("A", "B"), nrow = 2, align = "v")
使用PATCHWORK庫
library(patchwork) vis_a + vis_b + plot_layout(ncol = 1)& theme_bw()
使用GRIDEXTRA庫
結果非常相似,但是兩個圖的沿x軸的尺寸是不同的。
grid.arrange(vis_a, vis_b)
結論
本文的目的是描述如何改進我們的影象,以及如何用很少的努力幫助讀者繼續閱讀並保持關注。 我希望第一個和最後一個影象之間的差異足夠大,能夠形成動力並從變化開始。
致謝和閱讀
ggplot2是一個用於程式語言R的資料視覺化包。您可以通過 官方文件 瞭解更多資訊,並通過使用ggplot2進行視覺化。
特別感謝Nathan Yu的書“ Visualize this ”,它在最初的章節中提出了關於專業視覺化應該是什麼樣子。
原文連結: http://www.thinkingondata.com/6-tips-to-make-your-visualizations-look-professional/
版權宣告: 作者保留權利。文章為作者獨立觀點,不代表資料人網立場。嚴禁修改,轉載請註明原文連結:http://shujuren.org/article/791.html
資料人網: 資料人學習,交流和分享的平臺,誠邀您創造和分享資料知識,共建和共享資料智庫。