Qualcosa che ho trascurato in precedenza è l'aggiunta di etichette a singoli punti selezionando le righe che desideri etichettare e andando su Righe> Etichetta/Unlabel.Questo dovrebbe permetterti di fare quello che vuoi in questo grafico.Fondamentalmente ho ricreato il tuo esempio (tranne senza le barre di errore), ma ho dovuto registrare i grafici 1 alla volta perché avevo bisogno di cambiare le etichette per ogni pannello.
Ecco come appare il risultato finale:

Allego il file del diario, ma c'è un bug frustrante in cui le impostazioni della riga personalizzata vengono incasinate dopo aver salvato e riaperto il diario.Probabilmente noterai che tutte le linee saranno tratteggiate quando lo apri.
Script della tabella dati (di nuovo, non è possibile allegare direttamente la tabella dati):
New Table( "Multipanel Example with Tukey labels",
Add Rows( 4 ),
Set Header Height( 59 ),
New Script(
"Growth",
Graph Builder(
Size( 518, 446 ),
Show Control Panel( 0 ),
Show Legend( 0 ),
Variables(
X( :Treatment ),
Y( :Growth ),
Overlay( :Temperature Regime )
),
Elements(
Line( X, Y, Legend( 10 ) ),
Points( X, Y, Legend( 11 ), Jitter( "None" ) )
),
SendToReport(
Dispatch(
{},
"Growth",
ScaleBox,
{Format( "Fixed Dec", 12, 1 ), Min( 0.4 ), Max( 0.9 ),
Inc( 0.1 ), Minor Ticks( 0 )}
),
Dispatch(
{},
"400",
ScaleBox,
{Legend Model(
10,
Properties(
0,
{Line Color( 0 ), Line Style( "Dotted" ),
Fill Color( 0 )},
Item ID( "1", 1 )
),
Properties(
1,
{Line Color( 0 ), Fill Color( 0 )},
Item ID( "2", 1 )
)
), Legend Model(
11,
Properties(
0,
{Line Color( 0 ), Fill Color( 0 )},
Item ID( "1", 1 )
),
Properties(
1,
{Line Color( 0 ), Fill Color( 0 )},
Item ID( "2", 1 )
)
)}
),
Dispatch( {}, "graph title", TextEditBox, {Set Text( "" )} ),
Dispatch( {}, "X title", TextEditBox, {Set Text( "" )} )
)
)
),
New Script(
"chlorophyll",
Graph Builder(
Size( 518, 446 ),
Show Control Panel( 0 ),
Show Legend( 0 ),
Variables(
X( :Treatment ),
Y( :chlorophyll a ),
Overlay( :Temperature Regime )
),
Elements(
Points( X, Y, Legend( 6 ), Jitter( "None" ) ),
Line( X, Y, Legend( 7 ) )
),
SendToReport(
Dispatch(
{},
"chlorophyll a",
ScaleBox,
{Format( "Fixed Dec", Use thousands separator( 1 ), 12, 0 ),
Min( 0 ), Max( 8 ), Inc( 2 ), Minor Ticks( 0 )}
),
Dispatch(
{},
"400",
ScaleBox,
{Legend Model(
6,
Properties(
0,
{Line Color( 0 ), Fill Color( 0 )},
Item ID( "1", 1 )
),
Properties(
1,
{Line Color( 0 ), Fill Color( 0 )},
Item ID( "2", 1 )
)
), Legend Model(
7,
Properties(
0,
{Line Color( 0 ), Line Style( "Dotted" ),
Fill Color( 0 )},
Item ID( "1", 1 )
),
Properties(
1,
{Line Color( 0 ), Fill Color( 0 )},
Item ID( "2", 1 )
)
)}
),
Dispatch( {}, "graph title", TextEditBox, {Set Text( "" )} ),
Dispatch( {}, "X title", TextEditBox, {Set Text( "" )} ),
Dispatch(
{},
"Graph Builder",
FrameBox,
{DispatchSeg(
Marker Seg( "Marker (1)" ),
label offset( {0, -8, -13}, {1, -12, 26} )
), DispatchSeg(
Marker Seg( "Marker (2)" ),
label offset( {0, -5, 21}, {1, -14, -16} )
)}
)
)
)
),
New Script(
"Symbiodinium density",
Graph Builder(
Size( 518, 446 ),
Show Control Panel( 0 ),
Show Legend( 0 ),
Variables(
X( :Treatment ),
Y( :Symbiodinium density ),
Overlay( :Temperature Regime )
),
Elements(
Points( X, Y, Legend( 4 ), Jitter( "None" ) ),
Line( X, Y, Legend( 5 ) )
),
SendToReport(
Dispatch(
{},
"Symbiodinium density",
ScaleBox,
{Min( 1.5 ), Max( 4 ), Inc( 0.5 ), Minor Ticks( 0 )}
),
Dispatch(
{},
"400",
ScaleBox,
{Legend Model(
4,
Properties(
0,
{Line Color( 0 ), Fill Color( 0 )},
Item ID( "1", 1 )
),
Properties(
1,
{Line Color( 0 ), Fill Color( 0 )},
Item ID( "2", 1 )
)
), Legend Model(
5,
Properties(
0,
{Line Color( 0 ), Line Style( "Dotted" ),
Fill Color( 0 )},
Item ID( "1", 1 )
),
Properties(
1,
{Line Color( 0 ), Fill Color( 0 )},
Item ID( "2", 1 )
)
)}
),
Dispatch( {}, "graph title", TextEditBox, {Set Text( "" )} ),
Dispatch( {}, "X title", TextEditBox, {Set Text( "" )} ),
Dispatch(
{},
"Graph Builder",
FrameBox,
{DispatchSeg(
Marker Seg( "Marker (1)" ),
label offset( {0, 2, 24}, {1, -3, -16} )
), DispatchSeg(
Marker Seg( "Marker (2)" ),
label offset( {0, 3, -15}, {1, 1, 24} )
)}
)
)
)
),
New Script(
"max dark-adapted",
Graph Builder(
Size( 518, 446 ),
Show Control Panel( 0 ),
Show Legend( 0 ),
Variables(
X( :Treatment ),
Y( :Name( "max. dark-adapted quantum yield" ) ),
Overlay( :Temperature Regime )
),
Elements(
Points( X, Y, Legend( 3 ), Jitter( "None" ) ),
Line( X, Y, Legend( 4 ) )
),
SendToReport(
Dispatch(
{},
"max. dark-adapted quantum yield",
ScaleBox,
{Min( 0.72 ), Max( 0.77 ), Inc( 0.01 ), Minor Ticks( 1 )}
),
Dispatch(
{},
"400",
ScaleBox,
{Legend Model(
3,
Properties(
0,
{Line Color( 0 ), Fill Color( 0 )},
Item ID( "1", 1 )
),
Properties(
1,
{Line Color( 0 ), Fill Color( 0 )},
Item ID( "2", 1 )
)
), Legend Model(
4,
Properties(
0,
{Line Color( 0 ), Line Style( "Dotted" ),
Fill Color( 0 )},
Item ID( "1", 1 )
),
Properties(
1,
{Line Color( 0 ), Fill Color( 0 )},
Item ID( "2", 1 )
)
)}
),
Dispatch( {}, "graph title", TextEditBox, {Set Text( "" )} ),
Dispatch( {}, "X title", TextEditBox, {Set Text( "" )} ),
Dispatch(
{},
"Graph Builder",
FrameBox,
{DispatchSeg(
Marker Seg( "Marker (1)" ),
label offset( {0, -4, -17}, {1, -6, -18} )
), DispatchSeg(
Marker Seg( "Marker (2)" ),
label offset( {0, -7, -14}, {1, -4, -17} )
)}
)
)
)
),
New Column( "Treatment",
Character,
"Nominal",
Set Property( "Value Ordering", {"upwelling", "non-upwelling"} ),
Set Values( {"upwelling", "upwelling", "non-upwelling", "non-upwelling"} ),
Set Display Width( 132 )
),
New Column( "Temperature Regime",
Numeric,
"Nominal",
Format( "Best", 12 ),
Set Values( [1, 2, 1, 2] )
),
New Column( "Growth",
Numeric,
"Continuous",
Format( "Best", 12 ),
Set Values( [0.78, 0.75, 0.68, 0.82] )
),
New Column( "Symbiodinium density",
Numeric,
"Continuous",
Format( "Best", 12 ),
Set Values( [2.8, 3.05, 3.45, 3.38] )
),
New Column( "Tukey Symbiodinium",
Character,
"Nominal",
Set Values( {"B", "B", "A", "A"} )
),
New Column( "chlorophyll a",
Numeric,
"Continuous",
Format( "Best", 12 ),
Set Values( [7.2, 4.3, 5.5, 6.5] )
),
New Column( "Tukey chlorophyll",
Character,
"Nominal",
Set Values( {"A", "C", "BC", "AB"} )
),
New Column( "max. dark-adapted quantum yield",
Numeric,
"Continuous",
Format( "Best", 12 ),
Set Values( [0.76, 0.749, 0.753, 0.739] ),
Set Display Width( 148 )
),
New Column( "Tukey max",
Character,
"Nominal",
Set Values( {"A", "B", "B", "C"} )
),
Set Row States( [32776, 248, 32776, 248] ),
Set Label Columns( :Tukey max )
)Penso che questo sia possibile senza troppo lavoro e senza script.L'idea di base è creare una tabella di dati dal rapporto delle lettere di collegamento Tukey e unire quelle lettere ai dati originali abbinando il nome del gruppo alla colonna Livelli dalla tabella Tukey.Quindi, combina le colonne con i gruppi di lettere selezionandole > fai clic con il pulsante destro del mouse su una qualsiasi delle colonne evidenziate > Nuova colonna formula > Concatena (con spazio o con virgola).Successivamente, seleziona la colonna risultante e usala per le etichette (Cols > Label/Unlabel).
Infine, crea il tuo grafico in Graph Builder.Dopo aver creato un grafico a barre, sono stato in grado di aggiungere barre ed etichette di errore come hai mostrato utilizzando i controlli del pannello di controllo per Bar.
**La community non mi consente di pubblicare la tabella ("Il contenuto dell'allegato non corrisponde al tipo di file").Ecco lo script per riprodurlo:
New Table( "ExamplePlotTukeyLabels",
Add Rows( 17 ),
New Script(
"Source",
Data Table( "Untitled 4" ) << Join(
With( Data Table( "Untitled 6" ) ),
By Matching Columns( :Groups = :Level ),
Drop multiples( 0, 0 ),
Include Nonmatches( 0, 0 ),
Preserve main table order( 1 )
)
),
New Script(
"Make Into Data Table",
Names Default To Here( 1 );
platform = Current Data Table() << Oneway(
Y( :Y ),
X( :Groups ),
All Pairs( 1 )
);
Wait( 0 );
Report( platform )[Outline Box( "Oneway Analysis of Y By Groups" )][
Outline Box( "Means Comparisons" )][
Outline Box( "Comparisons for all pairs using Tukey-Kramer HSD" )][
Outline Box( "Connecting Letters Report" )][Table Box( 1 )] <<
Make Into Data Table;
Report( platform ) << Close Window;
),
New Script(
"Example with Tukey Levels",
Graph Builder(
Size( 518, 550 ),
Show Control Panel( 0 ),
Variables( X( :Groups ), Y( :Y ) ),
Elements(
Bar(
X,
Y,
Legend( 4 ),
Error Bars( "Standard Error" ),
Label( "Label by Row" )
)
)
)
),
New Column( "Groups",
Character,
"Nominal",
Set Values(
{"Group 1", "Group 1", "Group 1", "Group 1", "Group 1", "Group 2",
"Group 2", "Group 2", "Group 2", "Group 2", "Group 3", "Group 3",
"Group 3", "Group 3", "Group 3", "Group 4", "Group 4"}
)
),
New Column( "Y",
Numeric,
"Continuous",
Format( "Best", 12 ),
Formula(
Random Normal( 15, 3 ) + Col Mean( Random Normal( 0, 10 ), :Groups )
),
Suppress Eval
),
New Column( "Level",
Character,
"Nominal",
Set Values(
{"A", "A", "A", "A", "A", "B", "B", "B", "B", "B", "C", "C", "C", "C",
"C", "D", "D"}
)
),
New Column( "~Letter Column A",
Character,
"Nominal",
Set Values(
{"", "", "", "", "", "A", "A", "A", "A", "A", "", "", "", "", "", "A",
"A"}
)
),
New Column( "~Letter Column B",
Character,
"Nominal",
Set Values(
{"B", "B", "B", "B", "B", "", "", "", "", "", "B", "B", "B", "B", "B",
"B", "B"}
)
),
New Column( "Concatenate[~Le...etter Column B]",
Character,
"Nominal",
Formula( :Name( "~Letter Column A" ) || " " || :Name( "~Letter Column B" ) )
),
New Column( "Mean",
Numeric,
"Continuous",
Format( "Fixed Dec", 12, 6 ),
Set Values(
[12.8498772929854, 12.8498772929854, 12.8498772929854, 12.8498772929854,
12.8498772929854, 19.105279210907, 19.105279210907, 19.105279210907,
19.105279210907, 19.105279210907, 11.7021088825322, 11.7021088825322,
11.7021088825322, 11.7021088825322, 11.7021088825322, 16.4722902997683,
16.4722902997683]
)
),
Set Label Columns( :Name( "Concatenate[~Le...etter Column B]" ) )
)