使用scale_color_viridis

时间:2018-11-14 04:57:20

标签: r ggplot2 viridis

代码如下:

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 :(得分:4)

要回答您的主要问题,您应该可以将limits = c(0, 4)作为参数传递给viridis::scale_color_viridis(),即

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

其他几点:

  • ggplot2的较新版本内置了绿色刻度,因此您应该可以使用:
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将在数据框中查找列名。