Sovrapponi un grafico a un altro graficoGente,
Quali sono i modi (o il modo migliore) per sovrapporre un altro grafico a un altro come mostrato nel primo allegato? L'obiettivo finale è generare più grafici e disporli in una finestra salvata come proprietà della tabella. Questa proprietà della tabella viene quindi eseguita in modo che l'immagine composita finale possa essere copiata e incollata in Powerpoint.
Lo script che ho finora mi porta quasi lì (vedi script allegato e 2° allegato). Il mio script attuale ovviamente va nel Report per ogni grafico generato e viene utilizzato un comando "Ottieni immagine" per popolare la casella Lineup. Ho provato a trattare l'istogramma solo come un'immagine e ad eseguire un "Aggiungi immagine", ma non sono riuscito a farlo funzionare.
Se un comando Aggiungi immagine è la strada da percorrere, la mia domanda aggiuntiva è: come trovare in modo appropriato gli argomenti "limiti" per posizionarsi correttamente?
Nei
cr = Current Data Table() << Run Script("Cumulative Resistivity");
rpt_cr = Report(cr);
rpt_cr_pic = rpt_cr[PictureBox(1)] << Get Picture;
ds = Current Data Table() << Run Script("Distribution");
rpt_ds = Report(ds);
rpt_ds_pic = rpt_ds[ListBox(4)] << Get Picture;
//comb = New Image( rpt_ds_pic );
//rpt_cr_pic << Add Image( comb, bounds(left(0), top(500),bottom(0),right(724)));
nw = Eval Expr( New Window("BR",
a = V List Box(
Lineup Box(N Col(2), rpt_cr_pic, rpt_ds_pic ),
)
)
);
Current Data Table() << New Script("RP", nw) ;


Organizzazione dei contenutiPersonalizzazione di massaRe: Sovrapporre un grafico su un altro graficocr = Current Data Table() << Run Script("Cumulative Resistivity");
rpt_cr = Report(cr);
rpt_cr_pic = rpt_cr[PictureBox(1)] << Get Picture ;
Print(rpt_cr_pic << Get Size);
cp = Current Data Table() << Run Script("Cumulative Permeability");
rpt_cp = Report(cp);
rpt_cp_pic = rpt_cp[PictureBox(1)] << Get Picture;
Print(rpt_cp_pic << Get Size);
ds = Current Data Table() << Run Script("Distribution");
rpt_ds = Report(ds);
rpt_ds_pic = rpt_ds[PictureBox(1)] << Get Picture;
g = Graph Box(
FrameSize( 750, 1000 ),
X Scale( 0, 100 ),
Y Scale( 0, 100 ),
<<ADD image=""></ADD>Re: Sovrapporre un grafico su un altro graficoBrady,
Ho appena ricevuto qualcosa che sembrava funzionare all'inizio di oggi, ma voglio dare un'occhiata anche al tuo approccio.
Sulla base del comando "Aggiungi immagine" (e dell'esempio) nell'indice di script, sono stato in grado di ottenere l'immagine mostrata di seguito. Il mio unico problema era che Graph Box sembrava essere l'unico Display Element Box che mi permetteva di ottenere il risultato. Inoltre, gli assi X e Y sono ancora presenti e non sono sicuro di come nasconderli. Il mio codice è allegato.
Neil

Re: Sovrapporre un grafico su un altro graficoCiao,
L'unico modo che conosco per farlo è il seguente:
1) Ottieni le tue immagini e ottieni le matrici di pixel per loro.
2) Sovrascrivi una sottomatrice dei pixel dell'immagine "inferiore" con la matrice di pixel dell'immagine "superiore".
Di seguito è riportato uno script che illustra questo e un'immagine (in realtà una finestra di 3 immagini in cui l'immagine "in alto" è stata "incollata" in posizioni diverse) che mostra i risultati. Potrebbe essere necessario sperimentare per ottenere la tua immagine dove vuoi, ma questo approccio alla fine dovrebbe fare il trucco.
names default to here(1);
//make a table
dt = astable(J(50,2,randomuniform()));
//make a graph
gb = dt << Graph Builder(
Size( 500, 500 ),
Show Control Panel( 0 ),
Variables( X( :col1 ), Y( :col2 ) ),
Elements( Points( X, Y, Legend( 5 ) ) ),
);
//save to a picture, get the pixels and get the picture's x and y dimemnsions
pic1 = (report(gb)[framebox(1)] << get picture) << get pixels;
pic1y = nrow(pic1);
pic1x = ncol(pic1);
//now make another graph and do the same
dist = dt << distribution(histograms only, y(:col1));
pic2 = (report(dist)[framebox(1)] << get picture) << get pixels;
pic2y = nrow(pic2);
pic2x = ncol(pic2);
//create a window to place the resulting images
nw = new window("xx",
vlb = vlistbox(
)
);
x = y = 1; //initial "corner" of overwritten pixels... we will increment these and do 3 total pictures
for(i = 1, i<=3, i++,
newPic = pic1;
newPic[ y::(y+pic2y-1), x::(x+pic2x-1), ] = pic2;
vlb << append(picturebox(new image(newPic)));
y += 60;
x+= 150;
);

Saluti,
Brady
Re: Sovrapporre un grafico su un altro graficoSolo per chiarezza, sto cercando di sovrapporre un'immagine di un grafico (tramite ottieni immagine) su un'altra immagine del grafico.
Quindi, secondo lo script, ottengo l'immagine "rpt_ds_pic" e provo a sovrapporla a rpt_cr_pic. Tuttavia, sto ricevendo solo rpt_cr_pic per il mio output, l'immagine aggiunta non viene visualizzata.
Ho esaminato l'indice di scripting (Aggiungi immagine) e la guida agli script, ma ovviamente non sto afferrando un concetto fondamentale che fa funzionare questo.
Qualsiasi suggerimento o indicazione sarebbe estremamente utile.
Grazie molto.
Neil
cr = Current Data Table() << Run Script("Cumulative Resistivity");
rpt_cr = Report(cr);
rpt_cr_pic = rpt_cr[PictureBox(1)] << Get Picture;
ds = Current Data Table() << Run Script("Distribution");
rpt_ds = Report(ds);
rpt_ds_pic = rpt_ds[PictureBox(1)] << Get Picture;
comb = New Image( rpt_ds_pic );
rpt_cr_pic << Add Image( comb, bounds(left(0), top(500),bottom(0),right(724)));
nw = Eval Expr( New Window("BR",
a = V List Box(
Lineup Box(N Col(2), rpt_cr_pic, /*rpt_ds_pic*/ ),
)
)
);
Current Data Table() << New Script("RP", nw) ;