Hi @thiennguyen,
This graph is quite easy if you have a datatable containing the columns ID (GS, JM, HM, JW, ...), treatment phase and the response in stacked format :
![Victor_G_0-1717329880698.png Victor_G_0-1717329880698.png](https://community.jmp.com/t5/image/serverpage/image-id/64726i6CD4A7142FC9EF7B/image-size/medium?v=v2&px=400)
Using the graph builder, you can then set "treatment phase" as X, response as Y axis, and ID as "overlay" variable.
You can then Shift + Left click on "Line" to add connecting lines betwwen the data points.
You can then hide the points marker in the legend, change the colors, set "Value Order" column properties to order your ID and the treatment phase (because else it will be ordered by default in alphabetic order), and specify the jitter of the points as "None" so that the line do connect the points exactly.
At then end, you can obtain this graph :
![Victor_G_1-1717330069429.png Victor_G_1-1717330069429.png](https://community.jmp.com/t5/image/serverpage/image-id/64727iE70C69C4FC4A7E7E/image-size/medium?v=v2&px=400)
And here is the script for this graph :
Graph Builder(
Size( 534, 450 ),
Show Control Panel( 0 ),
Variables( X( :Treatment phase ), Y( :Response ), Overlay( :ID ) ),
Elements(
Points( X, Y, Legend( 6 ), Jitter( "None" ) ),
Line(
X,
Y,
Legend( 8 ),
Error Interval( "None" ),
Missing Values( "No Connection" )
)
),
SendToReport(
Dispatch(
{},
"Response",
ScaleBox,
{Min( 0 ), Max( 101 ), Inc( 20 ), Minor Ticks( 1 )}
),
Dispatch(
{},
"400",
ScaleBox,
{Legend Model(
6,
Base( 0, 0, 0, Item ID( "GS", 1 ) ),
Base( 1, 0, 0, Item ID( "JM", 1 ) ),
Base( 2, 0, 0, Item ID( "HM", 1 ) ),
Base( 3, 0, 0, Item ID( "JW", 1 ) ),
Base( 4, 0, 0, Item ID( "PS", 1 ) ),
Base( 5, 0, 0, Item ID( "GV", 1 ) ),
Properties(
0,
{Line Color( 19 ), Marker Size( 6 )},
Item ID( "GS", 1 )
),
Properties(
1,
{Line Color( 21 ), Marker Size( 6 )},
Item ID( "JM", 1 )
),
Properties(
2,
{Line Color( 75 ), Marker Size( 6 )},
Item ID( "HM", 1 )
),
Properties(
3,
{Line Color( 20 ), Marker Size( 6 )},
Item ID( "JW", 1 )
),
Properties(
4,
{Line Color( 25 ), Marker Size( 6 )},
Item ID( "PS", 1 )
),
Properties(
5,
{Line Color( 27 ), Marker Size( 6 )},
Item ID( "GV", 1 )
),
Properties( -1, {Marker Size( 6 )}, Item ID( "Response", 1 ) )
), Legend Model(
8,
Properties( 0, {Line Color( 19 )}, Item ID( "GS", 1 ) ),
Properties( 1, {Line Color( 21 )}, Item ID( "JM", 1 ) ),
Properties( 2, {Line Color( 75 )}, Item ID( "HM", 1 ) ),
Properties( 3, {Line Color( 20 )}, Item ID( "JW", 1 ) ),
Properties( 4, {Line Color( 9 )}, Item ID( "PS", 1 ) ),
Properties( 5, {Line Color( 27 )}, Item ID( "GV", 1 ) )
)}
),
Dispatch(
{},
"400",
LegendBox,
{Legend Position( {6, [-1, -1, -1, -1, -1, -1], 8, [0, 1, 2, 3, 4, 5]} )
}
)
)
);
I add the datatable as an example with the graph script so that you can see how the table is setup with column properties, and how the graph has been created.
Hope this answer will help you,
Victor GUILLER
Scientific Expertise Engineer
L'Oréal - Data & Analytics