这是代码: 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$
... . . 这是代码:
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.
但我希望将colormap的最大值更改为4.0.
我可以做什么?
解决方法
. 要回答你的主要问题,你应该能够将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",4))
>一般来说,最好不要在aes()中使用df $col,只需使用列名,例如:
ggplot(df_2,aes(x = X,xend = X + dx,y = Y))
ggplot将在数据框中查找列名.
. . .. ...