Удалить перекрывающиеся метки оси X на диаграмме
За исключением использования аннотаций, я не смог найти разумного способа предотвратить перекрытие моих меток оси X при использовании barchartparm
в САС. Из документации они ясно заявляют, что столбчатые диаграммы используют дискретную ось, а другие типы осей, такие как время, для них недопустимы. Хотя с концептуальной точки зрения это имеет смысл, это кажется "ненужным" ограничением для принудительного применения, поскольку не оставляет контроля над маркировкой по оси X, поскольку каждая отдельная этикетка будет напечатана.
Пример данных:
data test;
format rpt_date date9.;
do rpt_date=date()-90 to date();
root = round(ranuni(1) *100,1);
output;
end;
run;
Определите шаблон диаграммы:
proc template;
define statgraph giddyup;
begingraph;
layout overlay;
barchartparm x=rpt_date y=root ;
endlayout;
endgraph;
end;
run;
Создайте диаграмму:
proc sgrender data=test template=giddyup;
run;
Результат:
Я попытался приклеить его на клейкую ленту и создать собственный формат для оси X, который бы "отбрасывал" многие значения, и хотя диаграмма была создана, она сложила все пробелы вместе (??) и также произвела предупреждение.
Я также пытался использовать альтернативный x2axisopts
и установка оси на вторичную без удачи.
Если бы я использовал диаграмму серии, я смог бы точно контролировать ось, но в моем случае данные гораздо проще интерпретировать как диаграмму. Возможно, им нужно было добавить дополнительные опции к xaxisopts
для гистограммы.
Самое расстраивающее здесь то, что это то, что вы можете сделать в Excel за 2 секунды, и мне кажется, что это будет очень распространенная диаграмма в Excel, которую нелегко воспроизвести в SAS!
РЕДАКТИРОВАТЬ: я тоже не хочу использовать proc gchart
,
1 ответ
Хорошо, теперь я чувствую себя глупо. Оказывается, что гистограммы добьются того же самого результата:
histogramparm x=rpt_date y=root ;
Я думаю, это все еще ценный вопрос, так как я потратил много времени, пытаясь найти ответы и не мог найти решение.
Хорошо, что я не хотел, чтобы это было горизонтально...