좋은 오후입니다.
포인트가 각 박스 플롯과 관련 바이올린 플롯 내에 정확히 속하는 그래프를 만들고 싶었습니다.
그래프 빌더를 사용하여 포인트가 상자 내부에 정렬되지 않는다는 것을 깨달았습니다.
누구든지 이 문제를 해결하는 방법을 알고 있습니까?
사진을 첨부합니다.

Windows를 사용하는 경우 문자표에서도 찾을 수 있습니다.

이를 위해 addin/custom 함수를 생성하는 옵션도 있습니다. 이것은 완벽하지는 않지만 도움이 될 수 있습니까? 다음은 가능한 기능의 간단한 예입니다(하나를 만들면 더 강력하게 만들 것입니다).
Names Default To Here(1);
replace_str = Function({str}, {Default Local},
aa_unicode = Associative Array();
aa_unicode["\sigma"] = "\!U03C3";
aa_unicode["\mu"] = "\!U03BC";
aa_unicode["\subscript1"] = "\!U2081";
aa_unicode["\subscript2"] = "\!U00B2";
aa_unicode["\subscript3"] = "\!U00B3";
aa_unicode["\subscript4"] = "\!U2074";
return(Substitute(str, aa_unicode << get keys, aa_unicode << get values));
);
dt = New Table("Untitled 3",
Add Rows(0),
New Column("kg/m\subscript2"),
New Column("\sigma*\mu"),
New Column("\subscript1\subscript3")
);
wait(2);
For Each({col_name}, dt << Get Column Names(String),
Column(dt, col_name) << Set Name(replace_str(col_name));
);
Wikipedia에서 코드를 찾았습니다.
print("18F-FDG\!U00B9\!U2078");
"18F-FDG¹⁸"
친애하는 마크,
JMP와 같은 소프트웨어에 이러한 시간 낭비 문제가 있다는 것은 안타까운 일입니다.
시간을 단축할 수 있는 기사를 게시하는 것이 훌륭한 솔루션이 될 것입니다.
주세페
매우 감사합니다,
매우 유용하고 결정적인 조언.
행운을 빕니다
주세페
유니코드 중 지수가 18인 PS 18F-FDG 솔루션을 찾을 수 없습니다. 어떻게 하는지 아세요?
특수문자를 입력하는 방법이 좀 더 직관적이면 좋을 것 같습니다. 당분간은 내가 많이 사용하는 기호에 대해 주석이 달린 문자열이 포함된 스크립트를 유지합니다. 그것은 약간의 노력을 절약합니다.
JMP는 UTF-8 및 UTF-16 유니코드 표준을 모두 지원합니다. 자세한 내용은 스크립팅 가이드를 참조하십시오.특별한 처리 없이 이러한 특수 문자를 포함할 수 있습니다.
JMP는 이스케이프 문자열 "\!"를 사용하여 이러한 문자를 인쇄할 수도 있습니다. 유니코드 문자열이 뒤따릅니다.라벨로 지정한 것을 포함하기 위해 스크립트 창을 열고 다음 인쇄 명령을 창에 배치합니다.
print("BMI (Kg / m\!U00B2)");
이 줄을 실행하면 로그에 다음 내용이 표시되며 이를 잘라서 레이블에 붙여넣을 수 있습니다.
"BMI (Kg / m²)"
더 직접적인 경로가 있었으면 좋겠는데 하나도 모르겠습니다.전체 유니코드 문자 집합에 대한 자세한 내용은 스크립팅 가이드에서 확인할 수 있습니다.

제안해 주셔서 감사합니다.
예를 들어 그룹 제곱 또는 2를 아래 첨자로 표시하는 방법을 알고 싶습니다.
또는 이전 예에서 높이 제곱을 표시합니다.
따라서 일반적으로 위첨자 또는 아래첨자로 축 레이블을 표시하는 방법입니다.
예를 들어 세로축에 BMI(Kg / m ^ 2)를 썼다면 어떻게 JMP에 "^ 2"가 ^ 기호를 사용하지 않고 제곱이라고 알릴 수 있습니까?
행운을 빕니다
JMP는 특수 문자 집합을 지원하는 유니코드 문자 집합을 사용합니다.
é 및 ½과 같은 문자. 특별한 유니코드 없이 파일을 저장합니다.
자동으로 일반 텍스트로 문자. 이 옵션은 다음에 의해 선택됩니다.
기본.
즉, 이러한 특수 유니코드 문자를 데이터 테이블에 배치하면 해당 문자가 표시됩니다.


