JSL이 곡선의 가치를 복원할 수 있습니까?이미 주어진 곡선이 있는 경우 코드를 사용하여 데이터에 가깝게 복원할 수 있습니다.
알려진 데이터의 수와 데이터의 최대값과 최소값을 설정합니다.
인공지능 기능이 있는 것 같습니다.
감사합니다!

스크립팅Re: JSL이 곡선의 값을 복원할 수 있습니까?그리고 가장 중요한 것은 이 곡선이 다른 곡선과 얼마나 유사한지 달성하고 싶습니다.
원칙은 두 데이터 세트 간의 비교여야 합니다.
JMP가 이를 잘 달성할 수 있습니까?
예를 들어, 아래 JSL로 그래프를 만들고 위 그래프와 비교하십시오.
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
dt << Sort( By( 1 ), Order( Ascending ), replacetable( 1 ) );
New Column( "A" );
Column( "A" ) << Formula( Row() );
dt << run formulas;
Column( "A" ) << deleteFormula;
p1 = Graph Builder(
Size( 528, 450 ),
Show Control Panel( 0 ),
Variables( X( :age ), Y( :A ) ),
Elements( Line( X, Y, Legend( 4 ) ) )
);

감사합니다!
Re: JSL이 곡선의 값을 복원할 수 있습니까?이 스크립트의 힘에 대해 Brady에게 다시 한 번 감사드립니다.
이 스크립트를 한 단계 더 발전시키고 싶습니다.
그러나 스크립트는 데이터로 식별하도록 약간 수정됩니다.
해당 Y 값을 식별하는 한 X축 위치인 단 하나의 픽셀로 곡선을 식별하십시오.

