2015-06-17 2 views
1

Я работаю с графическим модулем ciplot для Stata и сталкиваюсь с проблемой выравнивания баров, когда я использую опцию by(). Вот тривиальный пример, демонстрирующий проблему:Выровнять бары в ciplot

webuse citytemp, clear 
ciplot heatdd cooldd, by(region) horizontal recast(conn) 

ciplot

Таким образом, график показывает средства и доверительные интервалы для двух переменных по категориям переменной region. Однако бары для разных переменных не выравниваются по горизонтали. Для каждой области точка и бар для heatdd - одна строка выше, а точка и строка для cooldd - одна строка ниже, метка категории. Я бы хотел, чтобы они были на одной линии, но я не могу понять, как ее достичь.

Я открыт для решений, которые не связаны с ciplot, но я нашел, что это полезно для конкретной задачи, над которой я работаю.

+1

Поскольку у вас есть две переменные, если они находятся на одной линии, они могут столкнуться друг с другом. В вашем примере это произойдет для ** Южного **. Это предназначено? –

+1

Какое преимущество вы видите при соединении средств с линиями? Мне сложнее интерпретировать график, поскольку вы подключаете разные категории, а не точки времени. –

+0

@RobertoFerrer Спасибо. В моих реальных данных это точки времени, а не категории, но я хотел представить здесь простой воспроизводимый пример. – Thomas

ответ

4

Это моя программа (в терминах Stata, загружаемая через ssc install ciplot), поэтому я могу говорить уверенно. (На Statalist ожидается, что вы объясните точное происхождение пользовательских программ, что тоже будет хорошей практикой.)

Это не ошибка; это функция (предположительно).

Смещения полностью преднамеренно, чтобы избежать беспорядков, когда два или более интервала просто перекрываются и перекрываются друг с другом, что вполне вероятно, когда группы или сопоставимые переменные имеют одинаковые значения, что, в свою очередь, является общим, когда вы это делаете. Даже в вашем примере интервалы времени нагрева и охлаждения для юга будут перекрываться в противном случае, поэтому график указывает на меня.

я могу видеть, что это не то, что вы хотите, но

  1. Там нет возможности в ciplot для удаления смещения. Я могу видеть случай для одного, но

  2. Моего совета теперь использовать statsby, чтобы получить уменьшенный набор данных, содержащих информацию об интервалах доверия, а затем график, как правило, несколько командных строк, и вы можете выбрать что ты хочешь. Этот подход задокументирован в легкодоступной бумаге from the Stata Journal.

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

+0

Спасибо, Ник! Я надеялся, что вы это увидите, так как я знал, что это ваша программа. Это отвечает на мой вопрос. – Thomas

+0

И в случае, если кто-то еще сталкивается с этим, я разместил здесь измененный файл ado: https://github.com/leeper/ciplotm – Thomas

+0

Это прекрасно, но обратите внимание, что внутри справки ссылки на 'ciplot' должны быть 'ciplotm'.Кроме того, вы теперь первый автор: при определении порядка авторов доля написанного кода менее важна, чем называть человека, к которому нужно обратиться за поддержкой. –