@@ -1296,7 +1296,7 @@ def Gardner_Altman_Plot_Aesthetic_Adjustments(effect_size_type, plot_data, xvar,
12961296
12971297def Cumming_Plot_Aesthetic_Adjustments (contrast_axes , reflines_kwargs , is_paired , show_pairs , two_col_sankey , idx , ticks_to_start_twocol_sankey ,
12981298 proportional , ticks_to_skip , temp_idx , rawdata_axes , redraw_axes_kwargs , ticks_to_skip_contrast ,
1299- show_delta2 , show_mini_meta , horizontal ):
1299+ show_delta2 , show_mini_meta , horizontal , skip_redraw_lines ):
13001300
13011301 """
13021302 Aesthetic adjustments for the Cumming plot.
@@ -1335,6 +1335,8 @@ def Cumming_Plot_Aesthetic_Adjustments(contrast_axes, reflines_kwargs, is_paired
13351335 A boolean flag to determine if the plot will have a mini-meta effect size.
13361336 horizontal : bool
13371337 A boolean flag to determine if the plot is for horizontal plotting.
1338+ skip_redraw_lines : bool
1339+ A boolean flag to skip adding spines back if True (for gridkey purposes).
13381340 """
13391341
13401342 # If 0 lies within the ylim of the contrast axes, draw a zero reference line.
@@ -1354,75 +1356,76 @@ def Cumming_Plot_Aesthetic_Adjustments(contrast_axes, reflines_kwargs, is_paired
13541356 method (0 , ** reflines_kwargs )
13551357
13561358 # Add axes spine lines to link the relevant groups in the plot. (re-add as we removed spines)
1357- if horizontal :
1358- if two_col_sankey :
1359- rightend_ticks = np .array ([len (i ) - 2 for i in idx ]) + np .array (ticks_to_start_twocol_sankey )
1360- starting_ticks = ticks_to_start_twocol_sankey .copy ()
1361- else :
1362- if is_paired == "baseline" and show_pairs :
1363- if proportional and is_paired is not None :
1364- rightend_ticks = np .array ([len (i ) - 1 for i in idx ]) + np .array (ticks_to_skip )
1365- else :
1366- rightend_ticks = np .array ([len (i ) - 1 for i in temp_idx ]) + np .array (ticks_to_skip )
1359+ if not skip_redraw_lines :
1360+ if horizontal :
1361+ if two_col_sankey :
1362+ rightend_ticks = np .array ([len (i ) - 2 for i in idx ]) + np .array (ticks_to_start_twocol_sankey )
1363+ starting_ticks = ticks_to_start_twocol_sankey .copy ()
13671364 else :
1368- rightend_ticks = np .array ([len (i ) - 1 for i in idx ]) + np .array (ticks_to_skip )
1369- starting_ticks = ticks_to_skip .copy ()
1370-
1371- for ax in [rawdata_axes ]:
1372- sns .despine (ax = ax , left = True )
1373- xlim , ylim = ax .get_xlim (), ax .get_ylim ()
1374- redraw_axes_kwargs ["x" ] = xlim [0 ]
1375- for k , start_tick in enumerate (starting_ticks ):
1376- end_tick = rightend_ticks [k ]
1377- ax .vlines (
1378- ymin = start_tick ,
1379- ymax = end_tick ,
1380- ** redraw_axes_kwargs
1381- )
1382- ax .set_xlim (xlim )
1383- ax .set_ylim (ylim )
1384- del redraw_axes_kwargs ["x" ]
1385-
1386- # Remove y ticks and labels from the contrast axes.
1387- sns .despine (ax = contrast_axes , left = True )
1388- contrast_axes .set_yticks ([])
1389- contrast_axes .set_yticklabels ([])
1390-
1391- else : # Add spine lines to link the relevant groups in the plot. (re-add as we removed spines) - Vertical plots
1392- if two_col_sankey :
1393- rightend_ticks_raw = rightend_ticks_contrast = np .array ([len (i ) - 2 for i in idx ]) + np .array (ticks_to_start_twocol_sankey )
1394- starting_ticks_raw = starting_ticks_contrast = ticks_to_start_twocol_sankey
1395- else :
1396- if is_paired == "baseline" and show_pairs :
1397- if proportional and is_paired is not None :
1398- rightend_ticks_raw = rightend_ticks_contrast = np .array ([len (i ) - 1 for i in idx ]) + np .array (ticks_to_skip )
1365+ if is_paired == "baseline" and show_pairs :
1366+ if proportional and is_paired is not None :
1367+ rightend_ticks = np .array ([len (i ) - 1 for i in idx ]) + np .array (ticks_to_skip )
1368+ else :
1369+ rightend_ticks = np .array ([len (i ) - 1 for i in temp_idx ]) + np .array (ticks_to_skip )
13991370 else :
1400- rightend_ticks_raw = np .array ([len (i ) - 1 for i in temp_idx ]) + np .array (ticks_to_skip )
1401- temp_length = [(len (i ) - 1 ) * 2 - 1 for i in idx ] if proportional else [(len (i ) - 1 ) for i in idx ]
1402- rightend_ticks_contrast = np .array (temp_length ) + np .array (ticks_to_skip_contrast )
1403- starting_ticks_raw , starting_ticks_contrast = ticks_to_skip , ticks_to_skip_contrast
1371+ rightend_ticks = np .array ([len (i ) - 1 for i in idx ]) + np .array (ticks_to_skip )
1372+ starting_ticks = ticks_to_skip .copy ()
1373+
1374+ for ax in [rawdata_axes ]:
1375+ sns .despine (ax = ax , left = True )
1376+ xlim , ylim = ax .get_xlim (), ax .get_ylim ()
1377+ redraw_axes_kwargs ["x" ] = xlim [0 ]
1378+ for k , start_tick in enumerate (starting_ticks ):
1379+ end_tick = rightend_ticks [k ]
1380+ ax .vlines (
1381+ ymin = start_tick ,
1382+ ymax = end_tick ,
1383+ ** redraw_axes_kwargs
1384+ )
1385+ ax .set_xlim (xlim )
1386+ ax .set_ylim (ylim )
1387+ del redraw_axes_kwargs ["x" ]
1388+
1389+ # Remove y ticks and labels from the contrast axes.
1390+ sns .despine (ax = contrast_axes , left = True )
1391+ contrast_axes .set_yticks ([])
1392+ contrast_axes .set_yticklabels ([])
1393+
1394+ else : # Add spine lines to link the relevant groups in the plot. (re-add as we removed spines) - Vertical plots
1395+ if two_col_sankey :
1396+ rightend_ticks_raw = rightend_ticks_contrast = np .array ([len (i ) - 2 for i in idx ]) + np .array (ticks_to_start_twocol_sankey )
1397+ starting_ticks_raw = starting_ticks_contrast = ticks_to_start_twocol_sankey
14041398 else :
1405- rightend_ticks_raw = rightend_ticks_contrast = np .array ([len (i ) - 1 for i in idx ]) + np .array (ticks_to_skip )
1406- starting_ticks_raw = starting_ticks_contrast = ticks_to_skip
1407-
1408- for ax , starting_ticks_current , rightend_ticks_current in zip (
1409- [rawdata_axes , contrast_axes ],
1410- [starting_ticks_raw , starting_ticks_contrast ],
1411- [rightend_ticks_raw , rightend_ticks_contrast ],
1412- ):
1413- sns .despine (ax = ax , bottom = True )
1414- xlim , ylim = ax .get_xlim (), ax .get_ylim ()
1415- redraw_axes_kwargs ["y" ] = ylim [0 ]
1416- for k , start_tick in enumerate (starting_ticks_current ):
1417- end_tick = rightend_ticks_current [k ]
1418- ax .hlines (
1419- xmin = start_tick ,
1420- xmax = end_tick ,
1421- ** redraw_axes_kwargs
1422- )
1423- ax .set_xlim (xlim )
1424- ax .set_ylim (ylim )
1425- del redraw_axes_kwargs ["y" ]
1399+ if is_paired == "baseline" and show_pairs :
1400+ if proportional and is_paired is not None :
1401+ rightend_ticks_raw = rightend_ticks_contrast = np .array ([len (i ) - 1 for i in idx ]) + np .array (ticks_to_skip )
1402+ else :
1403+ rightend_ticks_raw = np .array ([len (i ) - 1 for i in temp_idx ]) + np .array (ticks_to_skip )
1404+ temp_length = [(len (i ) - 1 ) * 2 - 1 for i in idx ] if proportional else [(len (i ) - 1 ) for i in idx ]
1405+ rightend_ticks_contrast = np .array (temp_length ) + np .array (ticks_to_skip_contrast )
1406+ starting_ticks_raw , starting_ticks_contrast = ticks_to_skip , ticks_to_skip_contrast
1407+ else :
1408+ rightend_ticks_raw = rightend_ticks_contrast = np .array ([len (i ) - 1 for i in idx ]) + np .array (ticks_to_skip )
1409+ starting_ticks_raw = starting_ticks_contrast = ticks_to_skip
1410+
1411+ for ax , starting_ticks_current , rightend_ticks_current in zip (
1412+ [rawdata_axes , contrast_axes ],
1413+ [starting_ticks_raw , starting_ticks_contrast ],
1414+ [rightend_ticks_raw , rightend_ticks_contrast ],
1415+ ):
1416+ sns .despine (ax = ax , bottom = True )
1417+ xlim , ylim = ax .get_xlim (), ax .get_ylim ()
1418+ redraw_axes_kwargs ["y" ] = ylim [0 ]
1419+ for k , start_tick in enumerate (starting_ticks_current ):
1420+ end_tick = rightend_ticks_current [k ]
1421+ ax .hlines (
1422+ xmin = start_tick ,
1423+ xmax = end_tick ,
1424+ ** redraw_axes_kwargs
1425+ )
1426+ ax .set_xlim (xlim )
1427+ ax .set_ylim (ylim )
1428+ del redraw_axes_kwargs ["y" ]
14261429
14271430 # Add x-spine line for delta2/mini meta.
14281431 if (show_delta2 or show_mini_meta ) and not horizontal :
0 commit comments