красивый ggplot с более чем 10 цветами - PullRequest
0 голосов
/ 28 мая 2018

Я начинаю с этого ggplot:

library(ggplot2) 
library(reshape2) 

data <- read.delim(textConnection("
Groups Time_1 Time_2 Time_3 Time_4
A 63.8 60.6 65.2 66.6
B 9.4 14.0 11.1 7.5
C 7.4 8.5 6.9 8.6
D 13.9 8.4 7.9 11.4
E 1.4 3.8 5.0 1.5
F 0.2 0.2 0.2 0.2
G 1.8 2.5 1.8 2.7
H 1.0 0.9 0.9 1.1
I 45.0 42.0 49.0 38.0
J 1.0 1.1 0.9 0.5
K 0.1 2.0 6.5 1.0
L 0.5 0.9 0.5 0.2
M 0.2 0.2 0.1 0.3"), sep = " ", header = T)


data_melt <- melt(data, id.var = "Groups")
data_melt$value <- as.numeric(data_melt$value)

ggplot <- ggplot(data=data_melt, aes(x=variable, y=value, group = Groups, color = Groups)) + geom_point(size = 1) + geom_line(size = 1)
ggplot

Однако, как вы можете видеть на графике, цветовой код не является оптимальным, и трудно определить, какой цвет соответствует каким группам, даже когдакривые хорошо разделены:

enter image description here

К сожалению, у меня всегда есть от 10 до 13 групп, и я потратил некоторое время на просмотр цветовой палитры Rно обычно они слишком малы.

Так что я ищу идеи о том, как улучшить цветовой код для улучшения моего графика, любая подсказка будет полезна!

Ответы [ 3 ]

0 голосов
/ 28 мая 2018

Если у вас есть переполненные данные, вы также можете подумать о том, чтобы огранить их так:

ggplot(data=data_melt[!is.na(data_melt$value),], aes(x=variable, y=value, group = Groups, color = Groups)) + 
  geom_point(size = 1) +
  geom_line(size = 1) +
  facet_wrap( ~ Groups) +
  theme(axis.text.x = element_text(angle = 90))

enter image description here

0 голосов
/ 29 мая 2018

Если вы используете расширение ggfocus , вы можете выделить наиболее важные уровни несколькими цветами и, например, сделать все остальные серыми.Если вас больше волнует только подгруппа уровней, вы можете уменьшить диапазон цветовой шкалы, не теряя информацию о полных данных.См. Пример ниже:

enter image description here

0 голосов
/ 28 мая 2018

http://colorbrewer2.org имеет несколько хороших палитр до 12 цветов (установите характер данных как «качественный»), достаточно просто перенести шестнадцатеричные значения в R. Вы должны придуматьсобственный твик для этого 13-го значения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...