Elements 上的 Graph Builder JSL 命令你好,
我找不到编辑(添加元素/删除元素/向元素添加标签)图形生成器元素的语法后图表已准备就绪。
Open( "$SAMPLE_DATA/Big Class.jmp" );
gb = Graph Builder(
Size( 465, 278 ),
Show Control Panel( 0 ),
Fit to Window( "Off" ),
Variables( X( :age ), Y( :height ), Y( :weight ) ),
Elements( Position( 1, 1 ), Line( X, Y, Legend( 1 ) ) ),
Elements( Position( 1, 2 ), Bar( X, Y, Legend( 2 ) ) )
);
//gb[Elements(2)] << Label( "按值标记" );// ?? // 这个的语法是什么?
//gb << 添加元素(Position( 1, 3 ), Line( X, Y, Legend( 3 ) ));// ?? //Y必须是重量
谢谢
大规模定制回复:Elements 上的 Graph Builder JSL 命令自 Jmp17 以来:)
Open( "$SAMPLE_DATA/Big Class.jmp" );
gb = Graph Builder(
Size( 465, 278 ),
Show Control Panel( 0 ),
Fit to Window( "Off" ),
Variables( X( :age ), Y( :height ), Y( :weight ) ),
Elements( Position( 1, 1 ), Line( X, Y(1), Legend( 1 ) ) ),
Elements( Position( 1, 2 ), Bar( X, Y(2), Legend( 2 ) ) )
);
gb << Update Element(1,2,1, {Label("Label by Value")});
gb << Add Variable({:weight, Role("Y"), Method("insert")}); //creates a bar chart
gb << Add Element( 1, 3 , {Type("Line"), X, Y}, Legend( 3 ) );
gb << Remove Element( 1, 3 , 1 ); //remove bar chart回复:Elements 上的 Graph Builder JSL 命令非常感谢你们俩。
“GraphBuilderBox”是关键字......
回复:Elements 上的 Graph Builder JSL 命令@汤姆_阿布拉莫夫,
是我,用户语法错误。她你走吧。
Open( "$SAMPLE_DATA/Big Class.jmp" );
gb = Graph Builder(
Size( 465, 278 ),
Show Control Panel( 0 ),
Fit to Window( "Off" ),
Variables( X( :age ), Y( :height ), Y( :weight ) ),
Elements( Position( 1, 1 ), Line( X, Y(1), Legend( 1 ) ) ),
Elements( Position( 1, 2 ), Bar( X, Y(2), Legend( 2 ) ) )
);
gbb = report(gb)[GraphBuilderBox(1)];
gbb<< Update Element(1,2,1, {Label("Label by Value")});
report(gb)[GraphBuilderBox(1)] << Add Variable({:weight, Role("Y"), Method("insert")}); //creates a bar chart
gbb = report(gb)[GraphBuilderBox(1)];
gbb << Add Element( 1, 3 , {Type("Line"), X, Y}, Legend( 3 ) );
gbb << Remove Element( 1, 3 , 1 ); //remove bar chart
回复:Elements 上的 Graph Builder JSL 命令@汤姆_阿布拉莫夫,
我走了一条不同的漫长道路,就像吉姆一样, @tx尼尔森。然后我不得不笑,因为 JMP 有一个简单的解决方案,其中包含以下消息
Update Element() 发送到 GraphBuilderBox()
Open( "$SAMPLE_DATA/Big Class.jmp" );
gb = Graph Builder(
Size( 465, 278 ),
Show Control Panel( 0 ),
Fit to Window( "Off" ),
Variables( X( :age ), Y( :height ), Y( :weight ) ),
Elements( Position( 1, 1 ), Line( X, Y(1), Legend( 1 ) ) ),
Elements( Position( 1, 2 ), Bar( X, Y(2), Legend( 2 ) ) )
);
gbb = report(gb)[GraphBuilderBox(1)];
gbb<< Update Element(1,2,1, {Label("Label by Value")});
/* //hard way not recommended
//must be done while No Labels is specified
gb<< show Control Panel(1);
so_bar = report(gb)[OutlineBox("Bar[weight]")];
cb_label = so_bar << xpath("//ComboBox/ComboBoxItem[text()='No Labels']/..");
cb_label << set(2);
gb << show Control panel(0);
*/
但是,我通过添加变量 :weight 遇到了一个问题,这很容易做到,但默认情况下,GraphBuilder 会创建另一个条形图元素。我遇到了一些棘手的问题,几个 JMP 异常。
我将添加一个愿望列表项,JMP 允许 elemnet 的 Change To() 消息,而不仅仅是添加元素和删除元素。
当/如果我弄清楚时,我会添加到帖子中。
回复:Elements 上的 Graph Builder JSL 命令@汤姆_阿布拉莫夫
我的脑海中突然浮现出一个想法,有一种方法可以解决这个问题……这是我出于不同原因多次使用的解决方案。我建议您编写代码,这样当您需要添加引用的元素时,您只需删除整个图表并在其位置重新创建它即可。JMP 处理刷新的方式,删除图形后可能不会显示更改。它可能只会看到图表发生了变化。
下面的代码说明了我的想法。
names default to here(1);
Open( "$SAMPLE_DATA/Big Class.jmp" );
new window("Test", vlb=vlistbox());
vlb<< append(gb = Graph Builder(
Size( 465, 278 ),
Show Control Panel( 0 ),
Fit to Window( "Off" ),
Variables( X( :age ), Y( :height ), Y( :weight ) ),
Elements( Position( 1, 1 ), Line( X, Y, Legend( 1 ) ) ),
Elements( Position( 1, 2 ), Bar( X, Y, Legend( 2 ) ) )
));
wait(5);
gb << delete;
vlb << append(gb = Graph Builder(
Size( 465, 278 ),
Show Control Panel( 0 ),
Fit to Window( "Off" ),
Variables( X( :age ), Y( :height ), Y( :weight ) ),
Elements( Position( 1, 1 ), Line( X, Y, Legend( 1 ) ) ),
Elements(
Position( 1, 2 ),
Bar( X, Y, Legend( 2 ), Label( "Label by Value" ) )
)
));回复:Elements 上的 Graph Builder JSL 命令对我来说不好...
谢谢吉姆。
回复:Elements 上的 Graph Builder JSL 命令我认为这是不可能的。您必须能够做的是将一个段(Segment)(例如条形段(Bar Seg)或线段(Line Seg))传递到输出中的 FrameBox()。
Names Default To Here( 1 );
Open( "$SAMPLE_DATA/Big Class.jmp" );
obj = Graph Builder( Variables( X( :age ), Y( :weight ) ), Elements( Bar( X, Y ) ) );
frame = Report( obj )[FrameBox( 1 )];
seg = (frame << Find Seg( "Bar Seg" ));
seg << Get Width Proportion();
seg << Set Fill Color( "Green" );
当您右键单击图表时,您可以在“自定义”选择中以交互方式更改段,并且没有标签段。
