我正在使用 likert package通过 jbryer 并希望使用堆积条形图来可视化数据。
这些条形图的大小/宽度取决于图中的条形数量,即只有一个条形的条形非常宽,而绘制的条形越多,它们变得越细。
我想自定义设置条的大小/宽度,以便它们保持不变,无论图中绘制了多少条,即 l29_5 和 l29_2 的图的条大小相同。
library(ggplot)
library(likert)
data(pisaitems)
items29_5 <- pisaitems[,substr(names(pisaitems), 1,5) == 'ST25Q']
colnames(items29_5) <- c("Magazines", "Comic books", "Fiction",
"Non-fiction books", "Newspapers")
items29_2 <- items29_5 %>%
select("Magazines", "Comic books")
l29_5 <- likert(items29_5)
l29_2 <- likert(items29_2)
plot(l29_5)
plot(l29_2)
最佳答案
函数likert.bar.plot(..)
没有任何关于 bin 宽度的参数。然而,它返回一个类 ggplot
的对象。 ,以便它可以使用标准的 ggplot2 指令进行处理。
最终图由几个 ggplot 层组成。这里的问题不是向绘图添加新指令或层,而是更新一个或多个内部层的参数。即,我们需要设置 width
对于所有包含 geom_bar()
的层.为此,我们首先找到相关层:
p <- likert.bar.plot(l29_2)
p$layers
从输出中可以看出
geom_bar
包含在第 2 层和第 3 层中。然后我们可以通过添加 width
来修改它们。范围:p$layers[[2]]$geom_params$width = 0.3
p$layers[[3]]$geom_params$width = 0.3
p
关于r - 自定义李克特图中条形图的宽度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60231718/