【R】ロリポップチャート
2021年3月24日
備忘録的に、ロリポップチャートの書き方。こちらのページを参考にさせていただきました。
まずは、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. さいごに
たまに自分でもアプトプットしないと、忘れます。