Ciao, ho alcuni grafici diversi, in cui lo sfondo si concentra di diversi gradienti in base alla variabile y. Al momento ho tre diversi builder di grafici: uno per ogni variabile y. Poiché i gradienti di sfondo sono le uniche cose che variano, ho voluto rendere il codice più semplice avendo solo un generatore di grafici, ma usando le istruzioni if / else per determinare lo sfondo corretto da applicare:
Dispatch(
{},
"Graph Builder",
FrameBox,
{
if(
//graph 1
yAxis == "1",
Background Color( 1 ),
Add Image(Set Blob(green,"png"),
Bounds( Left( -100 ), Right( 100 ), Top( graphMax ), Bottom( if(graphMin>0.51,graphMin,0.51) ) ),
SetSize( {95401, 918} )
),
Add Image(Set Blob(red,"png"),
Bounds( Left( -100 ), Right( 100 ), Top( if(graphMax<0.49,graphMax,0.49) ), Bottom( graphMin ) ),
SetSize( {95401, 918} )
),
//graph 2
yAxis == "2",
Add Image(Set Blob(green,"png"),
Bounds( Left( -100 ), Right( 100 ), Top( if(graphMax<0.75,graphMax,0.75) ), Bottom( if(graphMin>0.55,graphMin,0.55) ) ),
SetSize( {95401, 918} )
),
Add Image(Set Blob(redCogTop,"png"),
Bounds( Left( -100 ), Right( 100 ), Top( graphMax ), Bottom( if(graphMin>0.75,graphMin,0.75 ) )),
SetSize( {95401, 918} )
),
Add Image(Set Blob(red,"png"),
Bounds( Left( -100 ), Right( 100 ), Top( if(graphMax<0.55,graphMax,0.55) ), Bottom( graphMin ) ),
SetSize( {95401, 918} )
),
//all other graphs
Add Image(Set Blob(green,"png"),
Bounds( Left( -100 ), Right( 100 ), Top( graphMax ), Bottom( graphMin ) ),
SetSize( {95401, 918} )
)
),
}
Grid Line Order( 2 ), Reference Line Order( 3 ),
DispatchSeg( BarSeg( 2 ), {Line Color( "Gray" )} )
}
),Ecco il codice originale dal primo grafico:
Dispatch(
{},
"Graph Builder",
FrameBox,
{
Background Color( 1 ),
Add Image(Set Blob(green,"png"),
Bounds( Left( -100 ), Right( 100 ), Top( graphMax ), Bottom( if(graphMin>0.51,graphMin,0.51) ) ),
SetSize( {95401, 918} )
),
Add Image(Set Blob(red,"png"),
Bounds( Left( -100 ), Right( 100 ), Top( if(graphMax<0.49,graphMax,0.49) ), Bottom( graphMin ) ),
SetSize( {95401, 918} )
),
Grid Line Order( 2 ), Reference Line Order( 3 ),
DispatchSeg( BarSeg( 2 ), {Line Color( "Gray" )} )}
),
Naturalmente ci sono un sacco di virgole nel primo frammento di codice che confondono l'if (), quindi non funziona. Avete suggerimenti su come risolvere questo problema?
Grazie mille,
Mikael
Grazie! Non riesco a farlo funzionare - anche se usare la funzione eval (parse ()) su piccole parti del codice non funziona per me. Proverò a caricare il codice al più presto, forse per far luce su quello che sta succedendo.