可以使用添加ggplot" theme"更改R中的Likert包来更改绘图中的字体大小。命令。但是,当条形图和直方图同时绘制在一起时,这些更改不会影响生成的图形。有没有办法修改字体大小,同时仍然绘制条形图和直方图?例如,以下代码将成功修改轴文本:
likert.bar.plot(items, legend.position = "none") +
theme(text = element_text(size = rel(6), colour = "red"),
axis.text.y = element_text(colour = "blue",
family = "Courier"))`
...但以下代码不会:
plot(items, include.histogram=T, legend.position = "none") +
theme(text = element_text(size = rel(6), colour = "red"),
axis.text.y = element_text(colour = "blue",
family = "Courier"))`
这个问题解释了基础知识 How do I change the text font, size and colour of all the different texts in the R package, Likert?
答案 0 :(得分:1)
问题是plot.likert
正在使用grid
pacakge来合并这些情节。这意味着它没有返回任何可以修改的对象(自己尝试,保存输出 - 它返回NULL
)。但是,当只打印一个绘图时,它会返回带有ggplot
类(以及其他类)的绘图,允许theme
和其他ggplot
函数对其进行操作。
如果您希望在单个函数调用中使用它,则可能需要自己编辑plot.likert
的代码。或者,可能更强大/更灵活:您可能希望自己查看grid
包以合并这些图。
E.g,:
data(pisaitems)
items29 <- pisaitems[,substr(names(pisaitems), 1,5) == 'ST25Q']
names(items29) <- c("Magazines", "Comic books", "Fiction",
"Non-fiction books", "Newspapers")
l29 <- likert(items29)
a <-
likert.bar.plot(l29, legend.position = "none") +
theme(text = element_text(size = rel(6), colour = "red"),
axis.text.y = element_text(colour = "blue",
family = "Courier"))
b <-
likert.histogram.plot(l29, legend.position = "none") +
theme(text = element_text(size = rel(6), colour = "red"),
axis.text.y = element_text(colour = "blue",
family = "Courier")) +
theme(axis.text.y = element_blank())
library(gridExtra)
grid.arrange(a,b,widths=c(2,1))
(注意包含MWE以便其他人也可以运行代码。)
(感谢@ eipi10将更清洁的代码组合起来)