У меня проблема с правильным цветовым диапазоном на моем сюжете и легенде.Проблема spplot с распределением цветов и распределением цветов
Это код, который я использую:
data.ch4 <- read.csv2("v42_CH4_1970_TOT.txt",skip = 3,stringsAsFactors = FALSE, header = F)
num_data <- data.frame(data.matrix(data.ch4))
library(maptools)
library(lattice)
library(png)
#map loading
map1 <- readShapePoly("CNTR_2014_03M_SH/Data/CNTR_RG_03M_2014.shp")
coordinates(num_data) <- ~V2+V1
gridded(num_data) <- TRUE
#plotting
png(file="Map2.png",width=35,height=30,unit="cm", res=200, type = "cairo")
spplot(num_data["V3"], xlim=c(-5,35), ylim=c(35,70),
sp.layout = list("sp.polygons",map1),contour=F)
dev.off()
Вот файл с данными: https://www.sendspace.com/file/hjtatp (сжатый beacuse нормально весит 57 мб)
Карта от here (но карта имеет второстепенное значение, его может быть пропущена)
Вот как это выглядит без каких-либо масштабных изменений:
Итак, все синее. Очевидно, что существует расстояние до большого масштаба, от минимального до максимального значения. Я хотел бы исправить скальп, например. последнее значение будет «выше x». Я пытался сделать это так:
Так что теперь это выглядит намного лучше. Вот как я это сделал:
#Fixed breakpoints (?)
at <- c(0e+0, 1.5e-5, 1.0e-4, 1.0e-3, 1.0e-2, 1.0e-1, 1.0e+0, 2.0e+0, 1.0e+1, 1.0e+2, 2.0e+2,5.0e+2)
spplot(num_data["V3"], xlim=c(-5,35), ylim=c(35,70),
sp.layout = list("sp.polygons",map1),
contour=F,
at=at) #right there
Таким образом, я добавил вручную значения (но не точно). Все выглядит намного лучше, но ..
Как вы можете видеть, шкала справа распределена неравномерно. Я не вижу ни одного сине-пурпурного цвета, только оранжевого и желтого.
Также некоторые пятна на карте ярко-желтые (область Германии), потому что здесь самые высокие значения, но, к сожалению, такого цвета на шкале нет.
Возможно, я не сделал это правильно. Я не знаю, как настроить масштаб, чтобы он выглядел хорошо. Я хотел бы иметь масштаб так:
Я достиг этого путем добавления:
spplot(num_data["V3"], xlim=c(-5,35), ylim=c(35,70),
sp.layout = list("sp.polygons",map1),
contour=F,at=at,
colorkey=list(at=seq(0, 400, 30)) #right there
)
Но опять же, это просто фальшивка масштаб, он не будет работать.
И второй быстрый вопрос: как добавить контуры страны на вершине spplotted данных? Потому что теперь контуры затухают под яркими данными: c
Awesome! Это именно то, что мне нужно! Большое спасибо :) – Karmel
Еще одна вещь: можно ли масштабировать цвета от синего до желтого до красного (сине-желто-красный)? Я думал о схеме радуги, но я могу использовать только зеленый-красный-красный или сине-розовый-красный – Karmel
@ Karmel; 'spplot (..., col.regions = colorRampPalette (c (« синий »,« желтый »,« красный »)), ...)' именно то, что вы хотите. – cuttlefish44