やあ、
私は問題に行き詰まり、いくつかのアドバイスに感謝します:
サンプルを分析し、各サンプルの母集団 A、B、C、D、および E を取得します。
A の情報は、B、C、D、E と同じように、「%」と「count」に分けることができます。
データをインポートし、「A 1」から「E 1」という名前の列は「%」値を表し、「A 2」から「E 2」と呼ばれる列は「カウント」値を表します。
インポートは常に同じであるため、母集団の種類 (A、B、C など) ごとに 2 つの Y 軸 (「%」と「カウント」) を持つグラフを生成するスクリプトを作成するのは簡単でした。 以下のコードを参照してください。
問題:一部の母集団について、追加の読み取り値が得られることがあります。 たとえば、集団 B と E だけが「蛍光」と呼ばれる 3 番目の情報を持ちます。 これらは、列「B 3」および「E 3」として同じテーブルにインポートされます。
これらの人口はインポートごとに異なる可能性があるため、「B 3」を「B」のメンバーとして識別し、人口「B」グラフに 3 番目の Y 軸を作成するスクリプトを作成する必要があります (およびこの例の「E 3」も同様です)。 しかし、これについては、私は十分に賢く/経験がありません。
もちろん、テーブルを再配置し、新しい列の代わりに新しい行を作成し、「ラップ」で作業しようとしました。 ただし、各 Y 軸の自動スケールはありません。 3 つの情報タイプの連想配列も試しましたが、コーディングの経験がないために失敗しました。
多分あなたの一人がアイデアを持っているかもしれません、それは役に立つかもしれません、ありがとう
Names Default To Here( 1 );
dt = Current Data Table();
dt << clear select;
win = New Window( "Test", Outline Box( "", hb = V List Box() ) );
loopstart = Contains(dt << get column names, Column("A 1"));
loopend = (Contains(dt << get column names, Column("A 2")))-1;
icounts = (loopend+1)-loopstart;
For( i = loopstart, i <= loopend, i++,
gb = Graph Builder(
Size( 1500, 900 ),
Show Control Panel( 0 ),
Grid Color( "Black" ),
Graph Spacing( 2 ),
Legend Position( "Bottom" ),
Variables( X( :Group ), Y( Eval( i ) ), Y( Eval( i + icounts ) ), Color( :Subjects ) ),
Elements( Position( 1, 1 ), Points( X, Y, Legend( 11 ) ), Box Plot( X, Y, Legend( 13 ) ) ),
Elements( Position( 1, 2 ), Points( X, Y, Legend( 12 ) ), Box Plot( X, Y, Legend( 14 ) ) ),
SendToReport(
Dispatch( {}, "Graph Builder", OutlineBox, {Set Title( "DATA" ), Image Export Display( Normal )} ),
Dispatch( {}, "graph title", TextEditBox, {Set Text( "Title" )}, {Set Font Size( 16 )} ),
Dispatch( {}, "Y title", TextEditBox, {Set Font Size( 14 ), Set Font Style( "bold" ), Set Text( " [%]" )} ),
Dispatch( {}, "Y1 title", TextEditBox, {Set Font Size( 14 ), Set Font Style( "bold" ), Set Text( " Count" )} ),
Dispatch( {}, "X title", TextEditBox, {Set Font Size( 14 ), Set Font Style( "bold" )} ),
Dispatch(
{},
"400",
LegendBox,
{Set wrap( 12 ), Set Title( "" ), font( "Segoe UI", 12, "Plain" ), Legend Position(
{11, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, -1], 13, [-1], 12, [-1], 14, [-1]
}
), Orientation( "Vertical" )}
)
)
);
hb << Append( Report( gb ) << child );
hb << append( Page Break Box() );
gb << close window;
);