So erreichen Sie beim Zeichnen der WAT-Kontur eine Mehrgruppen-X-Stapelzeichnung:
Die Konturplattform schreibt vor, dass X nur in zwei Spalten ausgewählt werden kann, ich jedoch mehrere X-Sätze habe, die mit einem Y übereinstimmen müssen
Hier ist ein Versuch, die Höhenlinienkarten angezeigt zu bekommen.Die Komplexität besteht darin, die passenden Spalten zu finden.Die Spaltennamen sind inkonsistent.Das folgende Skript veranschaulicht die Art von Dingen, die Sie tun müssen, um die Spalten besser abzugleichen.Das Skript wurde mit Anmerkungen versehen, um ein besseres Verständnis darüber zu ermöglichen, was für den Vergleichsversuch verwendet wird

Names Default To Here( 1 );
dt = Data Table( "WAT_Contour" );
// Build list of columns to be graphed
headerTypeList = {};
colNameList = {}; // The full name of the column
deviceTypeList = {}; // The P or N
commonNameList = {}; // The items that are common between P and N columns
// Loop across all columns to find target columns
// The code here is a best guess on determining the items needed to be able
// to match up the columns. There are inconsistancies in the column names,
// between VTSAT and VTHSAT etc. and also within a single type like VTSAT
// This section will need to be worked out to get all of the matches
For( i = 1, i <= N Col( dt ), i++,
colName = Trim( Column( dt, i ) << get name );
If(
Word( 1, colName, "_" ) == "VTSAT",
Insert Into( headerTypeList, "VTSAT" );
Insert Into( colNameList, colName );
If( Word( 2, colName, "_" ) == "N" | Word( 2, colName, "_" ) == "P",
Insert Into( deviceTypeList, Word( 2, colName, "_" ) );
Insert Into(
commonNameList,
Substr(
colName,
Length( Word( 1, colNameList[N Items( colNameList )], "_" ) )
+Length( Word( 2, deviceTypeList[N Items( deviceTypeList )], "_" ) ) + 4
)
);
,
Insert Into( deviceTypeList, Substr( Word( 3, colName, "_" ), 1, 1 ) );
Insert Into(
commonNameList,
Substr(
colName,
Length( Word( 1, colName, "_" ) ) + Length( Word( 2, colName, "_" ) )
+Length( Word( 3, colName, "_" ) ) + 4
)
);
);,
Word( 1, colName, "_" ) == "VTHSAT",
Insert Into( headerTypeList, "VTHSAT" );
Insert Into( colNameList, colName );
Insert Into( deviceTypeList, Substr( Word( 3, colName, "_" ), 1, 1 ) );
Insert Into(
commonNameList,
Substr(
colName,
Length( Word( 1, colName, "_" ) ) + Length( Word( 2, colName, "_" ) )
+Length( Word( 3, colName, "_" ) ) + 4
)
);
);
);
dtNames = New Table( "Names",
New Column( "Header", character, values( headerTypeList ) ),
New Column( "Column Name", character, values( colNameList ) ),
New Column( "Device Type", character, values( deviceTypeList ) ),
New Column( "Common", character, values( commonNameList ) )
);
// Split data table to get columns that match
dtSplit = dtNames << Split(
Split By( :Device Type ),
Split( :Column Name ),
Group( :Header, :Common ),
Sort by Column Property
);
// Delete non matching rows
dtSplit << select where(:P == "" | :N == "" );
dtSplit << delete rows;
// Create the Contour Maps
New Window( "Contour Maps", lub = Lineup Box( N Col( 3 ) ) );
// Loop across matches
For( i = 1, i <= N Rows( dtSplit ), i++,
lub << append(
dt << Contour Plot(
X( Column( dt, dtSplit:N[i] ), Column( dt, dtSplit:P[i] ) ),
Y( :"W/C BSCAN VMIN YIELD"n ),
Show Data Points( 0 ),
Fill Areas( 0 ),
Label Contours( 0 ),
Transform( "Range Normalized" ),
Specify Contours( Min( 0.5 ), Max( 0.9 ), N( 5 ) )
)
)
);
// Clean up the data tables no longer needed.
// Uncomment the below lines when having the interium tables
// no longer need to be displayed
// close( dtNames, nosave );
// close( dtSplit, nosave );
Vielen Dank für Ihre Antwort. Der Anhang enthält meine Rohdaten, die Hauptspalte „Ertrag“ und viele X-Spalten. Ich muss eine Konturgrafik zeichnen, d. h. die X-Achse ist das N-Gerät, die Y-Achse ist das P-Gerät und der Ertrag ist Z , für ein einzelnes Gerät kann ich einfach eine Konturkarte zeichnen, Aber ich kann jeweils nur eine Karte zeichnen, ich möchte alle Zählkarten auf einmal zeichnen.

