параметры цвета и меток контурной диаграммы в Lattice for R - PullRequest
0 голосов
/ 25 мая 2020

Я новичок в Lattice, и я застрял с некоторым, возможно, базовым c кодированием. Я использую шейп-файлы и geoTIFFS для создания карт распределения животных, и, в частности, у меня есть:

  • 1 шейп-файл точек
  • 2 х geoTIFF
  • 1 шейп-файл многоугольника

Я перекрываю график уровня одного из geoTIFF (UD, созданный с помощью adehabitatHR) с контурным графиком того же geoTIFF через определенные c интервалы (значения процентилей), контурный график второго geoTIFF ( растр глубины из ETOPO2) для трех значений c (-200, -1000 и -2000), шейп-файл точки (местоположения животных) и шейп-файл многоугольника (земля). Все работает нормально, но мне нужно изменить размер шрифта меток контурных графиков, их длину (т.е. с 0,12315 до 0,123) и расположение для всех контурных графиков. Для контурной диаграммы глубины я хотел бы изменить стиль каждой линии на что-то вроде «непрерывная линия», «пунктирная линия» и «точечная линия», а для контурной диаграммы UD я хотел бы изменить цвет каждой линии, используя палитра от желтого до красного.

Насколько я понимаю, я должен использовать функции панели для реализации этих изменений (например, Управление метками z в контурной диаграмме ), но я не совсем уверен, как это сделать. Часть моего кода для создания "графика":

aa <-
  quantile(
    UD_raster,
    probs = c(0.25, 0.75),
    type = 8,
    names = TRUE
  )
my.at <- c(aa[1], aa[2])
depth<-c(-100, -200, -2000)

levelplot(
  UD_raster,
  xlab = "",
  ylab = "",
  margin = FALSE,
  contour = FALSE,
  col.regions = viridis(100),
  main = "A",
  maxpixels = 2e5
) + layer(sp.polygons(Land, fill = "grey40", col = NA)) + layer(sp.points(locations, pts = 2, col = "red")) + contourplot(
  UD_raster,
  at = my.at,
  labels = TRUE,
  margin = FALSE
) + contourplot(
  ETOPO2,
  at = depth,
  labels = TRUE,
  margin = FALSE
)

Можно найти упрощенное изображение без слоя UD и без точечного шейп-файла здесь и, как вы можете видеть, оно довольно беспорядочный. Спасибо за помощь.

1 Ответ

0 голосов
/ 25 мая 2020

Пока что для графа счета ETOPO2 я решил, убрав метки и добавив аргумент lty для стилизации линии. Поскольку я не могу понять, как использовать lty с разными значениями для каждой отдельной линии моего контура, я трижды воспроизвел функцию контурной диаграммы на одной и той же поверхности, по одному для каждого интересующего меня контура ( это было легко, потому что мне нужно всего три контура.) из этикеток я использовал функцию round , где я указываю, до какого десятичного числа di git округлять число.

Итак, теперь мой новый код выглядит так:

aa <-
  quantile(
    UD_raster,
    probs = c(0.25, 0.75),
    type = 8,
    names = TRUE
  )
my.at <- c(aa[1], aa[2])
my.at <- round(my.at, 3)

levelplot(
  UD_raster,
  xlab = "",
  ylab = "",
  margin = FALSE,
  contour = FALSE,
  col.regions = viridis(100),
  main = "A",
  maxpixels = 2e5
) + layer(sp.polygons(Land, fill = "grey40", col = NA)) + layer(sp.points(positions, pts = 2, col = "red")) + contourplot(
  UD_raster,
  at = my.at,
  labels = list(cex = 0.8, "verdana"),
  label.style = "flat",
  margin = FALSE
) + contourplot(
  ETOPO2,
  at = -200,
  labels = FALSE,
  margin = FALSE,
  lty = 1,
  pretty = TRUE
) + contourplot(
  ETOPO2,
  at = -1000,
  labels = FALSE,
  margin = FALSE,
  lty = 2,
  pretty = TRUE
) + contourplot(
  ETOPO2,
  at = -2000,
  labels = FALSE,
  margin = FALSE,
  lty = 3,
  pretty = TRUE
)

Как и следовало ожидать, создание графика занимает немного больше времени. До сих пор не знаю, как изменить цвета контурной диаграммы UD.

...