Arhn - архитектура программирования

Нарисуйте изоклину в R с помощью ggplot2

На самом деле я пытаюсь воспроизвести фон (синяя изотерма, изохалин) этого графика:

график с изоклиной

С таким файлом (csv): https://drive.google.com/file/d/1VMjDOFP2ZlVTsNuEVmMwQAxFdLAahdSk/view?usp=sharing

Идея состоит в том, чтобы построить график глубины (y) на расстоянии (x) от каждой станции до другой. Я хотел бы нарисовать на нем изоклины с помощью столбца Temp.

Я пытался использовать ggplot2 и функции geom_area, geom_density2d или geom_bind2d, но мне не удалось заставить их работать. (например, в этом скрипте отображается ошибка Error in f(...) : Aesthetics can not vary with a ribbon

Я чувствую себя глупо, потому что я впервые использую ggplot2.
Не могли бы вы мне помочь?

library(readr)
Tr3 <- read_delim("G:/Tr3.csv", ";", escape_double = FALSE, 
                  col_types = cols(Depth = col_number(), 
                                   Distance = col_number(), Temp = col_number()), 
                  trim_ws = TRUE)
library(ggplot2)
theme_set(
  theme_bw() + 
    theme(legend.position = "top"))
f<-ggplot(Tr3, aes(x=Distance, y=Depth))+
  geom_area(aes(x=Distance, y=Depth, fill=Temp))
f  

Спасибо тебе за все !

06.07.2020

Ответы:


1

geom_contour_filled дает то, что вы ищете, я думаю:

library(tidyverse)
tr3 <- read_delim("Downloads/Tr3.csv", delim = ";")
ggplot(tr3) +
  geom_contour_filled(aes(x = Distance, y = Depth, z = Temp))

но предоставленные вами данные не кажутся очень подходящими для графика, который вы показали, всего с 6 уникальными расстояниями (точками, на которых был сброшен зонд?) И очень похожими температурами на многих глубинах. Я добавил точечную геометрию с примерно такой же цветовой шкалой, чтобы было понятнее, где происходит интерполяция на изображении ниже.

ggplot(tr3, aes(x = Distance, y = Depth)) +
  geom_contour_filled(aes(z = Temp), binwidth = 0.5) +
  geom_point(aes(colour = Temp)) +
  scale_colour_viridis_b(breaks = seq(5.5, 11, by = 0.5)) +
  coord_cartesian(ylim = c(0, 60))

введите здесь описание изображения

07.07.2020
  • давно не видел вас на теге ggplot2 :) Стоит упомянуть, возможно, также пакет metR, в котором есть metR::geom_contour_fill(). Разница в том, что каким-то образом сохраняется непрерывный характер данных, и вы можете использовать новые шкалы биннинга для более холодных цветных полос (stackoverflow.com/questions/62543112/) 07.07.2020
  • что-то происходит в мире в последнее время, ха-ха. и это отличная функция! до 07.07.2020
  • Привет ! Я пытался использовать ваш код, как вы его написали, и, к сожалению, он выдает мне ошибку: Computation failed in stat_contour_filled(): Number of x coordinates must match number of columns in density matrix. Ваши предположения верны, мы запустили зонд. Мы получили 30 точек, связанных с гидрологическими данными, и попытались разделить их на трансекты, чтобы упростить интерпретацию расстояния между станциями. 08.07.2020
  • Можете ли вы проверить свои версии R и ggplot2? Я обновился до 4.0.2 и 3.3.2 соответственно. stat_contour_filled был обновлен в ggplot 3.3. Но я все же хотел уточнить, что что-то вроде отображаемого изображения - это то, что вы ищете, поскольку мне неясно, насколько значимы здесь контуры. Также см. ответ, связанный с Tjebo 09.07.2020
  • Привет, Калум, моя версия R — 3.6.3, а ggplot2 — 3.3.1. Картинка у меня получается hqs, с цветами проблем нет. самая большая проблема заключается в том, что столбцы очень тонкие и не заполняют все пространство, что приводит к появлению пробелов между каждыми станциями, где есть точки данных. Чуть позже я проверю ответ Тьебо. Спасибо, Натан. 10.07.2020
  • Новые материалы

    Коллекции публикаций по глубокому обучению
    Последние пару месяцев я создавал коллекции последних академических публикаций по различным подполям глубокого обучения в моем блоге https://amundtveit.com - эта публикация дает обзор 25..

    Представляем: Pepita
    Фреймворк JavaScript с открытым исходным кодом Я знаю, что недостатка в фреймворках JavaScript нет. Но я просто не мог остановиться. Я хотел написать что-то сам, со своими собственными..

    Советы по коду Laravel #2
    1-) Найти // You can specify the columns you need // in when you use the find method on a model User::find(‘id’, [‘email’,’name’]); // You can increment or decrement // a field in..

    Работа с временными рядами спутниковых изображений, часть 3 (аналитика данных)
    Анализ временных рядов спутниковых изображений для данных наблюдений за большой Землей (arXiv) Автор: Рольф Симоэс , Жильберто Камара , Жильберто Кейрос , Фелипе Соуза , Педро Р. Андраде ,..

    3 способа решить квадратное уравнение (3-й мой любимый) -
    1. Методом факторизации — 2. Используя квадратичную формулу — 3. Заполнив квадрат — Давайте поймем это, решив это простое уравнение: Мы пытаемся сделать LHS,..

    Создание VR-миров с A-Frame
    Виртуальная реальность (и дополненная реальность) стали главными модными терминами в образовательных технологиях. С недорогими VR-гарнитурами, такими как Google Cardboard , и использованием..

    Демистификация рекурсии
    КОДЕКС Демистификация рекурсии Упрощенная концепция ошеломляющей О чем весь этот шум? Рекурсия, кажется, единственная тема, от которой у каждого начинающего студента-информатика..