Несколько гистограмм одинакового масштаба
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 | * Этот синтаксис - пример использования макроса из файла "dograph.sps". * Я полагаю, что синтаксис "dograph.sps" и шаблон графика "dograph.sct" помещены в c:\\temp. * Автор: rlevesque@videotron.ca. * Синтаксис генерирует случайные данные и строит несколько гистограмм для разных категорий некоторой переменной в одинаковом масштабе по горизонтали и вертикали. * Надо отметить, что в современных версиях SPSS (например, 13), подобная работа может быть произведена достаточно легко (с использованием "группирующей" (Panel) переменной в меню Histogram, например). * Поэтому данный синтаксис и вызываемый из него макрос служат, скорее, демонстрацией различных преобразований, которые можно осуществлять с помощью синтаксиса и макросов - А.Б. SET MPRINT=yes. * Сгенерируем данные для демонстрации работы. NEW file. INPUT PROGRAM. SET SEED=986431. LOOP id=1 TO 500. COMPUTE region=RND(UNIFORM(5)+.5). COMPUTE job_cat=RND(UNIFORM(5)+.5). * Суть следующих вычислений - получить разное количество наблюдений и разные интервалы значений числовой переменной в разных категориях. DO IF UNIFORM(1)<region/5. COMPUTE value1=RND(region*10+UNIFORM(60)). COMPUTE value9=RND(job_cat*25+UNIFORM(60+region*2)). END CASE. +END IF. END LOOP. END FILE. END INPUT PROGRAM. EXECUTE. SAVE OUTFILE='c:\\temp\\data0.sav'. ********************. * Использование макроса. ********************. * Для примера вызываем макрос пару раз, и он целиком выполняет требуемые действия. SET MPRINT=yes. INCLUDE FILE="c:\\temp\\dograph.sps". * Строим гистограмму для value1 по разным регионам (region) (допустим, нам нужны 20 столбцов везде). GET FILE='C:\\temp\\data0.sav'. !dograph cat=region val=value1 nbbins=22 title="Histograms by Regions". * Строим гистограмму для value9 по категориям служащих (job_cat) (скажем, нужны 10 столбцов на всех гистограммах). GET FILE='C:\\temp\\data0.sav'. !dograph cat=job_cat val=value9 nbbins=10 title="Histograms by Job Categories". * Однако примерно те же результаты мы бы получили без дополнительных макросов, используя расширенные возможности современной версии SPSS - А.Б.:. GET FILE='C:\\temp\\data0.sav'. IGRAPH /VIEWNAME='Histogram' /X1 = VAR(value1) TYPE = SCALE /Y = $count /COORDINATE = VERTICAL /PANEL VAR(region) /X1LENGTH=3.0 /YLENGTH=3.0 /X2LENGTH=3.0 /CHARTLOOK='C:\\Program Files\\SPSSEVAL\\Looks\\Chalkboard.clo' /CATORDER VAR(region) (ASCENDING VALUES OMITEMPTY) /Histogram SHAPE = HISTOGRAM CURVE = OFF X1INTERVAL AUTO X1START = 0. EXE. * Это мы использовали интерактивные графики. GRAPH /HISTOGRAM=job_cat /PANEL ROWVAR=region ROWOP=CROSS . * Это мы использовали обычные графики. |