iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 6
2
Software Development

自動化測試開發的美麗與憂愁系列 第 6

資料分析之R語言的圖表好漂亮, 要怎麼做??

  • 分享至 

  • xImage
  •  

事情是這樣發生的 ....

在做某個資料分析的案子時, 日本客戶要求要先給一個分析圖的範本, 之後就都要套用這個範本

[同事F] 直接去某個網站截了一張圖, 直接當成範本給客戶看
[日本客戶] 看完後表示很滿意, 你們之後給我們的資料分析圖表就都要長這樣了 ....

範本如下:

問題來了 ....
單位上沒有人會做這個樣式的圖表 ... /images/emoticon/emoticon16.gif

去問了斯踢歐 要怎麼做?
斯踢歐: 你們就用Excel 做一做在用拼貼的方式 就可以做出來了
我們: /images/emoticon/emoticon17.gif

======= 分隔線 =======

這個圖表是用R 語言套件ggplot2 中的geom_jitter 做出來的. 為此, 筆者當初還特別去找了R社群中的博亮大大學習R入門. 這也是筆者學習R 語言的主要原因

而在某次的聚會中, 一個社群朋友表示: python也可以使用ggplot 套件啊, 為啥還特別的來學R ??

人人都愛欣賞美麗的事物 ....
/images/emoticon/emoticon32.gif

實作 - 如何使用R 畫出上面的分析圖
準備項目:

  • csv RAW data
  • 要先裝好R的library
    • plyr
    • ggplot2
  1. 安裝library
    在R shell 中輸入install.packages(package name) 就會開始安裝

    PS: 較新版的 R語言 可能有內建這次需要使用的library

  2. 以下是R 語言將 csv raw data 轉成點點圖表的寫法:

name <- "demo.csv"

n <- strsplit(name,'.',fixed = TRUE)[[1]]
fname <- n[1:1]
library(ggplot2)
dt <- read.table(name, header=TRUE, sep=",", na.strings="NA", dec=".", strip.white=TRUE)
dt$SSD <- factor(dt$SSD)  
str(dt)
filtertps <- function(y) { subset(y, TPS>100)  }
dd=subset(filtertps(dt))
m <- ggplot(dd, aes(x=SSD, y=TPS)) + geom_jitter(size=2, aes(color=SSD)) + labs(x='', y='TPS (Transaction per second)') +  guides(color=FALSE)
library(plyr)
dd.mean <- ddply(dd,'SSD',summarize, TPS = round(mean(TPS), 2), RT = round(mean(RT), 2))
m + geom_text(data=dd.mean, aes(x=SSD, label=TPS)) + theme(axis.text.x=element_text(angle=45,vjust=1,hjust=1,color="black",size="10"))
#ggsave(paste(n[1], "png", sep=".") ,width=8, height=5, dpi=400)
  1. 點選圖形介面上的source按鈕就可以直接執行並產出圖表
  2. 如果需要直接將圖表自動存成png檔, 直接將ggsave 那行解除註解即可
ggsave(paste(n[1], "png", sep=".") ,width=8, height=5, dpi=400)
  1. 執行成功後, 就會出現demo.png

PS: 筆者是使用RStudio 這個R 的IDE 套件

結論:
筆者後來就只會用R 做ggplot2 圖表跟打包成package 使用
raw data 整理就給excel VBA或python去處理了
/images/emoticon/emoticon38.gif

參考資料:
RStudio
ggplot2_R lang
Demo project - Github


上一篇
天啊 !! Excel 執行到一半又當了 ಠ_ಥ
下一篇
好用的WYSIWYG 圖形介面設計工具 (python/ powershell)
系列文
自動化測試開發的美麗與憂愁30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言