自定义李克特图中条形图的宽度
Customize width of bar plot in likert plot
我正在使用 jbryer 的 likert package,并希望使用堆叠条形图可视化数据。
这些条形图的 size/width 取决于图中有多少个条形图,即只有一个条形图时,条形图相当宽,而绘制的条形图越多,条形图越细。
我想习惯性地设置条的 size/width,以便它们保持不变,无论图中绘制了多少条,即条的大小对于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(..)
没有任何容器宽度参数。但是,它 returns 是 class ggplot
的对象,因此可以使用标准 ggplot2 指令进行处理。
最终图由几个 ggplot 图层组成。这里的问题不是向图中添加新的指令或层,而是更新一个或多个内层的参数。即,我们需要为所有包含 geom_bar()
的图层设置 width
。为此,我们首先找到相关层:
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
我正在使用 jbryer 的 likert package,并希望使用堆叠条形图可视化数据。 这些条形图的 size/width 取决于图中有多少个条形图,即只有一个条形图时,条形图相当宽,而绘制的条形图越多,条形图越细。
我想习惯性地设置条的 size/width,以便它们保持不变,无论图中绘制了多少条,即条的大小对于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(..)
没有任何容器宽度参数。但是,它 returns 是 class ggplot
的对象,因此可以使用标准 ggplot2 指令进行处理。
最终图由几个 ggplot 图层组成。这里的问题不是向图中添加新的指令或层,而是更新一个或多个内层的参数。即,我们需要为所有包含 geom_bar()
的图层设置 width
。为此,我们首先找到相关层:
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