Как не обрезать имена категорий hbox графа - PullRequest
0 голосов
/ 04 декабря 2018

Я, кажется, сталкивался с этой проблемой совсем немного, но не нашел удовлетворительного решения.

При использовании горизонтальных рамок и графиков усов (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) 

Horizontal Box graph with inaccurate label rendering

Мне нужно 12 пробелов для отображения названий категорий, но не может найти в Stata или руководстве Stata, как установить длину метки.

Полный набор данных, который воспроизводит этот график, можно найти здесь .

Любые мысли будут с благодарностью.

Ответы [ 2 ]

0 голосов
/ 04 декабря 2018

Что вызывает это, это ' после 20, 30 и т. Д. И, вероятно, связано с тем, как 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) 

enter image description here

0 голосов
/ 04 декабря 2018

Я мог бы повторить проблему с этим подмножеством данных:

* 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) 

enter image description here

и мог бы получить разумно выглядящие ярлыки с этой мастерить.

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

enter image description here

Естественно, участки на поле не являются серьезными.Я сосредотачиваюсь исключительно на сообщенной проблеме.

Я плохо представляю, почему текстовые метки такого длинного (или короткого) размера являются проблематичными.Интуиция заключалась лишь в том, что длина оси явно слишком велика, поэтому ее следует укоротить.

Решение также работает с полным набором данных.

...