各位,
我正在寻找一种方法,通过重新排列我用图形生成器制作的内容来改进我的图形布局。 我现在有 9 个小图,使用“页面”选项。 我想要的是将它们排列成 3X3,因为这样看起来更好(某种格子显示)。 我知道你可以使用“Wrap”按钮获得它,但在那种情况下,所有轴都设置相同,这不是一个选项,因为我用于“Page”的分组变量与具有非常不同的单位和非常不同的顺序的参数相关规模…… 以类似的方式,“X 组”或“Y 组”也不起作用。 我试图将图表发送到日记并手动重新排序,但我无法很好地将图表粘贴到另一个图表旁边。
不确定我是否需要为此编写脚本,以确保报告是使用“图片/显示框”左右构建的,但问题是,每次我为我的图形生成器保存脚本然后重新运行它时,该图未显示,只有轴是...... 最简单的(我认为)是首先在图形生成器中制作图形,将其发送到期刊,然后重新排列期刊。 正确的?
关于如何处理这个的任何想法?
非常感谢!!
颜妮
您可以创建单独的图形,然后将它们放在一个窗口中。如果您总是显示相同的 9 个图表,那么下面的脚本可能就是您所需要的;如果级别发生变化,您可以使用循环构建窗口层次结构。
Names default to here( 1 );
//Open sample data and create a binning column
dt = Open("$SAMPLE_DATA/Body Fat.jmp");
dt << New Column( "Age (decades)",
Numeric,
Nominal,
Format( "Best", 10 ),
Formula( 10 * Floor( :Name( "Age (years)" ) / 10 ) )
);
//function to build each individual graph with a local data filter
GraphDecade = function({decade},
gb = dt << Graph Builder(
Size( 300, 300 ),
Show Control Panel( 0 ),
Show Legend( 0 ),
Variables( X( :Name( "Age (years)" ) ) ),
Elements( Histogram( X, Legend( 5 ) ) ),
SendToReport( Dispatch( {},
"Graph Builder",
OutlineBox,
{Set Title( "Decade: " || Char( decade ) )} )
),
Local Data Filter(
Close Outline( 1 ),
Add Filter(
columns( :Name( "Age (decades)" ) ),
Where( :Name( "Age (decades)" ) == decade ),
Display( :Name( "Age (decades)" ), Size( 256, 168 ), List Display )
)
)
)
);
//Window with graphs
win = new window( "Ages by Decade",
V List Box(
Text Box( "Distribution of Ages within Decades", << Set Font Size( 20 ), << Set Width( 600 ) ),
H List Box(
vb1 = V List Box(
GraphDecade(20),
GraphDecade(40)
),
vb2 = V List Box(
GraphDecade(30),
GraphDecade(50)
)
)
)
);
(vb1[1] << Find("Local Data Filter")) << visibility("collapse");
(vb1[2] << Find("Local Data Filter")) << visibility("collapse");
(vb2[1] << Find("Local Data Filter")) << visibility("collapse");
(vb2[2] << Find("Local Data Filter")) << visibility("collapse");
编辑:修正错误