【R】ロリポップチャート

備忘録的に、ロリポップチャートの書き方。こちらのページを参考にさせていただきました。

まずは、mtcarsのデータを使って最低限のロリポップチャートを書いてみます。

library(ggplot2)

mtcars$car <- row.names(mtcars)

ggplot(mtcars, aes(x = disp, y = car)) +
  geom_segment(aes(x = 0, y = car, xend = disp, yend = car)) +
  geom_point()

少し、ロリポップっぽく。

ggplot(mtcars, aes(x = disp, y = car, label = disp)) +
  geom_segment(aes(x = 0, y = car, xend = disp, yend = car)) +
  geom_point(color = 'yellow', size = 8) +
  geom_text(color = 'blue', size = 2)

各carのdispの平均を比較してみます。

library(tidyverse)

mtcars_mean <- mtcars %>%
  arrange(disp) %>%
  mutate(mean_disp = mean(disp),
         flag = ifelse(disp - mean_disp > 0, TRUE, FALSE),
         car = factor(car, levels = .$car))

head(mtcars_mean)
> head(mtcars_mean)
                mpg cyl  disp  hp drat    wt  qsec vs am gear carb            car mean_disp
Toyota Corolla 33.9   4  71.1  65 4.22 1.835 19.90  1  1    4    1 Toyota Corolla  230.7219
Honda Civic    30.4   4  75.7  52 4.93 1.615 18.52  1  1    4    2    Honda Civic  230.7219
Fiat 128       32.4   4  78.7  66 4.08 2.200 19.47  1  1    4    1       Fiat 128  230.7219
Fiat X1-9      27.3   4  79.0  66 4.08 1.935 18.90  1  1    4    1      Fiat X1-9  230.7219
Lotus Europa   30.4   4  95.1 113 3.77 1.513 16.90  1  1    5    2   Lotus Europa  230.7219
Datsun 710     22.8   4 108.0  93 3.85 2.320 18.61  1  1    4    1     Datsun 710  230.7219
                flag
Toyota Corolla FALSE
Honda Civic    FALSE
Fiat 128       FALSE
Fiat X1-9      FALSE
Lotus Europa   FALSE
Datsun 710     FALSE

チャートを書いてみます。

ggplot(mtcars_mean, aes(x = disp, y = car, color = flag)) +
  geom_segment(aes(x = mean_disp, y = car, xend = disp, yend = car)) +
  geom_point(size = 5)+
  scale_colour_manual(values = c("red", "blue")) +
  labs(title = "Displacement by Car") 

4. さいごに

たまに自分でもアプトプットしないと、忘れます。

Add a Comment

メールアドレスが公開されることはありません。