在 H 列表框的图形生成器中添加垂直线你好,
我想在一张图中放置多个图表,并使用图表构建器、垂直列表框和水平列表框。我还想在图表中添加垂直线。我找到了@jthi的示例,但是一旦图表数量过多,就会出现问题。
下面的示例只显示一个图,但当我取消注释第二个图时,两个图之间会出现一个额外的坐标轴(见下图)。如何解决这个问题?
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
//gender_list = {"F", "M" };
gender_list = {"F"};
For( i = 1, i < N Items( gender_list ) + 1, i++,
gender = gender_list[i];
dt_gender = dt << Subset(
Filtered Rows( :sex == gender ),
Include All Columns//Name :sex
);
Match ( gender,
"F", data = Column ("height"),
"M", data = Column ("weight")
);
Match ( gender,
"F", ref_line = 60,
"M", ref_line = 100
);
plot = New Window ( gender,
H List Box(
gb1 = dt_gender << Graph Builder(
Size(529, 457),
Show Control Panel(0),
Variables(X(data)),
Elements(Histogram(X, Legend(3)))
),
axisbox = Report(gb1)[AxisBox(1)],
axisbox << Add Ref Line(ref_line, "Dotted", red, gender, 2),
/*gb2 = dt_gender << Graph Builder(
Size(529, 457),
Show Control Panel(0),
Variables(X(data)),
Elements(Histogram(X, Legend(3)))
), */
//axisbox = Report(gb2)[AxisBox(1)],
//axisbox << Add Ref Line(ref_line, "Dotted", red, gender, 2),
),
);
);
自动化和脚本编写数据探索与可视化回复:在 H 列表框的图形生成器中添加垂直线在“新窗口”中,可以用逗号分隔不同的显示对象:
gb = graph Box ();
new window("test",
Text Box ("Hello"),
gb [Axis Box (2)]
)
创建一个新的窗口,其中包含文本框和坐标轴框。
如果要向此列表中添加“命令”,则必须用“;”将命令“关闭”。
就你的情况而言:
查看更多...
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
//gender_list = {"F", "M" };
gender_list = {"F"};
For( i = 1, i < N Items( gender_list ) + 1, i++,
gender = gender_list[i];
dt_gender = dt << Subset(
Filtered Rows( :sex == gender ),
Include All Columns//Name :sex
);
Match ( gender,
"F", data = Column ("height"),
"M", data = Column ("weight")
);
Match ( gender,
"F", ref_line = 60,
"M", ref_line = 100
);
plot = New Window ( gender,
H List Box(
gb1 = dt_gender << Graph Builder(
Size(529, 457),
Show Control Panel(0),
Variables(X(data)),
Elements(Histogram(X, Legend(3)))
),
axisbox = Report(gb1)[AxisBox(1)];
axisbox << Add Ref Line(ref_line, "Dotted", red, gender, 2);
gb2 = dt_gender << Graph Builder(
Size(529, 457),
Show Control Panel(0),
Variables(X(data)),
Elements(Histogram(X, Legend(3)))
),
axisbox = Report(gb2)[AxisBox(1)];
axisbox << Add Ref Line(ref_line, "Dotted", red, gender, 2);
),
);
);
.
回复:在 H 列表框的图形生成器中添加垂直线我尝试添加截图,但社区里的复制/粘贴功能似乎仍然无法使用。
@Ryan_Gilmore ?
回复:在 H 列表框的图形生成器中添加垂直线我建议将添加引用行的代码移到新窗口之外,因为这样更容易更新和修改(在我看来)(你也可以按照 hogi 的建议去做)。
以下是我最初的写作思路(并非所有技巧都是基本技巧,但可以提供一些思路)。
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
plot_width = 400;
plot_height = 300;
aa_genders = Associative Array();
aa_genders["F"] = ["data" => "height", "ref_line" => 60];
aa_genders["M"] = ["data" => "weight", "ref_line" => 100];
For Each({{cur_gender, specs}}, aa_genders,
dt_gender = dt << Subset(
Filtered Rows(:sex == cur_gender),
Include All Columns,
Invisible
);
hlb = H List Box(
gb1 = dt_gender << Graph Builder(
Size(plot_width, plot_height),
Show Control Panel(0),
Variables(X(Eval(specs["data"]))),
Elements(Histogram(X, Legend(3)))
),
gb2 = dt_gender << Graph Builder(
Size(plot_width, plot_height),
Show Control Panel(0),
Variables(X(Eval(specs["data"]))),
Elements(Histogram(X, Legend(3)))
)
);
axisbox = Report(gb1)[AxisBox(1)];
axisbox << Add Ref Line(specs["ref_line"], "Dotted", red, cur_gender, 2);
axisbox = Report(gb2)[AxisBox(1)];
axisbox << Add Ref Line(specs["ref_line"], "Dotted", red, cur_gender, 2);
aa_genders[cur_gender]["dt"] = dt_gender;
aa_genders[cur_gender]["report"] = New Window(cur_gender,
hlb
);
);