Ошибка (связанная с цветами) при попытке построения графика с использованием heatmap.2 - PullRequest
0 голосов
/ 05 апреля 2019

Я пытаюсь создать сюжет, используя heatmap.2, но получаю сообщение об ошибке must have one more break than colour.

На случай, если это будет интересно, я адаптирую код этого парня: https://sebastianraschka.com/Articles/heatmaps_in_r.html

Вот часть кода, о которой идет речь:

# creates a own color palette 
my_palette <- colorRampPalette(c("snow", "yellow", "darkorange", "red"))(n = 299)

# (optional) defines the color breaks manually for a "skewed" color transition
col_breaks = c(seq(0,0.15,length=100), #white
               seq(0.16,0.29,length=100), # for yellow
               seq(0.3,0.5,length=100), # for orange
               seq(0.51,1,length=100))    # for red

Теперь меня действительно смущает то, что это работает:

# creates a own color palette 
my_palette <- colorRampPalette(c("snow", "yellow", "red"))(n = 299)


# (optional) defines the color breaks manually for a "skewed" color transition
col_breaks = c(seq(0,0.29,length=100),  #white
                  seq(0.3,0.5,length=100), # for yellow
                  seq(0.51,1,length=100))  # for red

Как мне кажется, я изменилодин раз правильно, прежде чем я не совсем понимаю, почему я не смог сделать это снова.

1 Ответ

1 голос
/ 08 апреля 2019

Решение:

# creates a own color palette 
my_palette <- colorRampPalette(c("snow", "yellow", "darkorange", "red"))(n = 399)

# (optional) defines the color breaks manually for a "skewed" color transition
col_breaks = c(seq(0,0.15,length=100), #white
               seq(0.16,0.29,length=100), # for yellow
               seq(0.3,0.5,length=100), # for orange
               seq(0.51,1,length=100))    # for red

с единственным значимым изменением n=399, так как вы определяете col_breaks длиной 400.

...