Ciao,
Sto cercando di utilizzare il generatore di grafici per creare un grafico a barre in pila con etichette per ciascuna barra in pila e una somma totale.L'immagine seguente è una versione contrassegnata del grafico che spero di ottenere in cui ho inserito manualmente i totali per ciascuna barra.(Il set di dati JMP di esempio che ho utilizzato insieme allo script del generatore di grafici incorporato è allegato)
Qualcuno sa se esiste un modo per creare questa visualizzazione tramite il generatore di grafici/un'altra piattaforma o lo scripting JSL?
Grazie,
AW

@txnelson , @gzmorgan0
Grazie mille per le risposte rapide e i modi creativi per risolvere questo problema!Ho trascurato di menzionare che dovrò scorrere e generare questi grafici per circa 100 progetti diversi a settimana.Quindi, penso che lo script fornito da gzmorgan0 sia più adatto a me. L'ho appena provato e funziona perfettamente per le mie esigenze.Grazie ancora!
@AW ,
@txnelson fornito una buona soluzione. Ci vuole un po' di scripting per le etichette.Ecco un altro metodo che utilizza GraphBuilder.Penso che sia più facile vedere il modello tramite lo script salvato (sotto). Questo può essere fatto tramite l'interfaccia utente e disattivando la variabile Overlay. Il grafico ha 3 elementi:
- una barra in pila utilizzando la variabile overlay
- una barra che non utilizza la variabile overlay
- una didascalia con la somma delle statistiche riassuntive che non utilizza la variabile di sovrapposizione
Nota: ho salvato la tabella dati sul mio c:/temp/ drive. L'elemento Didascalia non ha la flessibilità di posizionamento fornita dalla soluzione di Jim.
Names Default to Here(1);
dt = open("C:/temp/Sample Dataset for Stacked Graph Builder Bar Chart.jmp");
gb = dt << Graph Builder(
Size( 534, 492 ),
Show Control Panel( 0 ),
Variables(
X( :Test_Step_Duration ),
Y( :Test ),
Group X( :Sample Information ),
Overlay( :Test_Step )
),
Elements(
Bar(
X,
Y,
Overlay( 0 ),
Legend( 11 ),
Bar Style( "Stacked" ),
Summary Statistic( "Sum" )
),
Caption Box(
X,
Y,
Overlay( 0 ),
Legend( 13 ),
Summary Statistic( "Sum" ),
Per Factor( 1 )
),
Bar( X, Y, Legend( 14 ), Bar Style( "Stacked" ), Label( "Label by Value" ) )
),
Local Data Filter(
Add Filter( columns( :Project ), Where( :Project == "Project 1" ) )
),
SendToReport(
Dispatch(
{},
"Test_Step_Duration",
ScaleBox,
{Label Row( Show Major Grid( 1 ) )}
),
Dispatch(
{},
"400",
ScaleBox,
{Legend Model(
11,
Properties(
-1,
{Transparency( 0.1 )},
Item ID( "Sum(Test_Step_Duration)", 1 )
)
), Legend Model(
14,
Properties( 0, {Fill Color( 69 )}, Item ID( "Step 1", 1 ) ),
Properties( 1, {Fill Color( 67 )}, Item ID( "Step 2", 1 ) ),
Properties( 2, {Fill Color( 36 )}, Item ID( "Step 3", 1 ) ),
Properties( 3, {Fill Color( 40 )}, Item ID( "Step 4", 1 ) ),
Properties( 4, {Fill Color( 38 )}, Item ID( "Step 5", 1 ) ),
Properties( 5, {Fill Color( 39 )}, Item ID( "Step 6", 1 ) )
)}
),
Dispatch(
{},
"X title",
TextEditBox,
{Set Text( "Test_Step_Duration and Total" )}
),
Dispatch(
{},
"400",
LegendBox,
{Legend Position( {11, [-1], 14, [0, 1, 2, 3, 4, 5]} ),
Position( {-1, 0, 1, 2, 3, 4, 5} )}
)
)
);
txtseg = gb << Xpath("//TextSeg");
txtseg << Set Font("Segoe UI", 10, "Bold");
txtseg[1] << {Transparency( 0 ), Text Color( "White" )}; //clear out the statistic

Puoi aggiungere i tuoi script grafici personalizzati al Costruttore di grafici, fare clic con il pulsante destro del mouse sul grafico e selezionare Personalizzato e vedrai il JSL aggiunto.Ho aggiunto solo il codice per le prime 2 barre, ma dovrebbe mostrarti come procedere con tutte.

In allegato c'è la sceneggiatura