Wenn das Problem darin besteht, dass die N- und P-Spalten übereinstimmen, kann ein Skript dies erzeugen.Hier sind die Übereinstimmungen, die ich gefunden habe.

Ich habe die Datentabelle mit der vollständigen Liste, die ich erstellt habe, angehängt.
Wenn ich auf dem richtigen Weg bin, können Sie uns die gewünschte Grafik für eines dieser Paare nennen?
Vielen Dank für Ihre Antwort. Ich habe versucht, diesen Ansatz zu wählen, aber ich habe so viele X-Spalten, wie in der folgenden Tabelle, dass ich sie nicht nach N-Gerät und P-Gerät stapeln kann, z VTHSAT_PCM09A_NULVT_P63_D0715_D011_(V)_MEDIAN zu VTHSAT_PCM10D_PULVT_P63_SDB_D0715_D011_(V)_MEDIAN,
Da ich herausfinden möchte, welches Gerät mit meinem Ertrag korreliert, muss ich die Kontur für jedes Gerät zeichnen. Ich möchte also schnell die Kontur aller Geräte zeichnen. Kann dies durch ein erstelltes oder bearbeitetes Konturskript erreicht werden?
| VTHSAT_PCM06F_PULVT_P63_D0715_D242_(V)_MEDIAN |
| VTHSAT_PCM06G_PULVT_P63_D607_D242_(V)_MEDIAN |
| VTHSAT_PCM06H_PULVT_P63_SDB_D04_D009_(V)_MEDIAN |
| VTHSAT_PCM09A_NULVT_P63_D0715_D011_(V)_MEDIAN |
| VTHSAT_PCM09B_NLVT_P63_D0715_D011_(V)_MEDIAN |
| VTHSAT_PCM09C_NSVT_P63_D0715_D011_(V)_MEDIAN |
| VTHSAT_PCM09D_PULVT_P63_D0715_D011_(V)_MEDIAN |
| VTHSAT_PCM09E_PLVT_P63_D0715_D011_(V)_MEDIAN |
| VTHSAT_PCM09F_PSVT_P63_D0715_D011_(V)_MEDIAN |
| VTHSAT_PCM09G_NLVT_P63_SDB_D04_D011_(V)_MEDIAN |
| VTHSAT_PCM09H_PLVT_P63_SDB_D04_D011_(V)_MEDIAN |
| VTHSAT_PCM10A_NSVT_P63_SDB_D04_D011_(V)_MEDIAN |
| VTHSAT_PCM10B_NULVT_P63_SDB_D0715_D011_(V)_MEDIAN |
| VTHSAT_PCM10C_PSVT_P63_SDB_D04_D011_(V)_MEDIAN |
| VTHSAT_PCM10D_PULVT_P63_SDB_D0715_D011_(V)_MEDIAN |
| VTHSAT_PCM10E_NSVT_P63_D04_D011_(V)_MEDIAN |
| VTHSAT_PCM10F_NULVT_P63_D04_D011_(V)_MEDIAN |
| VTHSAT_PCM10G_PSVT_P63_D04_D011_(V)_MEDIAN |
| VTHSAT_PCM10H_PULVT_P63_D04_D011_(V)_MEDIAN |
| VTHSAT_PCM15A_NLVT_P79_D04_D009_(V)_MEDIAN |
| VTHSAT_PCM15B_NLVT_P79_D0715_D009_(V)_MEDIAN |