Построение гистограммы без пробелов - PullRequest
2 голосов
/ 29 мая 2019

Я пытаюсь построить график в Stata, но между ними появляется пустая полоса.

Пример данных и кода:

sysuse auto, clear  
drop if rep78 == . | rep78 == 3  
collapse price, by(rep78)  
twoway bar price rep78 

enter image description here

Как я могу построить график только других баров?

Ответы [ 2 ]

1 голос
/ 29 мая 2019

Более простая альтернатива -

sysuse auto, clear  
drop if rep78 == . | rep78 == 3  
graph bar price, over(rep78) 

отмечая, что

  1. graph bar по умолчанию рассчитывает среднее значение любой заданной переменной результата.

  2. graph bar не имеет понятия непрерывной оси x , а только категориальной оси.

  3. graph bar не имеет никакого представления о том, что могло бы быть, просто склонен упорядочить категории, существующие в данных, в порядке, если не указано иное.

  4. graph bar рассматривает категории как дискретные, поэтому столбцы по умолчанию не соприкасаются. graph bar price, over(rep78, gap(0)) обеспечит касание баров, хотя я не рекомендую это делать для подобных примеров.

1 голос
/ 29 мая 2019

Вы можете создать новую переменную с непрерывной нумерацией, используя команду egen:

sysuse auto, clear
drop if rep78 == . | rep78 == 3
egen rep78_2 = group(rep78)
collapse price, by(rep78_2)
label variable rep78_2 "Repair Record 1978"
twoway bar price rep78_2, barwidth(0.2)

В качестве альтернативы вы можете использовать команду recode для переменной rep78:

sysuse auto, clear
drop if rep78 == . | rep78 == 3
recode rep78 (4 = 3) (5 = 4)
collapse price, by(rep78)
twoway bar price rep78, barwidth(0.2)

Результат в обоих случаях будет одинаковым:

enter image description here

...