H 목록 상자의 그래프 작성기에 세로선을 추가합니다.안녕,
여러 개의 그래프를 하나의 플롯에 넣고 그래프 빌더와 V 리스트 박스, 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
);
);