Cómo lograr un dibujo por lotes X de grupos múltiples al dibujar el contorno WAT:
La plataforma de contorno estipula que X solo se pueden seleccionar dos columnas, pero tengo varios conjuntos de X que deben coincidir con una Y
Aquí hay un intento de mostrar los mapas de contorno. La complejidad está en encontrar las columnas coincidentes. Los nombres de las columnas son inconsistentes. El siguiente script ilustra el tipo de cosas que deberá hacer para hacer un mejor trabajo al hacer coincidir las columnas. El guión ha sido anotado para permitir una mejor comprensión de lo que se utiliza para intentar emparejar.

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 );
Gracias por su respuesta. El archivo adjunto son mis datos sin procesar, la principal incluye la columna de rendimiento y muchas columnas X. Necesito dibujar un gráfico de contorno, es decir, el eje X es el dispositivo N, el eje Y es el dispositivo P y el rendimiento es Z. , para un solo dispositivo puedo dibujar fácilmente un mapa de contorno, pero solo puedo dibujar un mapa a la vez, quiero dibujar todos los mapas de contorno a la vez.

Si el problema es hacer coincidir las columnas N con P, un script puede producirlo. Aquí están las coincidencias que encontré.

Adjunto la tabla de datos con la lista completa que se me ocurrió.
Si estoy en el camino correcto, ¿puede proporcionarme cuál sería el gráfico que está buscando para uno de estos pares?
Gracias por su respuesta, he intentado adoptar este enfoque, pero tengo tantas columnas X, como se muestra a continuación en la tabla, no puedo apilarlas mediante N-dispositivo que coincida con P-dispositivo, como VTHSAT_PCM09A_NULVT_P63_D0715_D011_(V)_MEDIAN a VTHSAT_PCM10D_PULVT_P63_SDB_D0715_D011_ (V)_MEDIANA,
Como quiero encontrar qué dispositivo se correlaciona con mi rendimiento, necesito dibujar el contorno por dispositivo, por lo que quiero dibujar rápidamente todos los contornos del dispositivo. ¿Se puede lograr mediante un script de contorno creado o editado?
| 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 |