Как построить координаты над файлом формы в R?

немного новичок в этом, поэтому любая помощь будет принята с благодарностью. Я загрузил шейп-файл всех стран мира и начертил его. Однако у меня возникли проблемы с добавлением кучи точек из координат на график. Любая помощь в том, как исправить это, будет принята с благодарностью.

Код до сих пор

MeteoriteData <- read.csv("C:/Users/ChaseDickson_/Desktop/College/AERO 689/Semester Project/Meteorite Landings.csv")
MeteoriteData$lat <- as.factor(MeteoriteData$lat)
MeteoriteData$long <- as.factor(MeteoriteData$long)

world <- st_read("C:/Users/ChaseDickson_/Desktop/College/AERO 689/Semester Project/TM_WORLD_BORDERS_SIMPL-0.3/TM_WORLD_BORDERS_SIMPL-0.3.shp")

world <- st_transform(world, crs = 4326)
ggplot() +
  geom_sf(data = world) +
  theme_bw()

Это возвращает график, который прикреплен.

Как построить координаты над файлом формы в R?

я пытался использовать

ggplot() +
  geom_sf(data = world) +
  theme_bw() +
  geom_point(data = MeteoriteData, aes(x = lat, y = long)

но это не работает, так как выдает эту ошибку

Error in `calc_limits_bbox()`:
! Scale limits cannot be mapped onto spatial coordinates in `coord_sf()`
ℹ Consider setting `lims_method = "geometry_bbox"` or `default_crs = NULL`.

В вашем вызове geom_point отсутствует закрывающая скобка, не уверен, что это проблема копирования/вставки или вы пропустили ее в своем реальном коде.

r2evans 17.11.2022 23:35

Можете ли вы предоставить более подробную информацию о MeteoriteData? Похоже, вы неправильно округлили X и Y. X обычно должен быть долготой, а Y — широтой.

Stewart Macdonald 17.11.2022 23:45

@StewartMacdonald делает отличное замечание. Я вижу еще кое-что сомнительное: почему вы изменили широту и долготу Meteorite Data на factor с кодом as.factor?

John Polo 17.11.2022 23:54
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
3
108
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Три проблемы, которые я вижу в вашем коде:

1/

MeteoriteData$lat <- as.factor(MeteoriteData$lat)

Вам нужно преобразовать ваши данные lat и long в факторы? Я никогда не видел, чтобы это делалось раньше, и я подозреваю, что это приведет только к неприятностям.

2/

geom_point(data = MeteoriteData, aes(x = lat, y = long)

Похоже, вы неправильно расставили x/y и долготу/широту. x должен быть длинным, а y должен быть лат.

3/

Как говорит r2evans, вам нужна закрывающая скобка в этой строке:

geom_point(data = MeteoriteData, aes(x = lat, y = long)

Попробуйте этот код:

require('sf')

# Read in data from .csv file
MeteoriteData <- read.csv("C:/Users/ChaseDickson_/Desktop/College/AERO 689/Semester Project/Meteorite Landings.csv")

# Convert these points to an SF object, specifying the X and Y
#  column names, and supplying the CRS as 4326 (which is WGS84)
MeteoriteData <- st_as_sf(MeteoriteData, coords=c('long', 'lat'), crs=4326)

# Read in the world shape file and convert it to the same CRS
world <- st_read("C:/Users/ChaseDickson_/Desktop/College/AERO 689/Semester Project/TM_WORLD_BORDERS_SIMPL-0.3/TM_WORLD_BORDERS_SIMPL-0.3.shp")
world <- st_transform(world, crs = 4326)

# Plot it
ggplot() +
  geom_sf(data = world) +
  geom_sf(data = MeteoriteData) +
  theme_bw()

Примечание. У меня нет доступа к вашим файлам данных, поэтому этот код взят из памяти и не проверен, но он должен указать вам правильный путь.

Другие вопросы по теме

Создание графика с несколькими значениями оси X
Как я могу отметить стрелками максимум и минимум ggplot в R?
R - Постройте двухсторонний Anova Результаты на лонгитюдных данных с использованием GGplot2
Упорядочить ось Y по количеству одного конкретного значения в столбце с geom_bar
Как вы распределяете определенную часть оси x в ggplot2?
Есть ли способ построить пакет pscl результатов модели препятствий или способ построить счет - нулевая усеченная часть негбина модели препятствий в r?
Ошибка: ! Проблема при преобразовании geom в grob. ℹ Произошла ошибка на 1-м слое
Ошибка в анализе (текст ...) непредвиденная запятая "," при построении графика ggplot с ggpubr::stat_cor и выходным десятичным числом, установленным на запятую (options(OutDec = ","))
Отрегулируйте график geom_bar с большим количеством меток
Сравните среднее значение нескольких переменных в двух группах с помощью GGPLOT

Похожие вопросы

R: разделить строку на несколько строк, а затем разделить столбец на несколько столбцов
Shiny R в цикле с использованием RenderUI обновляет только вывод (некоторые базовые вычисления)
Преобразование списка полей в объект structtype, который является схемой SparkR
Ошибка с arules::read.transactions(): "'cols' не соответствует записям в заголовке файла", даже если они совпадают
Как сделать так, чтобы первый сегмент сегментированной регрессии начинался с исходной точки, а последний сегмент заканчивался на желаемом значении?
Создание графика с несколькими значениями оси X
Визуальный редактор RStudio - предварительный просмотр data.frame слишком узкий, размер не изменяется
Поиск элементов одной символьной строки в столбце фрейма данных для ее подмножества
Как использовать case_when для применения различных функций в dplyr
Вектор имен столбцов R, равных значению