ggplot2标签超出了李克特标度

问题描述 投票:2回答:3

我使用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)
r ggplot2 label
3个回答
5
投票

因此,首先,虽然图例的最右侧元素未显示,但它们确实在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(""))

“”


2
投票
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 =“在此处输入图像描述”>


2
投票

您还可以将图例分成两行,这将创建足够的空间:

guides(fill = guide_legend(nrow = 2))
© www.soinside.com 2019 - 2024. All rights reserved.