Есть ли способ построить два разных набора данных с разными цветовыми шкалами на одном уровне? - PullRequest
0 голосов
/ 29 марта 2019

У меня есть два измерения расстояния между некоторыми объектами. Я хочу показать (дез) сходные структуры между двумя мерами в их парных значениях расстояния - принимая во внимание, что меры имеют разные масштабы. Я думаю, что лучший способ сделать это - построить верхнюю диагональную тепловую карту для одной меры, нижнюю диагональную тепловую карту для другой и наложить их, сохраняя различные цветовые схемы и шкалы. Тем не менее, я изо всех сил пытаюсь сделать это на уровне.

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

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

dists1[lower.tri(dists1,diag=TRUE)] <- NA
dists2[upper.tri(dists2,diag=TRUE)] <- NA
colfunc1 <- colorRampPalette(c("green","white","blue"))
colfunc2 <- colorRampPalette(c("red","white","blue"))
levelplot(dists1,subscripts = list(1), col.regions = colfunc1(16), colorkey = list(space='top'),xlab="",ylab="")
levelplot(dists2,subscripts = list(1), col.regions = colfunc2(16), colorkey = list(space='right'),xlab="",ylab="")

Есть ли способ показать эти графики вместе на одной оси?

Отдельные участки в настоящее время выглядят так: (цветовые схемы не являются окончательными) upper-triangular heatmap with blue-green color scheme and colorkey on top

lower-triangular heatmap with blue-red color scheme and colorkey on the right

...