我有以下代码:

library(ggrepel)
library(ggOceanMaps)
library(ggspatial)
library(readr)

map <- basemap(c(-180, 180, -90, 90), bathymetry = TRUE)+
  ggspatial::geom_spatial_point(
    data = daten_neu, aes(x = as.numeric(Longitude), y = as.numeric(Latitude), color = as.numeric(Neogloboquadrina_pachyderma...35))
  ) 

print(map)

使用这些数据:

   Latitude Longitude Neogloboquadrina_pachyderma...35
   <chr>    <chr>     <chr>                           
 1 8.983    51.733    1                               
 2 44.3498  -30.267   8                               
 3 50.9332  -41.75    602                              
 4 36.1333  -68.9167  1                               
 5 35.7833  -68.9333  1                               
 6 37.65    -72.95    62                               
 7 35.7667  -69.0833  1                               
 8 39.1332  -42.65    2                               
 9 5.2833   -17.0667  1                               
10 3.65     -18.3     14   

With this I display the figure enter image description here

然而,我有几个问题是我无法通过搜索网络来回答的.1.更改为.number(),这样我就可以将范围设置为300,其上的所有内容仅显示为最上面的 colored颜色

  1. 我怎样才能把 colored颜色 从深蓝色(低)改成红色(高)?

推荐答案

图例可以通过scale_xxx_xxx控制.当你映射到color美学时,它是scale_color_xxx,而当你有一个连续变量时,它是scale_color_continuous.然而,如果你想要一个从红色到蓝色的渐变,最好切换到scale_color_gradient.

接下来,虽然您可以重新编码您的数据,但要使高于阈值的点具有相同的 colored颜色 ,一个选项是设置比例限制并使用oob = scales::oob_squish:

library(ggOceanMaps)
library(ggspatial)

basemap(c(-180, 180, -90, 90), bathymetry = TRUE) +
  ggspatial::geom_spatial_point(
    data = daten_neu, aes(
      x = as.numeric(Longitude),
      y = as.numeric(Latitude),
      color = as.numeric(Neogloboquadrina_pachyderma...35)
    )
  ) +
  scale_color_gradient(
    name = "Neogloboquadrina pachyderma",
    breaks = seq(0, 300, 100),
    labels = c(seq(0, 250, 100), "300 and more"),
    low = "darkblue", high = "darkred",
    limits = c(NA, 300),
    oob = scales::oob_squish
  )

enter image description here

DATA

# run e.g. dput(head(date_neu, 10))
daten_neu <- structure(list(Latitude = c(
  8.983, 44.3498, 50.9332, 36.1333,
  35.7833, 37.65, 35.7667, 39.1332, 5.2833, 3.65
), Longitude = c(
  51.733,
  -30.267, -41.75, -68.9167, -68.9333, -72.95, -69.0833, -42.65,
  -17.0667, -18.3
), Neogloboquadrina_pachyderma...35 = c(
  1L, 8L,
  602L, 1L, 1L, 62L, 1L, 2L, 1L, 14L
)), class = "data.frame", row.names = c(
  "1",
  "2", "3", "4", "5", "6", "7", "8", "9", "10"
))

R相关问答推荐

在ggplot Likert条中添加水平线

管道末端运行功能

根据R中的另一个日期从多列中 Select 最近的日期和相应的结果

R箱形图gplot 2 4组但6个参数

整数成随机顺序与约束R?

修改用R编写的用户定义函数

筛选出以特定顺序患病的个体

在R中使用Scale_y_Break后更改y轴标签

在rpart. plot或fancyRpartPlot中使用带有下标的希腊字母作为标签?

R中的哈密顿滤波

使用来自嵌套列和非嵌套列的输入的PURRR:MAP和dplyr::Mariate

以不同于绘图中元素的方式对GG图图例进行排序

向R中的数据帧添加一列,该列统计另一列中每个唯一值的二进制观测值的数量

使用ifElse语句在ggploy中设置aes y值

有毒元素与表观遗传年龄的回归模型

整理ggmosaic图的标签

在鼠标悬停时使用Plotly更改geom_point大小

位置_道奇在geom_point图中不躲避

从两个数据帧中,有没有办法计算R中一列的唯一值?

在不带max()的data.table中按组查找最后一个元素