我使用jason.bryer(see)的likert包,制作了一个由Likert标尺制成的ggplot。如果您使用原始数据运行代码here,然后我的极端标签(在最右边)不再在图形中(请参见下图)。我该如何解决?
<< img src =“ https://image.soinside.com/eyJ1cmwiOiAiaHR0cHM6Ly9pLnN0YWNrLmltZ3VyLmNvbS9VdkNkRi5wbmcifQ==” alt =“在此处输入图像描述”>
我使用的代码:
library(ggplot2)
library(likert)
library(gridExtra)
competence_bachelor <- rawdata[, substr(names(rawdata), 1, 4) == "Q002"]
competence_bachelor <- rename(competence_bachelor, c(Q002_01 = "Ability to propose new ideas and new solutions", Q002_02 = "Ability to present in public", Q002_03 = "Ability to use a computer", Q002_04 = "Ability to use the Internet", Q002_05 = "Ability to use statistical programs", Q002_06 = "Ability to write reports", Q002_07 = "Knowledge of economic concepts", Q002_08 = "Knowledge of legal concepts", Q002_09 = "Ability to understand the other's point of view", Q002_10 = "Ability to rapidly acquire new knowledge", Q002_11 = "Ability to team work", Q002_12 = "Ability to do analysis with quantitative methods", Q002_13 = "Ability to do analysis with qualitative methods", Q002_14 = "Knowledge of English", Q002_15 = "Knowledge of another foreign language"))
i <- 1
while(i<=ncol(competence_bachelor)) {
competence_bachelor[[i]] = factor(competence_bachelor[[i]],labels = c("insignificant", "2", "3", "4", "5", "6", "7", "8", "9", "very relevant"), levels=c(1:10))
i <- i + 1
}
competence_bachelor_plot <- likert(competence_bachelor)
p <- plot(competence_bachelor_plot, centered = FALSE, include.histogram = FALSE) + ggtitle("How do you rate your skills gained with the Bachelor's?*") + theme(axis.text.y = element_text(colour = "black"), axis.text.x = element_text(colour = "black"))
g <- arrangeGrob(p, sub = textGrob("*Order of questions was randomized and only extremes labeled in online questionaire.", x = 0, hjust = -0.1, vjust=0.1, gp = gpar(fontface = "italic", fontsize = 10)))
print(p)
ggsave((filename="competence_bachelor.pdf"), scale = 1, width = par("din")[1], height = par("din")[2], units = c("in", "cm", "mm"), dpi = 300, limitsize = TRUE, g)
因此,首先,虽然图例的最右侧元素未显示,但它们确实在pdf中呈现。
问题是,图例太长,因此被裁剪。当然,一种选择是仅增大显示窗口。另一个是使图例变小。您可以通过在p的定义的末尾添加一行来做到这一点:
p <- plot(competence_bachelor_plot, centered = FALSE, include.histogram = FALSE) +
ggtitle("How do you rate your skills gained with the Bachelor's?*") +
theme(axis.text.y = element_text(colour = "black"), axis.text.x = element_text(colour = "black"))+
theme(legend.key.size=unit(.01,"npc"))
您还可以删除名称(“响应”),因为它是多余的并且会干扰对称性。这也可以使图例本身变大。
p <- plot(competence_bachelor_plot, centered = FALSE, include.histogram = FALSE) +
ggtitle("How do you rate your skills gained with the Bachelor's?*") +
theme(axis.text.y = element_text(colour = "black"), axis.text.x = element_text(colour = "black"))+
theme(legend.key.size=unit(0.02,"npc"))+guides(fill=guide_legend(""))
p <- plot(competence_bachelor_plot,
centered = FALSE,
include.histogram = FALSE) +
ggtitle("How do you rate your skills gained with the Bachelor's?*") +
theme(axis.text.y = element_text(colour = "black"),
axis.text.x = element_text(colour = "black"),
plot.margin = unit(c(2, 2, 2, 2), "cm"))
<< img src =“ https://image.soinside.com/eyJ1cmwiOiAiaHR0cHM6Ly9pLnN0YWNrLmltZ3VyLmNvbS9mVG9zSC5wbmcifQ==” alt =“在此处输入图像描述”>
您还可以将图例分成两行,这将创建足够的空间:
guides(fill = guide_legend(nrow = 2))