대단히 감사합니다.
소중한 조언 덕분에 드디어 목표에 도달했습니다.
돌이켜 보면 해결책은 간단했지만 당신이 쓴 것에 대해 선험적으로 생각하지 않았습니다. 궁금한 점이 있습니다. x축 또는 세로좌표의 변수 레이블에 위첨자와 아래첨자를 넣는 방법을 알고 계십니까?
JMP에는 이 단순하지만 일반적인 가능성이 없다는 것을 알았습니다.
이러한 단점은 JMP의 중요성을 고려할 때 다소 이례적인 것입니다.
행운을 빕니다
주세페
설명하는 대로 데이터 테이블을 가져오고 그래프 빌더에 전달하여 데이터를 쌓을 디스플레이를 만든 다음 그래프 빌더를 실행하기 위해 수행해야 하는 모든 작업입니다.예를 들어, 4개의 연속 변수가 있는 다음 표가 주어지면(필요한 만큼 많은 연속 변수를 가질 수 있음),

하나는 그냥 사용
테이블=>스택
모든 연속 열을 쌓고 그룹 열도 함께 수행되는지 확인합니다.

또한 누적 데이터 열을 측정으로, 소스 레이블 열을 변수로 이름을 변경했습니다.
이제 결과 데이터를 Graph Builder에서 사용하여 원하는 그래프를 만들 수 있습니다.

아래는 먼저 JMP에서 제공하는 샘플 데이터 테이블 중 하나에서 샘플 데이터 테이블을 생성한 다음 데이터를 누적하고 마지막으로 Graph Builder를 사용하여 위 차트를 생성하는 스크립트입니다.
Names default to here(1);
// Create a sample data table that has multiple continuous variables with 2 groups
// Open Data Table: semiconductor capability.jmp
// → Data Table( "semiconductor capability" )
dt = Open( "$SAMPLE_DATA/semiconductor capability.jmp" );
dt:Site << set name("Group");
dt << select where( :Group<=2 & :lot_id == "lot01" );
dt << invert row selection;
dt << delete rows;
dtSub = dt << Subset(
All rows,
columns( :Group, :NPN1, :NPN2, :NPN3, :NPN4 )
);
close(dt, nosave);
Wait(5); // Wait 5 seconds so one can see the initial data table
// Now just modify the data shape to set it up for Graph Builder to display the
// data as required
// First Stack all of the continuous variables into one column, and create a second
// column that indicates what column each row's value came from
dtStack = dtSub <<
Stack(
columns( :NPN1, :NPN2, :NPN3, :NPN4 ),
Source Label Column( "Variable" ),
Stacked Data Column( "Measurement" )
);
// Now graph the data placing the Variable and Group columns on the X axis and the
// Measurement column on the Y axis
// Also, remove the label from the Y axis
Graph Builder(
Size( 528, 458 ),
Show Control Panel( 0 ),
Variables(
X( :Variable ),
X( :Group, Position( 1 ) ),
Y( :Measurement ),
Color( :Group )
),
Elements(
Contour( X( 1 ), X( 2 ), Y, Legend( 14 ) ),
Box Plot( X( 1 ), X( 2 ), Y, Legend( 13 ) ),
Points( X( 1 ), X( 2 ), Y, Legend( 15 ) )
),
SendToReport(
Dispatch( {}, "Y title", TextEditBox, {Set Text( "" )} ),
Dispatch(
{},
"Graph Builder",
FrameBox,
{DispatchSeg( Poly Seg( "Violin (NPN1>>1)" ), {Transparency( 0.5 )} ),
DispatchSeg( Poly Seg( "Violin (NPN1>>2)" ), {Transparency( 0.5 )} ),
DispatchSeg( Poly Seg( "Violin (NPN2>>1)" ), {Transparency( 0.5 )} ),
DispatchSeg( Poly Seg( "Violin (NPN2>>2)" ), {Transparency( 0.5 )} ),
DispatchSeg( Poly Seg( "Violin (NPN3>>1)" ), {Transparency( 0.5 )} ),
DispatchSeg( Poly Seg( "Violin (NPN3>>2)" ), {Transparency( 0.5 )} ),
DispatchSeg( Poly Seg( "Violin (NPN4>>1)" ), {Transparency( 0.5 )} ),
DispatchSeg( Poly Seg( "Violin (NPN4>>2)" ), {Transparency( 0.5 )} )}
),
Dispatch(
{},
"400",
LegendBox,
{Legend Position( {14, [3, 4], 13, [0, 1, 2, -3], 15, [5, 6]} )}
)
)
);
매우 감사합니다,
절차를 시도했지만 작동하지 않습니다.
x축에 여러 개의 연속변수를 동시에 넣고 싶은데 각각을 2개의 그룹으로 나눈다. y축에는 변수가 없습니다.
목표는 모든 변수를 함께 표시하고 각 변수를 두 그룹과 비교하는 것입니다.
조언해주신 대로 y축에 한 번에 하나의 변수만 넣을 수 있습니다. 모든 변수를 함께 넣으면 상자 그림에서 포인트가 정렬되지 않는 문제가 다시 발생하기 때문입니다. 동시에 여러 변수를 원합니다.
주세페
X 열과 오버레이 열을 모두 X축으로 드래그한 다음 오버레이 열을 가져와 색상 드롭 영역으로 이동합니다.
