Установите максимальное значение в цветовой карте при использовании scale_color_viridis - PullRequest
0 голосов
/ 14 ноября 2018

Вот код:

pic = ggplot(df_2, 
aes(x = df_2$X, xend = df_2$X + df_2$dx, y = df_2$Y, yend = df_2$Y + df_2$dy, color =  df_2$speedkt)) +
labs(title ="Surface Currents", x = "Longitude", y = "Latitude", colour="Speed (kts)") +    
geom_segment(alpha = 0.7, arrow = arrow(length = unit(0.1,"cm"))) + coord_fixed() +
theme(panel.background = element_rect(fill = "transparent",colour = NA), plot.background = element_rect(fill = "transparent",colour = NA)) +
viridis::scale_color_viridis(option = "B", direction = -1)   

Вы можете видеть, что градиент цвета соответствует значению df_2$speedkt. Максимальное значение df_2$speedkt составляет около 2,6.

Итак, максимальное значение цветовой карты в легенде составляет около 2,8.

Но я хочу изменить максимальное значение цветовой карты на 4.0.

Что я могу сделать?

Colormap in Legend Highlighted

1 Ответ

0 голосов
/ 14 ноября 2018

Чтобы ответить на ваш главный вопрос, вы должны быть в состоянии передать limits = c(0, 4) в качестве аргумента viridis::scale_color_viridis(), т.е.

viridis::scale_color_viridis(option = "B", direction = -1, limits = c(0, 4))

Пара других пунктов:

  • Более новые версии ggplot2 имеют встроенные весы viridis, поэтому вы должны иметь возможность использовать:
scale_color_viridis_c(option = "B", direction = -1, limits = c(0, 4))
  • В общем, лучше не использовать df$col в aes(), просто использовать имя столбца, например,
ggplot(df_2, aes(x = X, xend = X + dx, y = Y))

ggplot выполнит поиск имен столбцов внутри фрейма данных.

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