选择多列并在脚本中绘制直方图你好,
我编写了一个脚本来从表中选择两列并绘制直方图。 我希望能够选择任意数量的列并为选定的列绘制直方图。 有人可以帮助我实现这一目标吗? 我在下面列出了我的脚本。 谢谢
dt =打开( “A.csv” );
xvar= 。 ;
yvar = 。 ;
赢=新窗户( “选择两个变量” ,
<<莫代尔,
<<验证时(
// 要求用户在单击“确定”之前选择两个变量
展示(xvar,yvar);
如果(不见了(xvar)|不见了(伊瓦尔),
0 , // 如果 xvar 或 yvar 丢失,则单击“确定”时不执行任何操作
1
);
),
文本框( " 选择两个数字列。 ” ),
H 列表框(
文本框( 《选择第一》 ),
x =列列表框(
德特, // 数据表引用
全部, // 显示数据表中的所有列
xvar = (x <<被选中)[ 1 ];
// 获取窗口关闭前所选列的名称
展示(xvar);
),
文本框( 「选择第二个」 ),
y =列列表框(
德特,
全部,
yvar = (y <<被选中)[ 1 ];
展示(yvar);
)
)
);
x 列 =柱子(dt,xvar); // 获取列
ycol =柱子(dt,yvar);
姓名1 = “:” || xvar;
名称2 = “:” ||伊瓦尔;
名称 = 名称1 || “,” ||姓名2;
展示( 姓名 );
评估(
解析(
“obj1 = 分布(
堆栈(1),
连续分布(列(“ ||名称1 || ”),
),
连续分布(列(“ ||名称2 ||
”),
)
);”
)
);
回复:选择多列并在脚本中绘制直方图谢谢。 这是非常有用的脚本。回复:选择多列并在脚本中绘制直方图你好,
再次感谢。 我想将直方图的结果保存到 HTML 中,并且过去已经做到了。 这是经过一些修改的脚本。 我确实收到错误
名称未解析: obj 正在访问或评估“obj”)。 我感谢您的帮助。
dt =打开( “A.csv” );
赢=新窗户( “数据选择” ,
H 列表框(
面板盒( “可用栏” , dtCols =列列表框( dt, 全部, 宽度( 80 ) ), ),
面板盒( “选定的栏目” ,
H 列表框(
V 列表框(
添加按钮 =按钮盒( “添加” , 列列表 <<附加( dtCols <<被选中) ),
删除按钮 =按钮盒( “消除” , 列列表 <<删除选定())
),
列列表=列列表框( 数字,宽度( 80 ), 最小项目( 1 ), N 行( 4 ) )
)
),
确定按钮 =按钮盒( “好的” ,
PlotCols = colList <<获取物品;
str = ”” ;
为了(我= 1 , 我 <= N 项(图列),i++,
str = str || "连续分布(列(:名称(\!"" ||绘图[i] || “\!”))),
”
);
评估(解析( “obj = dt << 分布(堆栈(1),” ||字符串|| “);” ) );
赢了<<关闭窗口;
)
)
);
对象<<报告;
对象<<保存交互式 HTML ( “A” );
回复:选择多列并在脚本中绘制直方图非常感谢您提供解决方案。 我尝试过并且有效。
回复:选择多列并在脚本中绘制直方图这是使用 colListBoxes 的方法:
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
win = New Window("Data Select",
H List Box(
Panel Box("Available Columns",
dtCols = Col List Box(dt, all, width(80)),
),
Panel Box("Selected Columns",
H List Box(
V list Box(
addButton = Button Box("Add", colList << Append(dtCols << Get Selected) ),
removeButton = Button Box("Remove", colList << Remove Selected() )
),
colList = Col List Box(numeric, width(80), MinItems(1), N Lines(4))
)
),
okButton = Button Box("OK",
PlotCols = colList << Get Items;
str = "";
for(i=1,i<=N Items(PlotCols),i++,
str = str||"Continuous Distribution(Column(:Name(\!""||plotcols[i]||"\!"))),
"
);
eval(parse("dt << Distribution(stack(1),"||str||");"));
win << Close Window;
)
)
);