Я пытаюсь визуализировать результаты филогенетической регрессии методом наименьших квадратов, используя ape
и phytools
. В частности, я пытался создать уравнение регрессии для целей прогнозирования, и я смотрю, насколько филогенетический сигнал влияет на остатки (и, следовательно, на точность уравнения). Я использовал код, несколько похожий на следующий, чтобы построить результаты (хотя здесь он был переоборудован для фиктивных данных).
library("ape")
library("phytools")
orig_tree<-rtree(n=20)
plot(orig_tree)
values<-data.frame("residuals"=runif(20,min=-1,max=1),row.names=orig_tree$tip.label)
values<-setNames(values$residuals,rownames(values))
residualsignalfit<-fastAnc(orig_tree,values,vars=TRUE,CI=TRUE)
obj<-contMap(orig_tree,values,plot=FALSE)
plot(obj,fsize=.25)
Однако проблема заключается в том, что у меня есть несколько видов, которые демонстрируют чрезвычайно высокие остатки по сравнению с остальной частью набора данных. Поскольку минимальные и максимальные значения цветового градиента установлены равными минимальному и максимальному значениям фактического столбца, это размывает весь контраст между 90% набора данных для визуализации нескольких экстремальных значений выбросов. Ниже приведен код, который воспроизводит пример того, что я имею в виду, по сравнению с obj
выше.
values2<-values
values2[6]<--2
values2[7]<-2
residualsignalfit2<-fastAnc(orig_tree,values2,vars=TRUE,CI=TRUE)
obj2<-contMap(orig_tree,values2,plot=FALSE)
plot(obj2,fsize=.25)
Это заставляет фигуру казаться, что филогенетического сигнала гораздо меньше, чем есть на самом деле, потому что он окрашивает все, кроме самых крайних выбросов, одинаково по цвету.
Я пытаюсь найти способ установить минимум и максимум цветового градиента, чтобы любое значение ≤ -1 было максимально возможным значением красного цвета, а любое значение ≥ 1 было максимально возможным значением синего цвета, тем самым обеспечивая больший контраст в остальном. остатков. Я пробовал использовать команду
plot(obj2,fsize=.25,lims=c(-1,1))
но, как вы можете видеть из этого кода, это ничего не делает. Я знаю, что ggplot2
имеет возможность масштабировать градиент цвета на основе значений, введенных пользователем, но я не могу понять, как сделать объекты филогении из ape
или phytools
, которые будут построены в ggplot2.
Учитывая это, есть ли способ манипулировать шаблоном цветового градиента в обезьянах / фитоинструментах, чтобы можно было произвольно установить максимальные и минимальные границы для цветового градиента?