Объедините гистограммы в один график - PullRequest
0 голосов
/ 06 сентября 2018

В соответствии с файлом справки команды histogram пример кода:

sysuse auto 
histogram mpg, discrete by(foreign)

создаст два таких графика, расположенных один рядом с другим.

Можно ли как-нибудь поместить обе гистограммы в один и тот же график?

Я использую Stata 14.

1 Ответ

0 голосов
/ 06 сентября 2018

Да, вы можете сделать это, используя более гибкую команду graph twoway:

sysuse auto, clear
twoway (histogram mpg if !foreign) (histogram mpg if foreign), ///
       legend(order(1 "Domestic" 2 "Foreign"))

Тем не менее, результат не очень полезен, так как две гистограммы перекрываются:

enter image description here

В отличие от версии 15, Stata 14 не поддерживает прозрачность . Таким образом, подобный эффект должен быть смоделирован путем настройки параметров. Или, в качестве альтернативы, найдите способ разделить гистограммы.

Решение 1: Имитация прозрачности

twoway (histogram mpg if !foreign, width(3) color(ebblue)) ///
       (histogram mpg if foreign, width(3) fcolor(none) lcolor(black) lwidth(thin)), ///
       legend(order(1 "Domestic" 2 "Foreign"))

enter image description here

Решение 2. Имитация гистограмм с помощью гистограммы

twoway__histogram_gen mpg if !foreign, generate(h0 x0)
twoway__histogram_gen mpg if foreign, generate(h1 x1)

twoway (bar h0 x0, barw(1) color(ebblue)) (bar h1 x1, barw(1) color(red)), ///
       legend(order(1 "Domestic" 2 "Foreign"))

enter image description here

Для этого решения я сначала создаю столбики вручную, а затем рисую их. Для получения дополнительной информации введите help twoway__histogram_gen в командной строке Stata.

...