#r #ggplot2 #pca #factominer
Вопрос:
Я ищу решение для упорядочения пути geom_path на основе определенного порядка, заданного коэффициентом.
Я работал с первыми двумя измерениями PCA. Используя library("factoextra")
, и library("FactoMineR")
я создаю свою фигуру с fviz_pca_ind()
помощью .
raa_male lt;- fviz_pca_ind( pca.data, fill.ind = male_raa.df$Season, pointsize = male_raa.df$BRI, pointshape = 21, repel = TRUE )
Данные распределены по отдельным лицам (показаны текстовыми метками).
Используя geom_path
я хочу соединить точки одного и того же индивидуума, по порядку пути, в зависимости от сезона c(Autumn, Winter, Spring)
. Однако у меня возникают трудности с этим
male_raa.df$Season lt;- factor(male_raa.df$Season, levels = c("Autumn", "Winter", "Spring")) raa_male geom_path( arrow = arrow(angle = 15, ends = "last", type = "closed"), alpha = 0.2, aes(group = male_raa.df$TagID) )
Упорядочение, установленное для коэффициента, не отображается в соответствии с упорядочением пути geom_path.
Комментарии:
1. Я считаю
geom_path
, что используется порядок внешнего вида, а не порядок фактора, поэтому вам, возможно, придется сначала добавить шаг сортировки.
Ответ №1:
Вот небольшой пример, сравните оригинальную и отсортированную версию. geom_path
упорядочивается на основе порядка отображения в данных, поэтому, если вы хотите, чтобы он отражал упорядоченный фактор, сначала отсортируйте по нему.
df1 lt;- data.frame(x = 1:3, y = c(1,2,1), season = LETTERS[1:3]) df1$season = factor(df1$season, levels = c("B","C","A")) library(ggplot2); library(dplyr) ggplot(df1, aes(x,y, label = season)) geom_path(arrow = arrow(angle = 15, ends = "last", type = "closed")) geom_label()
ggplot(df1 %gt;% arrange(season), aes(x,y, label = season)) geom_path(arrow = arrow(angle = 15, ends = "last", type = "closed"),) geom_label()
Комментарии:
1. Спасибо, Джон, это решение отлично работает