Re: JSL이 곡선의 값을 복원할 수 있습니까?그건 그렇고, 나는 픽셀에 대한 평균화에 신경 쓰지 않고 (여기서 그래프의 선은 각 열에서 몇 픽셀 두께임) 근사치를 찾고 있다면 처리 (이 특정 예에서)는 훨씬 빠르고 데이터 테이블이 복잡하지 않습니다. 보시다시피, 얻는 그래프는 기본적으로 동일합니다.
</CODE></P>
<PRE><CODE class=" language-jsl">names default to here(1);
New Window( "Example",
pb = Picture Box( Open( "/Users/homer.simpson@jmp.com/Downloads/graphPic.png", png ) )
);
pixMat = (pb << get image) << get pixels;
pixMat = pixMat[20 :: 265, 15 :: N Col( pixMat )];
nc = N Col( pixMat );
x = (1 :: nc)`;
y = J( nc, 1, . );
For( i = 1, i <= nc, i++,
y[i] = Loc Min( pixMat[0, i] )
);
y = nrow( pixMat ) - y; //"flip" y-vals to account for screen coordinate convention.
dt = As Table( x || y, <<COLUMN names=""></COLUMN>
</CODE></P>
<P> </P></LINGO-BODY><LINGO-SUB id="lingo-sub-382962" slang="en-US" mode="NONE">Re: JSL이 곡선의 값을 복원할 수 있습니까?</LINGO-SUB><LINGO-BODY id="lingo-body-382962" slang="en-US" mode="NONE"><P>이것은 항상 쉽지는 않지만 그래프에 따라 가능할 수도 있습니다. 제공한 그래프에 대해 이 작업을 수행하는 한 가지 방법이 있습니다. 이미지 처리에 대한 배경 지식이 없기 때문에 더 효율적인 방법이 있을 수 있습니다.</P>
<P> </P>
<P>아이디어는 이미지의 픽셀 값을 얻고 배경과 그래프의 차이점에 초점을 맞추는 것입니다. 이 경우 그래프 색상은 픽셀 열에서 최소값이었습니다. 다른 경우에는 일종의 대역통과 필터 등을 파생해야 할 수도 있습니다. 여러 색상의 배경의 경우 그래프의 색상이 배경의 색상 중 하나와 같으면 이 접근 방식도 작동하지 않을 수 있습니다. 어쨌든 이것을 시도하십시오.</P>
<P> </P>
<P>이것은 조잡한 접근 방식이지만 출발점을 제공해야 합니다. 데이터 정리/평활화는 사실 이후에 수행하는 것이 그리 어렵지 않습니다. 다른 사람들도 접근 방식과 성능을 개선할 수 있는 많은 방법을 찾을 것이라고 확신합니다.</P>
<P> </P>
<P>참고: x와 y의 크기를 조정하지 않았습니다. 다시 말하지만, 일단 그래프의 데이터까지 행렬을 가져오면 그렇게 하는 것은 어렵지 않습니다.</P>
<P> </P>
<P>내가 사용한 것과 동일한 파일을 사용할 수 있도록 내가 사용한 .png를 첨부했습니다.</P>
<P> </P>
<P><SPAN class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="brady_brady_0-1620328935156.png" style="width: 999px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="brady_brady_0-1620328935156.png" style="width: 999px;"><span class="lia-inline-image-display-wrapper" image-alt="brady_brady_0-1620328935156.png" style="width: 999px;"><img src="https://us.v-cdn.net/6038925/uploads/images/32659i25847C5EFC991944/brady_brady_0-1620328935156.png" role="button" title="brady_brady_0-1620328935156.png" alt="brady_brady_0-1620328935156.png" /></span></SPAN></SPAN></P>
<P> </P>
<P> </P>
<P> </P>
<P> </P>
<P>건배,</P>
<P>브래디</P>
<PRE><CODE class=" language-jsl">
Names Default To Here( 1 );
//need to save image and put the file path in the open() function.
New Window( "Example", pb = Picture Box( Open( "/Users/brady.brady@jmp.com/Downloads/graphPic.png", png ) ) );
img = pb << get image;
pixMat = img << get pixels;
pixMat = 1000*(floor(pixMat/1000)); //smooths values; use whatever factor you like
dt = astable(pixmat);
eval(substitute (
expr(dt << new column("Row", formula( _ROW_ - :row()))), //low rows for pixels are high. This is a fix for that.
expr(_ROW_),
nrow(dt)
));
dt:row << Delete Formula;
dt << move selected columns({"Row"}, to first);
dt << select where (:row() <= 20 | :row() >= 265) << Delete Rows; // top and bottom few rows of this table are not useful
stackCols = (dt << get column names)[14::ncol(dt)];
dtStack = dt << Stack(
columns( stackCols ),
Source Label Column( "Label" ),
Stacked Data Column( "Data" ),
"Non-stacked columns"n( Keep( :Row ) )
);
dtStack << select where (:data == col minimum(:data, :label)); //in this case, minimum color is the graph.
dtSub = dtStack << subset(selected rows(1), selected columns (0));
dtSub << new column("x", formula(num(substitute(:label, "Col", ""))));
summarize(dtSub, b = by(:label), yVals = mean(:Row), xVals = mean(:x));
astable(xvals || yvals, <<COLUMN names=""></COLUMN>
Re: JSL이 곡선의 값을 복원할 수 있습니까?나는 대답을 제안하기 시작할 질문에 대해 충분히 이해하지 못한다는 것을 인정해야 할 것입니다. 곡선이 비트맵 페인팅(.png 파일)이면 JMP가 읽기에 적합하다고 상상할 수 없습니다. 일종의 광학 스캐닝 및 인식 소프트웨어를 찾고 계십니까?
곡선은 어떤 형식으로 되어 있습니까? 빨간색 곡선을 읽으려고 합니까, 아니면 그림 하단에 있는 숫자 텍스트를 읽으려고 합니까?
JMP가 할 수 없다고 단언함으로써 내가 알지 못하는 JMP에 대한 몇 가지 기능을 배우려고 합니다.