【问题标题】:How to not truncate graph hbox category names如何不截断图形 hbox 类别名称
【发布时间】:2018-12-04 17:35:28
【问题描述】:

我好像遇到过不少这个问题,但一直没有找到满意的解决方案。

当使用水平箱线图 (graph hbox) 时,类别上的变量标签会​​被截断并挤压在图表和图像边界之间,如附件所示。

* Example generated by -dataex-. To install: ssc install dataex
clear
input str11 q40 double yield
""                      .
"50' or less"          90
"."                    98
""                      .
"20' or less"          59
""                      .
"30' or less"           .
"50' or less"         117
""                      .
"."                113.69
"."                    79
""                      .
"50' or less"         106
""                      .
"30' or less"          96
"30' or less"         108
"50' or less"          82
"50' or less"         110
""                      .
"30' or less" 137.0382436
""                      .
"50' or less"         104
""                      .
"30' or less"         100
""                      .
"."                 128.2
"50' or less"           .
"30' or less"       72.19
""                      .
"50' or less"         117
"."                  92.8
"30' or less"         120
"50' or less"         101
"."                     .
"None"                 81
"50' or less"          87
"50' or less"         103
"."                   108
"50' or less"         110
"30' or less"          99
"50' or less"          86
"30' or less"          97
"50' or less"         125
""                      .
"."                   110
"50' or less"         107
""                      .
""                      .
""                      .
"50' or less"         105
"."                 117.8
"75' or less"         109
"30' or less" 39.09157895
"75' or less"          65
"75' or less"         104
""                      .
""                      .
"30' or less"         100
""                      .
"30' or less"         132
"."                    99
""                      .
"."                   115
"50' or less"         109
"50' or less"         104
""                      .
"30' or less"          93
"None"                 87
"."                   117
"None"                111
"20' or less"          70
"50' or less"          98
"50' or less"         102
"30' or less"         107
"."                   115
"30' or less"         115
"50' or less"         126
"30' or less"         112
"30' or less"         103
""                      .
"30' or less"         111
"50' or less"          93
"."                   115
""                      .
"50' or less"          95
"30' or less"         109
"30' or less"    104.0125
"50' or less"          91
"50' or less"           .
"30' or less"         102
"50' or less"          96
"50' or less"         107
"30' or less"         111
"."                  82.9
"50' or less"         105
"50' or less"          91
""                      .
"30' or less"         107
"30' or less" 88.97733333
"50' or less"          85
end

这是我生成图表的代码:

graph hbox yield, over(q40) 

我需要 12 个空格来呈现类别名称,但在 Stata 或 Stata 手册中找不到如何设置标签长度。

可在here 找到重现此图的完整数据集。

任何想法将不胜感激。

【问题讨论】:

    标签: graph label stata


    【解决方案1】:

    造成这种情况的原因是2030 等之后的',可能与Stata 如何在内部解析字符串变量q40 有关。使用与@NickCox 相同的数据子集:

    clear
    
    input str11 q40 double yield byte tag
    ""                      . 1
    ""                      . 1
    "."                    56 1
    "."                     . 1
    "20 or less"          47 1
    "20 or less"         132 1
    "30 or less" 39.09157895 1
    "30 or less"           . 1
    "50 or less" 50.09548059 1
    "50 or less"           . 1
    "75 or less" 32.82857143 1
    "75 or less"           . 1
    "75 or more"         102 1
    "75 or more"         107 1
    "None"        30.96176471 1
    "None"                  . 1
    "Random"               60 1
    "Random"                . 1
    end
    
    graph hbox yield, over(q40) name(G1, replace) 
    

    【讨论】:

    • 很好看,但仍然很神秘!
    • @NickCox 我认为 Stata 对双引号和单引号的数量感到困惑,因为它们是在内部解析的。我实际上“几乎证明”了我的this answer 就是这种情况。
    • 困惑是病,不是原因。显然,Stata 应该为本地宏引用寻找左开引号和右右引号,但它们在这里不存在,我们失去了大部分标签。我不知道发生了什么。
    【解决方案2】:

    我可以用这个数据子集复制问题:

    * Example generated by -dataex-. To install: ssc install dataex
    clear
    input str11 q40 double yield byte tag
    ""                      . 1
    ""                      . 1
    "."                    56 1
    "."                     . 1
    "20' or less"          47 1
    "20' or less"         132 1
    "30' or less" 39.09157895 1
    "30' or less"           . 1
    "50' or less" 50.09548059 1
    "50' or less"           . 1
    "75' or less" 32.82857143 1
    "75' or less"           . 1
    "75' or more"         102 1
    "75' or more"         107 1
    "None"        30.96176471 1
    "None"                  . 1
    "Random"               60 1
    "Random"                . 1
    end
    
    set scheme s1color 
    graph hbox yield, over(q40) name(G1) 
    

    并且可以通过这种修补获得看起来合理的标签。

    graph hbox yield, over(q40) aspect(1) name(G2) 
    

    箱形图自然不严重。我只关注报告的问题。

    我不明白为什么这么长(或这么短)的文本标签会有问题。直觉只是轴长明显太长,所以应该缩短。

    该解决方案也适用于完整数据集。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-14
      • 1970-01-01
      • 1970-01-01
      • 2015-02-16
      相关资源
      最近更新 更多