Überlagern eines Diagramms mit einem anderen DiagrammLeute,
Was sind die Möglichkeiten (oder die beste Möglichkeit), ein anderes Diagramm über ein anderes zu legen, wie im ersten Anhang gezeigt? Das endgültige Ziel besteht darin, mehrere Diagramme zu erstellen und sie in einem Fenster anzuordnen, das als Tabelleneigenschaft gespeichert wird. Diese Tabelleneigenschaft wird dann ausgeführt, sodass das endgültige zusammengesetzte Bild kopiert und in Powerpoint eingefügt werden kann.
Mit dem Skript, das ich bisher habe, komme ich fast ans Ziel (siehe beigefügtes Skript und 2. Anhang). Mein aktuelles Skript geht offensichtlich in den Bericht für jedes generierte Diagramm und ein „Bild abrufen“-Befehl wird verwendet, um das Aufstellungsfeld zu füllen. Ich habe versucht, das Histogramm nur als Bild zu behandeln und ein „Bild hinzufügen“ auszuführen, aber es hat nicht funktioniert.
Wenn der Befehl „Bild hinzufügen“ die richtige Lösung ist, lautet meine zusätzliche Frage: Wie finde ich die richtigen „Grenzen“-Argumente für die ordnungsgemäße Positionierung?
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[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) ;


InhaltsorganisationMassenanpassungBetreff: Überlagern Sie ein Diagramm mit einem anderen Diagrammcr = 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>Betreff: Überlagern Sie ein Diagramm mit einem anderen DiagrammBrady,
Ich habe gerade etwas bekommen, das heute früher zu funktionieren schien, aber ich möchte auch einen Blick auf Ihre Herangehensweise werfen.
Basierend auf dem Befehl "Bild hinzufügen" (und Beispiel) im Skriptindex konnte ich das unten gezeigte Bild erhalten. Mein einziges Problem war, dass die Graph Box die einzige Display Element Box zu sein schien, die es mir ermöglichte, das Ergebnis zu erhalten. Außerdem sind die X- und Y-Achse immer noch vorhanden, und ich bin mir nicht sicher, wie ich sie verstecken soll. Mein Code ist angehängt.
Neil

Betreff: Überlagern Sie ein Diagramm mit einem anderen DiagrammHallo,
Die einzige Möglichkeit, die ich kenne, um dies zu tun, ist die folgende:
1) Holen Sie sich Ihre Bilder und erhalten Sie die Pixelmatrizen für sie.
2) Überschreibe eine Teilmatrix der Pixel des "unteren" Bildes mit der Pixelmatrix des "oberen" Bildes.
Unten ist ein Skript, das dies veranschaulicht, und ein Bild (eigentlich ein Fenster mit 3 Bildern, in dem das "oberste" Bild an verschiedenen Stellen "eingefügt" wurde), das die Ergebnisse zeigt. Möglicherweise müssen Sie experimentieren, um Ihr Bild dort hinzubekommen, wo Sie es möchten, aber dieser Ansatz sollte letztendlich ausreichen.
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;
);

Beifall,
Brady
Betreff: Überlagern Sie ein Diagramm mit einem anderen DiagrammNur zur Verdeutlichung versuche ich, ein Bild eines Diagramms (über Bild abrufen) über ein anderes Diagrammbild zu legen.
Also erhalte ich gemäß dem Skript das Bild "rpt_ds_pic" und versuche, es auf rpt_cr_pic zu überlagern. Ich bekomme jedoch nur das rpt_cr_pic für meine Ausgabe, das hinzugefügte Bild wird nicht angezeigt.
Ich bin den Scripting-Index (Bild hinzufügen) und den Scripting-Leitfaden durchgegangen, aber offensichtlich verstehe ich ein grundlegendes Konzept nicht, das diese Arbeit ermöglicht.
Jeder Hinweis oder jede Richtung wäre äußerst hilfreich.
Vielen Dank.
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) ;