Ho un dato con tutti i valori numerici. Come tracciare un misto di grafico a barre misto impilato e affiancato nel generatore di grafici. Voglio tracciare i miei grafici come mostrato nelle 2 immagini allegate.
La prima immagine mostra solo la percentuale di ciascuna variabile in un misto di grafici a barre in pila e affiancati, ma nella seconda immagine viene mostrato anche il valore della variabile.
Se puoi condividere la procedura dettagliata o lo script JSL, sarebbe di grande aiuto.
Di seguito sono riportati i dati di esempio.
| Alunno |
Totale_Matematica_Fisica |
Matematica |
Fisica |
Total_Badminton_Football |
Badminton |
Calcio |
| UN |
50 |
30 |
20 |
40 |
10 |
30 |
| B |
40 |
25 |
15 |
20 |
10 |
10 |
| C |
30 |
15 |
15 |
50 |
40 |
10 |
Grazie 


CIAO @Rajat
Penso che possiamo avvicinarci abbastanza a quello che vuoi con solo un po' di lavoro:
Ho allegato la tabella dei dati ristrutturata con lo script salvato in modo che tu possa cercare tu stesso. Ecco cosa ho fatto:
1. Impila la tua tabella originale:
Current Data Table() << Stack(
columns( :Maths, :Physics, :Badminton, :Football ),
Source Label Column( "Label" ), Stacked Data Column( "Data" )
);

Questo dà quanto segue:
2. Abbiamo bisogno di una variabile che ci permetta di suddividere il raggruppamento di attività (matematica/fisica vs badminton/calcio), quindi aggiungerò una nuova colonna, Gruppo, e itererò AABBAABB, ecc. Puoi farlo come preferisci tipo, hai solo bisogno di una variabile nominale. Ecco un altro modo con Sequence():
New Column("Group", Numeric, "Nominal", Formula(Sequence(1, 2, 1, 2)) );

3. Generatore di grafici:
Ho modificato una serie di impostazioni per ottenere il grafico come ho fatto io, ma ecco i passaggi di base e un breve video:
Passi:
- Trascina la colonna "Dati" sul ruolo Y
- Trascina entrambe le colonne "Totale", contemporaneamente, nella parte superiore della zona di rilascio Y
- Disattiva i punti e attiva l'elemento Barra
- Cambia lo stile della barra per il grafico inferiore, "Dati", in "In pila"
- Trascina "Etichetta" sul ruolo di sovrapposizione
- Sotto i controlli per le barre superiori, disattiva il ruolo di sovrapposizione in "Variabili"
- Trascina "Gruppo" nel ruolo dell'asse X
- Disattiva la variabile "Gruppo" per il grafico superiore nel pannello di controllo
- Trascina "Studente" nel ruolo Gruppo X
- Cambia "Summary Statistic" per il grafico inferiore in "% of Factor" (ho trascurato di mostrarlo nel video)
- Cambia l'etichetta in "Etichetta per valore" per ogni barra
Questo da:
Da qui puoi fare molto. Per il grafico finale che ho mostrato all'inizio, ho anche apportato alcune aggiunte come la modifica della larghezza della barra (fare clic con il pulsante destro del mouse su un grafico> personalizza), rimuovere le etichette dell'asse X (fare doppio clic sull'asse e deselezionare le etichette) e modificare anche la spaziatura del grafico ( Triangolo rosso> Spaziatura grafico). Ecco uno script per il grafico finale:
Graph Builder(
Size( 799, 566 ),
Show Control Panel( 0 ),
Graph Spacing( 2 ),
Variables(
X( :Group ),
Y( :Total_Math_Physics ),
Y( :Total_Badminton_Football, Position( 1 ) ),
Y( :Data ),
Group X( :Student ),
Overlay( :Label )
),
Elements(
Position( 1, 1 ),
Bar( Y( 1 ), Y( 2 ), Overlay( 0 ), Legend( 5 ), Label( "Label by Value" ) )
),
Elements(
Position( 1, 2 ),
Bar(
X,
Y,
Legend( 4 ),
Bar Style( "Stacked" ),
Summary Statistic( "% of Factor" ),
Label( "Label by Value" )
)
),
SendToReport(
Dispatch(
{},
"Group",
ScaleBox,
{Min( -1.167069008972 ), Max( 2.147362067225 ), Inc( 1 ),
Minor Ticks( 0 ), Label Row( Show Major Labels( 0 ) )}
),
Dispatch(
{},
"Total_Math_Physics",
ScaleBox,
{Min( 0.23109243697479 ), Max( 55 ), Inc( 10 ), Minor Ticks( 1 )}
),
Dispatch(
{},
"Data",
ScaleBox,
{Min( 0 ), Max( 1.1209749344709 ), Inc( 0.2 ), Minor Ticks( 0 )}
),
Dispatch( {}, "graph title", TextEditBox, {Set Text( "Example" )} ),
Dispatch( {}, "X title", TextEditBox, {Set Text( "" )} ),
Dispatch(
{},
"Graph Builder",
FrameBox,
{DispatchSeg( BarSeg( 1 ), Set Width Proportion( 0.6 ) )}
),
Dispatch(
{},
"Graph Builder",
FrameBox( 2 ),
{DispatchSeg( BarSeg( 1 ), Set Width Proportion( 1 ) )}
),
Dispatch(
{},
"Graph Builder",
FrameBox( 3 ),
{DispatchSeg( BarSeg( 1 ), Set Width Proportion( 0.6 ) )}
),
Dispatch(
{},
"Graph Builder",
FrameBox( 4 ),
{DispatchSeg( BarSeg( 1 ), Set Width Proportion( 1 ) )}
),
Dispatch(
{},
"Graph Builder",
FrameBox( 5 ),
{DispatchSeg( BarSeg( 1 ), Set Width Proportion( 0.6 ) )}
),
Dispatch(
{},
"Graph Builder",
FrameBox( 6 ),
{DispatchSeg( BarSeg( 1 ), Set Width Proportion( 1 ) )}
)
)
);
Spero che aiuti!
@giuliano
CIAO @Rajat
la tua domanda è buona ma non credo che JMP possa farlo al volo.
si prega di vedere in allegato il mio file con gli script per produrre l'output. il mio approccio è più una soluzione a bassa tecnologia. ho aggiunto colonne per calcolare le condivisioni per ogni soggetto e righe (false) per consentire l'effetto side by side. una volta fatto questo ho modificato alcune cose nelle proprietà del grafico per completare l'illusione.
per favore fateci sapere se questo è nella giusta direzione.
Ron
