Data Viz- gghighlight


     本篇主要介紹gghighlight的功能,他厲害的地方在於能夠直接在ggplot的語法裡針對資料作類似filter()的處理,如果需要了解不同變數的表現或分布,可以跳過處理資料的部分直接作處理。
d <- purrr::map_dfr(
  letters,
  ~ data.frame(
    idx = 1:400,
    value = cumsum(runif(400, -1, 1)),
    type = .,
    flag = sample(c(TRUE, FALSE), size = 400, replace = TRUE),
    stringsAsFactors = FALSE
  )
)
head(d)
##   idx      value type  flag
## 1   1  0.2778376    a  TRUE
## 2   2  0.0184870    a  TRUE
## 3   3 -0.7318389    a  TRUE
## 4   4 -0.2737461    a FALSE
## 5   5  0.5060394    a FALSE
## 6   6  0.3209906    a  TRUE
直接先看ggplot:
#in ggplot & use tidyverse
ggplot(d) +
  geom_line(aes(idx, value, colour = type))




把最大值>20的type分出來
d_filtered <- d %>%
  group_by(type) %>% 
  filter(max(value) > 20) %>%
  ungroup()
ggplot(d_filtered) +
  geom_line(aes(idx, value, colour = type))

有gghighlight可以直接在作圖語法處理:
ggplot(d_filtered) +
  geom_line(aes(idx, value, colour = type)) + gghighlight(max(value) > 20)
## label_key: type
也可以為其加上theme,換言芝也可以和ggplot很常用到的語法搭配
ggplot(d) +
  geom_line(aes(idx, value, colour = type)) +
  gghighlight(max(value) > 19) +
  theme_minimal()
## label_key: type
當然facet_wrap()也沒問題
ggplot(d) +
  geom_line(aes(idx, value, colour = type)) +
  gghighlight(max(value) > 19) +
  theme_minimal() +
  facet_wrap(~ type)
## label_key: type
Barplot應用
#Barplot
ggplot(iris, aes(Sepal.Length, fill = Species)) +
  geom_histogram() +facet_wrap(~ Species)
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
有gghilight可以看出其它變數的分布
ggplot(iris, aes(Sepal.Length, fill = Species)) +
  geom_histogram() +facet_wrap(~ Species) + gghighlight()
## label_key: Species
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
也可以手工調整想看的線條
#Non-logical predicate
ggplot(d, aes(idx, value, colour = type)) +
  geom_line() +
  gghighlight(max(value), max_highlight = 5L)
## label_key: type
調整標籤大小:
#label
ggplot(d) +
  geom_line(aes(idx, value, colour = type)) +
  gghighlight(max(value) > 20, label_params = list(size = 10))
## label_key: type
不同的視覺手法:
#Different style
ggplot(d) +
  geom_line(aes(idx, value, colour = type), size = 5) +
  gghighlight(max(value) > 19,
              unhighlighted_params = list(size = 1, colour = alpha("blue", 0.4)))
## label_key: type












留言

這個網誌中的熱門文章

Word Vector & Word embedding 初探 - with n-Gram & GLOVE Model

文字探勘之關鍵字萃取 : TF-IDF , text-rank , RAKE

多元迴歸分析- subsets and shrinkage