【问题标题】:Controlling percentage axis and adding values to HH Likert plot控制百分比轴并将值添加到 HH 李克特图
【发布时间】:2013-03-06 19:58:27
【问题描述】:

考虑以下最小示例:

tab = structure(c(187, 189, 205, 167, 273, 275, 295, 231, 385, 575, 
409, 363, 899, 707, 751, 667, 2007, 1953, 2101, 2531, 1043, 1023, 
1071, 971, 385, 575, 409, 363, 181, 241, 157, 163, 123, 163, 
133, 131), .Dim = c(4L, 9L), .Dimnames = list(NULL, c("-4", "-3", 
"-2", "-1", "0", "1", "2", "3", "4")))

矩阵tab 包含李克特 9 点量表的计数。

一个基本的情节很容易产生:

    likert(tab,
           auto.key=list(between=0.5, between.columns=1),
           main="Attitudes",
           BrewerPaletteName="RdBu",as.percent=TRUE, rightAxisLabels=NULL, 
           rightAxis=NULL, ylab.right="")

而且看起来不错。现在,问题:

  • 我想控制百分比轴的增量。在某些情况下,加上其他计数,它只显示 50%。我想强制执行 10% 的增量
  • 我想将 % 计数添加为标签。最重要的是 0 类。就像在 Excel 中一样,您可以右键单击并说“添加数据标签”。一定有类似的东西。

我也考虑过 ggplot,但是它不支持发散图。加上标签也比较乱,尤其是tikz导出。

编辑 我尝试过使用 panel.text。但是,我仍然没有正确排列数字。

#does not work right!
trellis.focus("toplevel")
for(pp in 1:nrow(tab)){
panel.text(0.5, (pp/nrow(tab))*0.84+0.16, tab[pp,5], cex = 1, font = 2)
}
trellis.unfocus()

如何在每个条形中找到正确的位置?

【问题讨论】:

    标签: r graphics plot lattice survey


    【解决方案1】:

    要更改 x 轴值,您应该添加参数 scales= 并为 x 轴添加 at= 参数。

    likert(tab,
           auto.key=list(between=0.5, between.columns=1),
           main="Attitudes",
           BrewerPaletteName="RdBu",as.percent=TRUE, rightAxisLabels=NULL, 
           rightAxis=NULL, ylab.right="",
           scales=list(
             x=list(
               at=seq(-50,50,10))))
    

    【讨论】:

    • 太棒了!任务一完成,它就像一个魅力。关于价值标签的任何想法?
    • @user1216731 你想要这样的冷杉标签吗,scales=list( x=list( labels = paste(seq(-50,50,10),'%',sep=''), at=seq(-50,50,10))))
    • @agstudy 很棒,现在甚至带有 % 符号。谢谢!我仍然想念的是给条形图加上标签,即把 42% 放在第一个条形的 0 份额上。
    • 基本上它是某种形式的格子/格子条形图。必须有一种直接的方法将百分比放入每个条的每个块中。
    • 似乎有标签的解决方案,所以我选择这个答案作为可解决问题 #1 的解决方案。
    猜你喜欢
    • 1970-01-01
    • 2016-12-27
    • 1970-01-01
    • 2016-06-16
    • 1970-01-01
    • 2021-11-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多