【发布时间】:2018-02-01 17:33:19
【问题描述】:
我有一个数据框(长格式),其中包含来自个性自我报告的数据。我使用 ggplot2 绘制了我之前运行的探索性因子分析。下面,我创建了原始数据框的一个子集。
Here,Dan Mirman 博士提出了一种绘制此类数据的好方法,我想这样做。所以,我已经修改了他的代码,但是,正如你从图片中看到的那样,情节有问题。 y 轴上的刻度按字母顺序倒序排列。但是,我想根据它们在每个因素上的负载来订购这些秤。例如,我认为最好的顺序可能是第一个“A”和“IdP”,因为它们在 Factor1 上加载很强,然后是“R”和“Ca”,因为它们在 Factor 2 上加载,“InP”因为它在 Factor 上加载3,以及“Co”,因为它加载到因子 4。在底部,“S”,因为它在多个尺度上显示出相似的加载。
谁能帮帮我?我真的很感激!
library(ggplot2)
Scale <- c("A", "IdP", "R", "Ca", "S", "InP", "Co", "A", "IdP", "R", "Ca", "S", "InP", "Co", "A", "IdP", "R", "Ca", "S", "InP", "Co", "A", "IdP", "R", "Ca", "S", "InP", "Co")
Factor <- c("Factor1", "Factor1", "Factor1", "Factor1", "Factor1", "Factor1", "Factor1", "Factor2", "Factor2", "Factor2", "Factor2", "Factor2", "Factor2", "Factor2", "Factor3", "Factor3", "Factor3", "Factor3", "Factor3", "Factor3", "Factor3", "Factor4", "Factor4", "Factor4", "Factor4", "Factor4", "Factor4", "Factor4")
loading.db <- c(0.93, 0.71, -0.15, 0.00, 0.34, 0.08, 0.04, 0.02, 0.13, 0.79, 0.74, 0.43, 0.03, 0.06, -0.02, 0.30, -0.06, 0.25, 0.08, 0.66, -0.03, 0.09, -0.03, 0.18, -0.01, 0.37, -0.06, 0.62)
db <- data.frame(Scale, Factor, loading.db)
ggplot(db, aes(Scale, abs(loading.db), fill = loading.db)) +
facet_wrap(~ Factor, nrow = 1) +
geom_bar(stat = "identity") +
coord_flip() +
scale_fill_gradient2(name = "Loading",
high = "green", mid = "white", low = "yellow",
midpoint = 0, guide = F) +
xlab("Test scales") +
ylab("Loading Strength") +
theme_bw(base_size = 10)
【问题讨论】: