使用 scale_color_viridis 时设置颜色图中的最大值
Set the max value in colormap when using scale_color_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。
我能做什么?
要回答您的主要问题,您应该能够将 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))
- 一般来说,
aes()
中最好不要使用df$col
,直接使用列名即可,如
ggplot(df_2, aes(x = X, xend = X + dx, y = Y))
ggplot 将在数据框中查找列名。
代码如下:
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。
我能做什么?
要回答您的主要问题,您应该能够将 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))
- 一般来说,
aes()
中最好不要使用df$col
,直接使用列名即可,如
ggplot(df_2, aes(x = X, xend = X + dx, y = Y))
ggplot 将在数据框中查找列名。