Итак, я сделал сюжет в R, с множеством разных цветов, указывающих, к какому из 23 категорий принадлежит точка. Цвета точек добавляются через вектор (stratumcol, который является фактором с 23 уровнями).R легенда участка, не показывающая цвета в соответствии с точками
Когда я добавляю легенду, пытаясь позволить этому показать цвета и их категорию, кажется, что они не соответствуют (проверены с использованием орхилла, см. Рисунок ниже).
Это мой участок кода:
plot(pca_nmdsscores, type = "n")
points(pca_nmdsscores, col=stratumcol, cex=1.5, pch = 15)
legend("right","top",levels(stratumcol),cex=.8, col = as.numeric(stratumcol), pch =15, lty = 0) # pch = stratumcol
ordihull(pca_nmdsscores, groups = stratumcol,draw = "polygon", col ="purple",label = T, show.groups = "LateMoistRich")
ordihull(pca_nmdsscores, groups = stratumcol,draw = "polygon", col ="blue",label = T, show.groups = "MidWetPoor")
Вот мой Rplot должен быть виден. Как вы можете видеть, моя категория «MaleMoistRich» соединяет точки с розовым цветом, но в легенде этот цвет называется «MidMoistRich».
То же самое для «MidWetPoor», соединяющего середину синих точек, в легенде этот цвет относится к «LateMoistPoor».
Как решить эту проблему?
Я пробовал искать решения, но не сталкивался с тем, что мог его решить, включая «уникальный» (что ничего не меняет, поскольку моя палитра была определена с 23 цветами, поэтому нет необходимости перерабатывать эти в любом случае)
[Plot из R, показывая легенды и точки цвета] [1]
Ok - так, так как я новичок, я не могу загрузить изображение моего участка ...
Но посмотрите здесь: http://i.stack.imgur.com/pzn2y.png
/thank s
Редактировать: Решение должно было не использовать уровни() на моем множителе! Не в легенде = уровни (stratumcol), ни в col = levels (stratumcol). Ричард и DeveauP предложил уровни могут быть проблемой.
Это создало новую проблему: у моего лега отобразился весь фактор, а не только уровни в нем (но цвета соответствовали правильным цветам точек, что было оригинальной проблемой).
Эта новая проблема была решена с помощью «unique()» вместо «levels()».
legend("Right","top",legend=unique(stratumcol), cex=.8, col = unique(stratumcol), pch=15, lty=0)
Я нашел решение
Я вижу, что вы положили "COL = as.numeric (stratumcol)" в легенде, это может изменить порядок по сравнению с факторами (числовое значение 1 не обязательно является первым фактором). Что произойдет, если вы удалите as.numeric? – DeveauP
Это ничего не меняет. Я добавил его, чтобы попытаться исправить его - и это не было :) – AAL
Проблема может быть связана с использованием вами легенды. Если stratumcol является фактором, as.numeric() возвращает коэффициенты, а не цвета. Также as.numeric (stratumcol) даст вектор в любом порядке, а не в порядке, соответствующем уровням(). –