是否可以在likert r包中的likert图中使用free_y?

时间:2014-06-18 15:10:55

标签: r ggplot2

我正在使用likert包制作漂亮的图表。我遇到的问题是,我还没有能够让这些情节的高度取决于喜欢的音阶数量。

如果我只有一个比特尺,结果很难看。我希望能够影响身高。

plot(likert(likert_5),type="heat",text.size=2.5)

这是结果:

enter image description here

我希望它是这样的:

enter image description here

我尝试了facet_grid()包的ggplot2功能,但它没有用。

plot(likert(likert_5),type="heat",text.size=2.5)+facet_grid(scales = "free_y", drop = FALSE)

我必须承认我对ggplot2(以及依赖于likert的包ggplot2)不熟悉,所以解决方案可能会很简单,但它确实会有所帮助我很多!非常感谢提前。

这是一个可重复的例子:

df <- structure(list(Variable = c(1, 2, 3, 4, 2, 3, 1, 5, 3, 4, 2, 
1, 1, 1, 4, 5)), .Names = "Variable", row.names = c(NA, -16L), class = "data.frame")

df[,1] <- factor(df[,1], levels=c(1,2,3,4,5))

library(likert)
plot(likert(df),type="heat",text.size=2.5)

1 个答案:

答案 0 :(得分:2)

这取决于你如何使用情节。在交互式R会话中,最好的办法是调整绘图窗口的大小。我不知道如何在RStudio中以编程方式调整绘图窗口的大小。如果您没有使用RStudio ,您应该开始使用它!您可以将高度和宽度赋予dev.new(),例如,

dev.new(height = 1, width = 5)
plot(likert(df),type="heat",text.size=2.5)

如果你要保存绘图,那么你使用的任何方法都有高度和宽度参数,这就是程序化方法最有意义的地方。如,

lplot <- plot(likert(df),type="heat",text.size=2.5)
ggsave("myplot.png", plot = lplot, width = 5, height = 1)

如果你真的想修改绘图对象本身,我们可以编辑绘图的坐标属性的类。

lplot <- plot(likert(df),type="heat",text.size=2.5)
lplot <- lplot + coord_fixed() # the default ratio of 1 looks good to me
#  but you can adjust it
class(lplot$coordinates) <- c("flip", class(lplot$coordinates))
print(lplot)