Предупреждение .... следует очень новичок вопрос:
Я пытаюсь построить довольно регулярное распределение нескольких тысяч (X, Y) точек, каждая из которых связана со значением, назовем Z, которое очень неравномерно изменяется, скажем, от -20 до +20. Меня не интересует сглаживание; Я хочу, чтобы значения точки Z отображались в соответствии с плавно меняющейся цветовой палитрой, так же, как Gnuplot может делать с правильной гладкой цветовой палитрой. Я пробовал base R, ggplot2 и latticeExtra, и, насколько я могу, могу придумать следующее, которое делает почти то, что я хочу:
library(lattice)
library(latticeExtra)
library(colorRamps)
df = read.table(file"whatever", header=T)
levelplot(Z~X*Y, df, panel=panel.levelplot.points, cex=0.2,
col.regions=colorRampPalette(c("red","white","blue"))(50))
Одна точка данных выглядит так: 1302525 225167 -3,5
Когда я рисую свой фрейм данных с цифрой «50» в последней строке кода как 3, я получаю предсказуемое поведение повторного цикла R: красный, белый и синий цвета повторяются пять раз с 16-м сегментом шкалы белого цвета. Изменение 3 на 7 приводит к появлению большего количества оттенков красного и синего, создавая 2 повторяющихся сегмента цветового диапазона с двумя оставшимися красноватыми цветами, поскольку цветовой диапазон пытается переработать. Это предполагает, что увеличение этого числа приводит к более тонкой градации цветов. Но если я введу число больше 16, это все, что я получу, 16 цветных сегментов, равномерно меняющих цвет от красного до белого и синего. Но я бы хотел, чтобы цветовая шкала была еще более тонкой, и в идеальном мире заставил Z, равный нулю, быть белым цветом.
Мой опыт работы с R показывает, что когда я не могу сделать что-то настолько простое, как это, мне не хватает очень фундаментальной концепции. Что это?