Problem auswählenIch erstelle ein Diagramm und wenn ich einen Teil davon auswähle, wird die gesamte Excel-Tabelle hervorgehoben. Ich erinnere mich an die Demo, dass Sie in der Lage sein sollten, ein Segment auszuwählen und nur die Daten hervorzuheben, die sich direkt auf dieses Segment beziehen. Was mache ich hier falsch?
Ich würde auch gerne wissen, ob es eine Möglichkeit gibt, dass JMP die Spitzendaten von mehreren Punkten auf derselben Linie findet und sie im Diagramm anzeigt?
Vielen Dank für Ihre Zeit
Betreff: Problem auswählenAls ich einen etwas anderen Ansatz ausprobierte, entfernte ich den Teil des Skripts, der die Größe und das Erscheinungsbild der Punkte anpasst, und änderte diese Einstellungen vorerst einfach in meinen Einstellungen. Dabei wurde mir klar, dass das Skript, das ich vorher hatte, die Punkte nicht wirklich einfügte weist auf die zusätzlichen Grafiken hin (mehr als die ersten), also habe ich mir diese ausgedacht. Es macht jedoch eine ziemlich bizarre Sache, bei der es ein zweites Diagramm der ersten Zeile völlig selbstständig und reibungslos zeichnet ...
dt = Open ();
col_list = dt << get column names(string);
remove from(col_list, 1); // Remove time[sec] from list
cols_to_plot = {};
offset_list = {};
offset_cols = {};
// Define the graph builder commands in an expression for use by the OK button
graph_expr = expr(
for (i = 1, i <= nitems(cols_to_plot), i++,
new_name = cols_to_plot[i] || "-Chemical Cal";
insertinto(offset_cols, new_name);
dt << new column(new_name, Numeric, "Continuous", Format( "Best", 12 ),
Formula( as column(dt, cols_to_plot[i]) * offset_list[i] ) );
);
// Now for the graph - build a text string and then execute it
gb_text = "\[gb = graph builder(
show control panel(0),
variables(
X( :Name( "Time[sec]" ) ),]\";
elements_txt = " ),
Elements( Line( X, ";
For( i = 1, i <= N Items( cols_to_plot ), i++,
If( i == 1,
// then
gb_text = gb_text || Eval Insert( "\!N\[ Y( :Name( "^offset_cols[i]^" ) ), ]\" )
,
// else
gb_text = gb_text || Eval Insert( "\!N\[ Y( :Name( "^offset_cols[i]^" ), Position( 1 ) ),]\" )
);
elements_txt = elements_txt || Eval Insert( "Y ( ^i^ ), " );
);
elements_txt = elements_txt ||
"Legend( 7 ) ),
Points( X, ";
For( i = 1, i <= N Items( cols_to_plot ), i++,
If( i == 1,
// then
gb_text = gb_text || Eval Insert( "\!N\[ Y( :Name( "^offset_cols[i]^" ) ), ]\" )
,
// else
gb_text = gb_text || Eval Insert( "\!N\[ Y( :Name( "^offset_cols[i]^" ), Position( 1 ) ),]\" )
);
elements_txt = elements_txt || Eval Insert( "Y ( ^i^ ), " );
);
elements_txt = elements_txt ||
"Legend(8))
)";
gb_text = gb_text || elements_txt || "); ";
Eval( Parse( gb_text ) );
);
nw = new window("Graph Chemicals",
panel box("Select channels to graph",
lineup box(ncol(2),
text box("Column"), text box("Chemical Cal"),
cb1 = checkbox("Ch1"), ch1_neb = number edit box(),
cb2 = checkbox("Ch2"), ch2_neb = number edit box(),
cb3 = checkbox("Ch3"), ch3_neb = number edit box(),
cb4 = checkbox("Ch4"), ch4_neb = number edit box(),
cb5 = checkbox("Ch5"), ch5_neb = number edit box(),
cb6 = checkbox("Ch6"), ch6_neb = number edit box(),
cb7 = checkbox("Ch7"), ch7_neb = number edit box(),
cb8 = checkbox("Ch8"), ch8_neb = number edit box(),
cb9 = checkbox("Ch9"), ch9_neb = number edit box(),
),
),
panelbox("Actions",
hlistbox(
okb = button box("OK",
if (cb1 << get(1),
insertinto(cols_to_plot, col_list[8]);
offset_value = ch1_neb << get;
insertinto(offset_list, offset_value);
);
if (cb2 << get(1),
insertinto(cols_to_plot, col_list[9]);
offset_value = ch2_neb << get;
insertinto(offset_list, offset_value);
);
if (cb3 << get(1),
insertinto(cols_to_plot, col_list[10]);
offset_value = ch3_neb << get;
insertinto(offset_list, offset_value);
);
if (cb4 << get(1),
insertinto(cols_to_plot, col_list[11]);
offset_value = ch4_neb << get;
insertinto(offset_list, offset_value);
);
if (cb5 << get(1),
insertinto(cols_to_plot, col_list[12]);
offset_value = ch5_neb << get;
insertinto(offset_list, offset_value);
);
if (cb6 << get(1),
insertinto(cols_to_plot, col_list[13]);
offset_value = ch6_neb << get;
insertinto(offset_list, offset_value);
);
if (cb7 << get(1),
insertinto(cols_to_plot, col_list[14]);
offset_value = ch7_neb << get;
insertinto(offset_list, offset_value);
);
if (cb8 << get(1),
insertinto(cols_to_plot, col_list[15]);
offset_value = ch8_neb << get;
insertinto(offset_list, offset_value);
);
graph_expr;
nw << close window;
),
canb = button box("Cancel", nw << close window;
),
)
),
);
// Pre-check checkboxes if column exists
for (i = 1, i <= nitems(col_list), i++,
if (col_list[i] == "Ch1", cb1 << set(1, 1),
col_list[i] == "Ch2", cb2 << set(1, 1),
col_list[i] == "Ch3", cb3 << set(1, 1),
col_list[i] == "Ch4", cb4 << set(1, 1),
col_list[i] == "Ch5", cb5 << set(1, 1),
col_list[i] == "Ch6", cb6 << set(1, 1),
col_list[i] == "Ch7", cb7 << set(1, 1),
col_list[i] == "Ch8", cb8 << set(1, 1),
col_list[i] == "Ch9", cb9 << set(1, 1),
);
);
Ich habe das Skript dafür gespeichert und dann das Skript, wie es aussehen soll (nur das obere Diagramm), bin mir aber nicht sicher, welche Teile ich bearbeiten muss, um das fehlerhafte Diagramm zu entfernen ...
//This is what it graphs
Graph Builder(
Show Control Panel( 0 ),
Variables(
X( :Name( "Time[sec]" ) ),
Y( :Name( "CH2-Chemical Cal" ) ),
Y( :Name( "CH4-Chemical Cal" ), Position( 1 ) ),
Y( :Name( "CH4-Chemical Cal" ), Position( 1 ) ),
Y( :Name( "CH2-Chemical Cal" ) )
),
Elements(
Position( 1, 1 ),
Line( X, Y( 1 ), Y( 2 ), Legend( 7 ) ),
Points( X, Y( 1 ), Y( 2 ), Legend( 8 ) )
),
Elements(
Position( 1, 2 ),
Points( X, Y, Legend( 11 ) ),
Smoother( X, Y, Legend( 12 ) )
),
SendToReport(
Dispatch(
{},
"CH2-Chemical Cal",
ScaleBox( 2 ),
{Min( -125.45871559633 ), Max( 1724.54128440367 ), Inc( 100 ),
Minor Ticks( 1 )}
)
)
);
// This is what I want it to graph
Graph Builder(
Show Control Panel( 0 ),
Variables(
X( :Name( "Time[sec]" ) ),
Y( :Name( "CH2-Chemical Cal" ) ),
Y( :Name( "CH4-Chemical Cal" ), Position( 1 ) ),
Y( :Name( "CH4-Chemical Cal" ), Position( 1 ) )
),
Elements(
Line( X, Y( 1 ), Y( 2 ), Legend( 7 ) ),
Points( X, Y( 1 ), Y( 2 ), Legend( 8 ) )
)
);Betreff: Problem auswählenFairerweise bin ich nicht wirklich auf der Suche nach jemandem, der viel Arbeit hineinsteckt. Wenn es soweit kommt, müsste ich es als Auftrag bezeichnen, ich hoffe nur, dass jemand ein paar Vorschläge hat, was ich ausprobieren oder vielleicht aufzeigen kann Mir geht es in die richtige Richtung, ich bin mit ein paar Floaties am Ende und sie verlieren Luft XD
Betreff: Problem auswählenEs tut mir leid, aber ich habe nicht die Zeit, mich mit dem Debuggen und dem anschließenden Implementieren von neuem Code in einen Codeabschnitt zu befassen, der so groß wird wie Ihr Skript. Ich wünsche Ihnen viel Glück dabei, jemanden in der Community zu finden, der Ihnen hilft.Betreff: Problem auswählenKlingt großartig, also hier liegt der Haken, ich weiß nicht, wie ich das machen soll XD. Das Skript ist viel fortgeschrittener als ich. Ich versuche nur, es in eine Form zu bringen, damit es das tut, was ich brauche Ich hätte sozusagen gerne etwas Passform und Glanz. Ich wühle mich so gut ich kann in der Literatur herum und versuche, sie zu enträtseln, aber ich kenne den Fachjargon einfach noch nicht. Derzeit wird die Anzahl der Kanäle über das Popup-Feld (im Index) ausgewählt. Gibt es eine Möglichkeit, der Legende mitzuteilen, wie viele Zeilen ich ausgewählt habe, um nur diese Zeilenanzahl zu ändern? Vermutlich ist es das, was die Variablenfunktion im Rest des Skripts tut, da sie keine Probleme mit mehreren Leitungen/Kanälen usw. hat. Der einzige Grund, warum ich versuche, diesen Teil hinzuzufügen, besteht darin, dass Sie im Liniendiagramm kein Segment auswählen können, um die korrelierenden Daten zu verfolgen. Ich muss in der Lage sein, den Höhepunkt einer Linie zu finden. Ich möchte auch, dass JMP diese Daten ebenfalls in das Diagramm einfügt, aber ich gehe davon aus, dass das noch schwieriger wird, da ich das Skript auffordere, nicht nur verschiedene spezifische Punkte in den Daten auszuwählen, sondern auch dort Es kann sein, dass es mehr als eine in einer Zeile gibt und ich eine bestimmte benötige, nicht nur die erste oder die höchste. So kann ich einfach eine einzelne Zeile für die wichtigeren Daten verwenden und sie einzeln bearbeiten, was ein großer Fortschritt ist. Ich könnte sogar so weit gehen, mehrere Skripte zu speichern und einfach für jede Anzahl benötigter Zeilen eines zu haben zu planen, aber ich bin mir sicher, dass es einen besseren Weg gibt. Ich weiß nur noch nicht, wie ich es umsetzen soll ... ^.^
Betreff: Problem auswählenIm Grunde erstellt Ihre JSL nur eine neue JSL. Und wenn es um den Abschnitt „SendToReport“ geht, haben Sie den Code so festgelegt, dass er 3 offset_cols erfordert. Das wissen Sie bereits, aber ich möchte darauf hinweisen, dass Sie JSL-Code generieren, den Sie letztendlich ausführen. Was Sie also tun müssen, ist, den Code aufzuschlüsseln, sodass Sie prüfen, wie viele Elemente sich in der Liste „offset_cols“ befinden, und dann basierend darauf nur den JSL-Code für diese Anzahl von Elementen generieren.Betreff: Problem auswählendt = Open ();
col_list = dt << get column names(string);
remove from(col_list, 1); // Remove time[sec] from list
cols_to_plot = {};
offset_list = {};
offset_cols = {};
// Define the graph builder commands in an expression for use by the OK button
graph_expr = expr(
for (i = 1, i <= nitems(cols_to_plot), i++,
new_name = cols_to_plot[i] || "-Chemical Cal";
insertinto(offset_cols, new_name);
dt << new column(new_name, Numeric, "Continuous", Format( "Best", 12 ),
Formula( as column(dt, cols_to_plot[i]) * offset_list[i] ) );
);
// Now for the graph - build a text string and then execute it
gb_text = "\[gb = graph builder(
show control panel(0),
variables(
X( :Name( "Time[sec]" ) ),]\";
elements_txt = " ),
Elements( Line( X, ";
For( i = 1, i <= N Items( cols_to_plot ), i++,
If( i == 1,
// then
gb_text = gb_text || Eval Insert( "\!N\[ Y( :Name( "^offset_cols[i]^" ) ), ]\" )
,
// else
gb_text = gb_text || Eval Insert( "\!N\[ Y( :Name( "^offset_cols[i]^" ), Position( 1 ) ),]\" )
);
elements_txt = elements_txt || Eval Insert( "Y ( ^i^ ), " );
);
// add in the marker and transparency code
elements_txt = elements_txt ||
"Legend( 7 ) ), Points( X, Y, Legend(8))),
SendToReport(
Dispatch(
{},
\!"400\!",
ScaleBox,
{Legend Model(
8,
Properties( 0, {Marker Size( 0 ), Transparency( 0 )}, Item ID( \!""
|| offset_cols[1] || "\!", 1 ), Item ID( \!""
|| offset_cols[2] || "\!", 1 ), Item ID( \!""
|| offset_cols[3] || "\!", 1 ) )
)}
)
)";
gb_text = gb_text || elements_txt || "); ";
Eval( Parse( gb_text ) );
);
nw = new window("Graph Chemicals",
panel box("Select channels to graph",
lineup box(ncol(2),
text box("Column"), text box("Chemical Cal"),
cb1 = checkbox("Ch1"), ch1_neb = number edit box(),
cb2 = checkbox("Ch2"), ch2_neb = number edit box(),
cb3 = checkbox("Ch3"), ch3_neb = number edit box(),
cb4 = checkbox("Ch4"), ch4_neb = number edit box(),
cb5 = checkbox("Ch5"), ch5_neb = number edit box(),
cb6 = checkbox("Ch6"), ch6_neb = number edit box(),
cb7 = checkbox("Ch7"), ch7_neb = number edit box(),
cb8 = checkbox("Ch8"), ch8_neb = number edit box(),
cb9 = checkbox("Ch9"), ch9_neb = number edit box(),
),
),
panelbox("Actions",
hlistbox(
okb = button box("OK",
if (cb1 << get(1),
insertinto(cols_to_plot, col_list[5]);
offset_value = ch1_neb << get;
insertinto(offset_list, offset_value);
);
if (cb2 << get(1),
insertinto(cols_to_plot, col_list[6]);
offset_value = ch2_neb << get;
insertinto(offset_list, offset_value);
);
if (cb3 << get(1),
insertinto(cols_to_plot, col_list[7]);
offset_value = ch3_neb << get;
insertinto(offset_list, offset_value);
);
if (cb4 << get(1),
insertinto(cols_to_plot, col_list[8]);
offset_value = ch4_neb << get;
insertinto(offset_list, offset_value);
);
if (cb5 << get(1),
insertinto(cols_to_plot, col_list[9]);
offset_value = ch5_neb << get;
insertinto(offset_list, offset_value);
);
if (cb6 << get(1),
insertinto(cols_to_plot, col_list[10]);
offset_value = ch6_neb << get;
insertinto(offset_list, offset_value);
);
if (cb7 << get(1),
insertinto(cols_to_plot, col_list[11]);
offset_value = ch7_neb << get;
insertinto(offset_list, offset_value);
);
if (cb8 << get(1),
insertinto(cols_to_plot, col_list[12]);
offset_value = ch8_neb << get;
insertinto(offset_list, offset_value);
);
if (cb9 << get(1),
insertinto(cols_to_plot, col_list[13]);
offset_value = ch9_neb << get;
insertinto(offset_list, offset_value);
);
graph_expr;
nw << close window;
),
canb = button box("Cancel", nw << close window;
),
)
),
);
// Pre-check checkboxes if column exists
for (i = 1, i <= nitems(col_list), i++,
if (col_list[i] == "Ch1", cb1 << set(1, 1),
col_list[i] == "Ch2", cb2 << set(1, 1),
col_list[i] == "Ch3", cb3 << set(1, 1),
col_list[i] == "Ch4", cb4 << set(1, 1),
col_list[i] == "Ch5", cb5 << set(1, 1),
col_list[i] == "Ch6", cb6 << set(1, 1),
col_list[i] == "Ch7", cb7 << set(1, 1),
col_list[i] == "Ch8", cb8 << set(1, 1),
col_list[i] == "Ch9", cb9 << set(1, 1),
);
);Damit kann ich drei verschiedene Kanäle betreiben, leider kann ich nicht weniger als drei Kanäle betreiben. Ich kann mehr als das ausführen, aber in allen zusätzlichen Kanälen ist der Punktpfad nicht enthalten, sodass ich nicht wie vorgesehen einzelne Punkte auf der Linie auswählen kann. Wenn ich weniger als 3 Kanäle verwende, erhalte ich diese Warnung

Betreff: Problem auswählenHoppla, ich habe ein Problem festgestellt, da Sie es von einer Variablen in eine statische Variable geändert haben. Es funktioniert nur beim ersten Plot und ich muss möglicherweise mehrere Diagramme gleichzeitig zeichnen (weshalb die Variable ist). Ich habe versucht, diese für jede mögliche Spalte zu duplizieren Funktioniert, aber nur, wenn ich die Anzahl der Plots verwende, die ich einbeziehe, und ich kann je nach den Umständen weniger oder mehr verwenden. Ich schaffe es anscheinend nicht, die Variable für diese Anpassung zum Laufen zu bringen. Vielleicht gibt es ein Wenn-Dann-Argument, das wir für die zusätzlichen Zeilen bereitstellen könnten, damit sie nicht mit dem Skript streiten, wenn ich sie nicht zeichne?
Betreff: Problem auswählenHuzzah! Es funktioniert, es tritt zwar ein Fehler auf, wenn ich einen Kanal außerhalb des gesuchten Bereichs auswähle, aber das ist vollkommen in Ordnung, denn soweit ich weiß, werde ich das nicht tun.
Vielen Dank!
Betreff: Problem auswählenIch habe deinen Code etwas überarbeitet.
1. Ich habe im Code hinzugefügt, um die Markierungsgröße und -transparenz zu ändern
2. Möglicherweise ist Ihnen das folgende Problem nicht aufgefallen. In den neuen Spalten, die Sie erstellt haben, enthielten die Formeln jedoch die Werte dt und i.Das sind Speichervariablen, die sich möglicherweise ändern können.(Das heißt, Sie speichern die Tabelle, starten in Zukunft eine JMP-Sitzung, öffnen die Datentabelle und die Spalten würden einen Fehler verursachen, da die Variablen dt und i nicht mehr verfügbar sind.)Deshalb habe ich den Code so geändert, dass die Formeln fest verdrahtete Werte haben.
Hier ist der Code.Ich habe eine Mockup-Datentabelle erstellt, um den Code zu testen, daher gibt es vielleicht noch ein oder zwei Probleme.
dt = Open();
col_list = dt << get column names( string );
Remove From( col_list, 1 ); // Remove time[sec] from list
cols_to_plot = {};
offset_list = {};
offset_cols = {};
// Define the graph builder commands in an expression for use by the OK button
graph_expr = Expr(
For( i = 1, i <= N Items( cols_to_plot ), i++,
new_name = cols_to_plot[i] || "-Chemical Cal";
// If used before, delete the column and then recreate it
If( Try( Column( dt, new_name ) << get name, "" ) != "",
dt << delete columns( new_name )
);
Insert Into( offset_cols, new_name );
// The variable i and the column name need to be changed to their
// static value for the column formulas to be correct
Eval(
Substitute(
Expr(
dt << New Column( new_name,
Numeric,
"Continuous",
Format( "Best", 12 ),
Formula( __cols_to_plot__ * __offset_list__ )
)
),
Expr( __cols_to_plot__ ), Parse( ":" || cols_to_plot[i] ),
Expr( __offset_list__ ), offset_list[i]
)
);
);
// Now for the graph - build a text string and then execute it
gb_text = "\[gb = graph builder(
show control panel(0),
variables(
X( :Name( "Time[sec]" ) ),]\";
elements_txt = " ),
Elements( Line( X, ";
For( i = 1, i <= N Items( cols_to_plot ), i++,
If( i == 1,
// then
gb_text = gb_text || Eval Insert( "\!N\[ Y( :Name( "^offset_cols[i]^" ) ), ]\" )
,
// else
gb_text = gb_text || Eval Insert( "\!N\[ Y( :Name( "^offset_cols[i]^" ), Position( 1 ) ),]\" )
);
elements_txt = elements_txt || Eval Insert( "Y ( ^i^ ), " );
);
// add in the marker and transparency code
elements_txt = elements_txt ||
"Legend( 7 ) ), Points( X, Y, Legend(8))),
SendToReport(
Dispatch(
{},
\!"400\!",
ScaleBox,
{Legend Model(
8,
Properties( 0, {Marker Size( 0 ), Transparency( 0 )}, Item ID( \!""
|| offset_cols[1] || "\!", 1 ) )
)}
)
)";
gb_text = gb_text || elements_txt || "); ";
Eval( Parse( gb_text ) );
);
nw = New Window( "Graph Chemicals",
Panel Box( "Select channels to graph",
Lineup Box( N Col( 2 ),
Text Box( "Column" ),
Text Box( "Chemical Cal" ),
cb1 = Check Box( "Ch1" ),
ch1_neb = Number Edit Box(),
cb2 = Check Box( "Ch2" ),
ch2_neb = Number Edit Box(),
cb3 = Check Box( "Ch3" ),
ch3_neb = Number Edit Box(),
cb4 = Check Box( "Ch4" ),
ch4_neb = Number Edit Box(),
cb5 = Check Box( "Ch5" ),
ch5_neb = Number Edit Box(),
cb6 = Check Box( "Ch6" ),
ch6_neb = Number Edit Box(),
cb7 = Check Box( "Ch7" ),
ch7_neb = Number Edit Box(),
cb8 = Check Box( "Ch8" ),
ch8_neb = Number Edit Box(),
cb9 = Check Box( "Ch9" ),
ch9_neb = Number Edit Box(),
),
),
Panel Box( "Actions",
H List Box(
okb = Button Box( "OK",
If( cb1 << get( 1 ),
Insert Into( cols_to_plot, col_list[8] );
offset_value = ch1_neb << get;
Insert Into( offset_list, offset_value );
);
If( cb2 << get( 1 ),
Insert Into( cols_to_plot, col_list[9] );
offset_value = ch2_neb << get;
Insert Into( offset_list, offset_value );
);
If( cb3 << get( 1 ),
Insert Into( cols_to_plot, col_list[10] );
offset_value = ch3_neb << get;
Insert Into( offset_list, offset_value );
);
If( cb4 << get( 1 ),
Insert Into( cols_to_plot, col_list[11] );
offset_value = ch4_neb << get;
Insert Into( offset_list, offset_value );
);
If( cb5 << get( 1 ),
Insert Into( cols_to_plot, col_list[12] );
offset_value = ch5_neb << get;
Insert Into( offset_list, offset_value );
);
If( cb6 << get( 1 ),
Insert Into( cols_to_plot, col_list[13] );
offset_value = ch6_neb << get;
Insert Into( offset_list, offset_value );
);
If( cb7 << get( 1 ),
Insert Into( cols_to_plot, col_list[14] );
offset_value = ch7_neb << get;
Insert Into( offset_list, offset_value );
);
If( cb8 << get( 1 ),
Insert Into( cols_to_plot, col_list[15] );
offset_value = ch8_neb << get;
Insert Into( offset_list, offset_value );
);
graph_expr;
nw << close window;
),
canb = Button Box( "Cancel", nw << close window ),
)
),
);
// Pre-check checkboxes if column exists
For( i = 1, i <= N Items( col_list ), i++,
If(
col_list[i] == "Ch1", cb1 << set( 1, 1 ),
col_list[i] == "Ch2", cb2 << set( 1, 1 ),
col_list[i] == "Ch3", cb3 << set( 1, 1 ),
col_list[i] == "Ch4", cb4 << set( 1, 1 ),
col_list[i] == "Ch5", cb5 << set( 1, 1 ),
col_list[i] == "Ch6", cb6 << set( 1, 1 ),
col_list[i] == "Ch7", cb7 << set( 1, 1 ),
col_list[i] == "Ch8", cb8 << set( 1, 1 ),
col_list[i] == "Ch9", cb9 << set( 1, 1 ),
)
);
Graph Builder(
Show Control Panel( 0 ),
Variables( X( :Name( "Time[sec]" ) ), Y( :Name( "CH2-Offset" ) ) ),
Elements( Line( X, Y, Legend( 7 ) ), Points( X, Y, Legend( 8 ) ) ),
SendToReport(
Dispatch(
{},
"400",
ScaleBox,
{Legend Model( 8, Properties( 0, {Marker Size( 0 )}, Item ID( "CH2-Offset", 1 ) ) )}
)
)
);
Graph Builder(
Show Control Panel( 0 ),
Variables( X( :Name( "Time[sec]" ) ), Y( :Name( "CH2-Offset" ) ) ),
Elements( Line( X, Y, Legend( 7 ) ), Points( X, Y, Legend( 8 ) ) ),
SendToReport(
Dispatch(
{},
"400",
ScaleBox,
{Legend Model(
8,
Properties( 0, {Marker Size( 0 ), Transparency( 0 )}, Item ID( "^offset_cols[i]^", 1 ) )
)}
)
)
);Betreff: Problem auswählenDer gesamte Text befindet sich im vorherigen Beitrag unter dem Spoilerfenster, er sieht einfach nicht richtig aus, also habe ich Bilder verwendet. Ich wusste nicht, wozu die JSL-Schaltfläche dient, also habe ich sie einfach kopiert/eingefügt.
dt = Open ();
col_list = dt << get column names(string);
remove from(col_list, 1); // Remove time[sec] from list
cols_to_plot = {};
offset_list = {};
offset_cols = {};
// Define the graph builder commands in an expression for use by the OK button
graph_expr = expr(
for (i = 1, i <= nitems(cols_to_plot), i++,
new_name = cols_to_plot[i] || "-Chemical Cal";
insertinto(offset_cols, new_name);
dt << new column(new_name, Numeric, "Continuous", Format( "Best", 12 ),
Formula( as column(dt, cols_to_plot[i]) * offset_list[i] ) );
);
// Now for the graph - build a text string and then execute it
gb_text =
"\[gb = graph builder(
show control panel(0),
variables(
X( :Name( "Time[sec]" ) ),]\";
elements_txt = " ),
Elements( Line( X, ";
for (i = 1, i <= nitems(cols_to_plot), i++,
if (i == 1,
// then
gb_text = gb_text || evalinsert("\!N\[ Y( :Name( "^offset_cols[i]^" ) ), ]\");
,
// else
gb_text = gb_text || evalinsert("\!N\[ Y( :Name( "^offset_cols[i]^" ), Position( 1 ) ),]\");
);
elements_txt = elements_txt || evalinsert("Y ( ^i^ ), ");
);
elements_txt = elements_txt || "Legend( 7 ) ), Points( X, Y, Legend(8))
,";
gb_text = gb_text || elements_txt || ") )";
eval(parse(gb_text));
SendToReport(
Dispatch(
{},
"400",
ScaleBox,
{Legend Model(
8,
Properties(
0,
{Marker Size( 0 ), Transparency( 0 )},
Item ID( "^offset_cols[i]^", 1 )
)
)}
)
)
);
nw = new window("Graph Chemicals",
panel box("Select channels to graph",
lineup box(ncol(2),
text box("Column"), text box("Chemical Cal"),
cb1 = checkbox("Ch1"), ch1_neb = number edit box(),
cb2 = checkbox("Ch2"), ch2_neb = number edit box(),
cb3 = checkbox("Ch3"), ch3_neb = number edit box(),
cb4 = checkbox("Ch4"), ch4_neb = number edit box(),
cb5 = checkbox("Ch5"), ch5_neb = number edit box(),
cb6 = checkbox("Ch6"), ch6_neb = number edit box(),
cb7 = checkbox("Ch7"), ch7_neb = number edit box(),
cb8 = checkbox("Ch8"), ch8_neb = number edit box(),
cb9 = checkbox("Ch9"), ch9_neb = number edit box(),
),
),
panelbox("Actions",
hlistbox(
okb = button box("OK",
if (cb1 << get(1),
insertinto(cols_to_plot, col_list[8]);
offset_value = ch1_neb << get;
insertinto(offset_list, offset_value);
);
if (cb2 << get(1),
insertinto(cols_to_plot, col_list[9]);
offset_value = ch2_neb << get;
insertinto(offset_list, offset_value);
);
if (cb3 << get(1),
insertinto(cols_to_plot, col_list[10]);
offset_value = ch3_neb << get;
insertinto(offset_list, offset_value);
);
if (cb4 << get(1),
insertinto(cols_to_plot, col_list[11]);
offset_value = ch4_neb << get;
insertinto(offset_list, offset_value);
);
if (cb5 << get(1),
insertinto(cols_to_plot, col_list[12]);
offset_value = ch5_neb << get;
insertinto(offset_list, offset_value);
);
if (cb6 << get(1),
insertinto(cols_to_plot, col_list[13]);
offset_value = ch6_neb << get;
insertinto(offset_list, offset_value);
);
if (cb7 << get(1),
insertinto(cols_to_plot, col_list[14]);
offset_value = ch7_neb << get;
insertinto(offset_list, offset_value);
);
if (cb8 << get(1),
insertinto(cols_to_plot, col_list[15]);
offset_value = ch8_neb << get;
insertinto(offset_list, offset_value);
);
graph_expr;
nw << close window;
),
canb = button box("Cancel", nw << close window;
),
)
),
);
// Pre-check checkboxes if column exists
for (i = 1, i <= nitems(col_list), i++,
if (col_list[i] == "Ch1", cb1 << set(1, 1),
col_list[i] == "Ch2", cb2 << set(1, 1),
col_list[i] == "Ch3", cb3 << set(1, 1),
col_list[i] == "Ch4", cb4 << set(1, 1),
col_list[i] == "Ch5", cb5 << set(1, 1),
col_list[i] == "Ch6", cb6 << set(1, 1),
col_list[i] == "Ch7", cb7 << set(1, 1),
col_list[i] == "Ch8", cb8 << set(1, 1),
col_list[i] == "Ch9", cb9 << set(1, 1),
);
);Graph Builder(
Show Control Panel( 0 ),
Variables( X( :Name( "Time[sec]" ) ), Y( :Name( "CH2-Offset" ) ) ),
Elements( Line( X, Y, Legend( 7 ) ), Points( X, Y, Legend( 8 ) ) ),
SendToReport(
Dispatch(
{},
"400",
ScaleBox,
{Legend Model(
8,
Properties( 0, {Marker Size( 0 )}, Item ID( "CH2-Offset", 1 ) )
)}
)
)
);
Graph Builder(
Show Control Panel( 0 ),
Variables( X( :Name( "Time[sec]" ) ), Y( :Name( "CH2-Offset" ) ) ),
Elements( Line( X, Y, Legend( 7 ) ), Points( X, Y, Legend( 8 ) ) ),
SendToReport(
Dispatch(
{},
"400",
ScaleBox,
{Legend Model(
8,
Properties(
0,
{Marker Size( 0 ), Transparency( 0 )},
Item ID( "^offset_cols[i]^", 1 )
)
)}
)
)
);Betreff: Problem auswählenDass Sie auf Ihre letzte Frage nicht geantwortet haben, liegt teilweise an der Art und Weise, wie Sie den Code anzeigen.Die Übergabe des Codes in Form eines Bildes erfordert, dass die Community Ihren gesamten Code manuell eingeben muss, wenn sie versuchen möchte, Ihren Code zu debuggen.Könnten Sie bitte den Code eingeben, indem Sie entweder auf das Symbol „Code einfügen“ oder noch besser auf das Symbol „JSL-Skript einfügen“ klicken?Wenn Ihr Browser keines davon unterstützt, funktioniert das Einfügen des Codes in die Antwort.
Betreff: Problem auswählen
Ich denke, es sollte hier am Ende stehen, aber ich bekomme es immer wieder

Ich bin mir nicht sicher, was ich sonst noch versuchen soll. Ich habe mehrere verschiedene logische Namen ausprobiert, aber keine Änderung.
Betreff: Problem auswählenSchön, jetzt, wo wir etwas erreichen, fällt es mir schwer, den Dialog, der dafür entsteht, in mein Drehbuch einzufügen. Wenn ich diese Anpassung vornehme, sieht das Skript so aus

aber ich habe Probleme herauszufinden, wo und wie ich die Modifikatoren in mein Basisskript einfügen soll.

Ich würde das gerne besser verstehen, aber im Moment ist das Verstehen weniger wichtig als die Wirkung ^.^ (als Bilder statt als Text gespeichert, weil der Text seltsam funktionierte, Textcode folgt)
Mehr sehen...
Betreff: Problem auswählenWenn Sie mit der rechten Maustaste auf die Punkte in der Legende des Diagramms klicken, können Sie die Größe der Punkte und die Farbe der Punkte ändern.Betreff: Problem auswählenNachtrag:
Okay, ich habe mein Diagramm so geändert, dass es auch Punkte verwendet. Allerdings sind die Punkte enorm und verunstalten mein Bild. Gibt es eine Möglichkeit, die Punkte kleiner darzustellen oder sie sogar grafisch darzustellen, aber die sichtbaren Punkte zu entfernen? Ich brauche keine Punkte, ich brauche nur die Möglichkeit, das spezifische Segment einer Linie auszuwählen, was Ihnen das nicht ermöglicht. Vielen Dank für Ihre zusätzliche Hilfe!

Betreff: Problem auswählenNun, das beantwortet die Frage, stellt aber ein neues Problem dar. Andererseits kenne ich jetzt eine wirklich schnelle Möglichkeit, den Spitzenwert ohne großen Aufwand zu ermitteln, obwohl ich wirklich gerne nur das Segment der Linie auswählen könnte. Das Liniendiagramm ist in diesem Fall die beste Möglichkeit, die Daten darzustellen, da es sich um einen flüssigen Fluss handelt. Wir sammeln Datenpunkte entlang eines Zeitrahmens, aber die Flüssigkeit fließt immer noch zwischen diesen Punkten, und auch, weil es die Art und Weise widerspiegelt, wie es in anderen Formaten angezeigt wird Es ist leicht zu erkennen, ob Sie die richtigen Daten betrachten oder ob die Daten erheblich von den gewünschten Parametern abweichen. Ich frage mich, ob es eine Möglichkeit gibt, es als Linie anzuzeigen, es aber als Punkte zu behandeln ... *überlege* Naja, trotzdem danke für die Information!
Betreff: Problem auswählenHallo zusammen,
Wenn Sie eine Linie auswählen, werden alle Punkte ausgewählt, aus denen diese Linie besteht. Sie müssten Punkte auf der Linie haben, um nur diesen Bereich der Linie auszuwählen.
Hoffentlich hilft das.
Chris
Betreff: Problem auswählenDas ist interessant – bei mir passiert das Gleiche.Mir ist auch aufgefallen, dass sich das Lasso-Werkzeug in ein Rechteck und nicht in ein frei zu zeichnendes Polygon verwandelt.Dies geschieht jedoch nur, wenn im Graph Builder die Linienoption anstelle der Punkte ausgewählt wird.Ich vermute, dass bei der für den Mittelwert dieser Variablen gezeichneten Linie alle Punkte hervorgehoben sind, da alle Punkte zur Berechnung des Mittelwerts verwendet werden – aber das ist eine Vermutung und ich bin gespannt, ob jemand das Rätsel lösen kann.Was Ihre andere Frage betrifft: Können Sie eine Kombination aus ColMax- und/oder ColRank-Funktionen verwenden, um die gesuchten Punkte zu erhalten?
Betreff: Problem auswählen
Es ist ein ziemlich einfaches Diagramm mit nur zwei Datenzeilen. Es sollte wirklich einfach sein, aber aus irgendeinem Grund wird, wie Sie sehen können, die gesamte Tabelle hervorgehoben, wenn nur der Spitzenwert ausgewählt wird.
Im zweiten Teil suche ich eher nach einer Möglichkeit, es in das Skript zu integrieren, das ich derzeit habe. Wenn ich die Datenpunkte aufspüren und auswählen muss, ist der Punkt bereits besiegt. Ich weiß, dass es sich bei den Variablen um die Spalte handelt, in der es vorkommt Es wird immer eine 0 vor jedem Referenzpeak geben und ich kümmere mich nur um den höchsten Punkt des Peaks für jedes Vorkommen auf der Linie.
Ich schaue mir das Buch natürlich mal an, aber die Zeit wartet auf niemanden, und der Zweck dieses Projekts besteht darin, die Aufgaben, die wir bereits erledigen, zu rationalisieren. Wir brauchen JMP nicht, um nach Werten zu suchen, die wir bereits in Excel haben, wissen Sie ^.^
Betreff: Problem auswählenUnten sehen Sie ein Diagramm, in dem einige Punkte ausgewählt wurden. Sowohl im Diagramm als auch in der Datentabelle ist ersichtlich, welche Punkte ausgewählt wurden.Sie müssen jedoch weitere Informationen darüber bereitstellen, welches Diagramm Sie genau verwendet haben und was die Datentabelle enthält, damit Sie die möglichen Probleme ermitteln können.Als ersten Schritt empfehle ich Ihnen, das Buch „Essential Graphing“ zu lesen, das mit der Installation von JMP geliefert wird
Hilfe==>Bücher==>Grundlegende grafische Darstellung

Zu Ihrer zweiten Frage: Ja, Sie könnten ausgewählte Punkte aus einer Linie ermitteln und deren Werte im Diagramm anzeigen lassen.Dies kann erreicht werden, indem Sie angeben, welche Spalten für die Beschriftung verwendet werden sollen, und dann die anzuzeigenden Datenpunkte auswählen.Auch dies wird im Buch „Essential Graphing“ behandelt