Commit ad15a4c
authored
ENH: Implement gapcolor for patch edges (#30967)
* ENH: Implement gapcolor for patch edges
Add support for gapcolor property in Patches, similar to the existing
gapcolor feature in Line2D and LineCollection. This allows drawing
'stripey' patch edges with two alternating colors in dashed patterns.
Use case: Drawing unfilled patches on backgrounds of unknown color,
where alternating black/white edges ensure visibility.
Changes:
- Add gapcolor parameter to Patch.__init__
- Add get_gapcolor() and set_gapcolor() methods
- Add is_dashed() method to check if edge is dashed
- Modify _draw_paths_with_artist_properties() to draw gaps first
with inverse dash pattern when gapcolor is set
- Update update_from() to copy gapcolor
- Add tests for the new functionality
Closes #30934
* Add baseline image for patch gapcolor visual test
* Add gapcolor methods to patches.pyi type stubs
* Address review feedback for patch gapcolor implementation
- Renamed gapcolor to edgegapcolor for API clarity (parameter, getter, setter)
- Made is_dashed() private as _has_dashed_edge() since it's only used internally
- Fixed linestyle detection to handle custom linestyles by checking
for non-solid styles instead of specific dashed patterns
- Moved RGBA conversion to set_edgegapcolor() for better performance
(avoids redundant conversions on window resize)
- Moved _gapcolor initialization next to _dash_pattern for code organization
- Updated type stubs and tests accordingly
* Add What's New entry and versionadded directives for edgegapcolor
* Use visible colors in What's New edgegapcolor example
Change edgecolor/edgegapcolor from black/white to orange/blue so the
gap color is actually visible against the default white background.1 parent 6dbc0c7 commit ad15a4c
5 files changed
Lines changed: 168 additions & 3 deletions
File tree
- doc/release/next_whats_new
- lib/matplotlib
- tests
- baseline_images/test_patches
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
57 | 57 | | |
58 | 58 | | |
59 | 59 | | |
| 60 | + | |
60 | 61 | | |
61 | 62 | | |
62 | 63 | | |
| |||
88 | 89 | | |
89 | 90 | | |
90 | 91 | | |
| 92 | + | |
91 | 93 | | |
92 | 94 | | |
93 | 95 | | |
94 | 96 | | |
95 | 97 | | |
96 | 98 | | |
97 | 99 | | |
| 100 | + | |
98 | 101 | | |
99 | 102 | | |
100 | 103 | | |
| |||
294 | 297 | | |
295 | 298 | | |
296 | 299 | | |
| 300 | + | |
297 | 301 | | |
298 | 302 | | |
299 | 303 | | |
| |||
442 | 446 | | |
443 | 447 | | |
444 | 448 | | |
| 449 | + | |
| 450 | + | |
| 451 | + | |
| 452 | + | |
| 453 | + | |
| 454 | + | |
| 455 | + | |
| 456 | + | |
| 457 | + | |
| 458 | + | |
| 459 | + | |
| 460 | + | |
| 461 | + | |
| 462 | + | |
| 463 | + | |
| 464 | + | |
| 465 | + | |
| 466 | + | |
| 467 | + | |
| 468 | + | |
| 469 | + | |
| 470 | + | |
| 471 | + | |
| 472 | + | |
| 473 | + | |
| 474 | + | |
| 475 | + | |
| 476 | + | |
| 477 | + | |
| 478 | + | |
| 479 | + | |
| 480 | + | |
| 481 | + | |
| 482 | + | |
| 483 | + | |
| 484 | + | |
445 | 485 | | |
446 | 486 | | |
447 | 487 | | |
| |||
618 | 658 | | |
619 | 659 | | |
620 | 660 | | |
| 661 | + | |
| 662 | + | |
| 663 | + | |
| 664 | + | |
| 665 | + | |
| 666 | + | |
| 667 | + | |
| 668 | + | |
| 669 | + | |
| 670 | + | |
| 671 | + | |
621 | 672 | | |
622 | 673 | | |
623 | 674 | | |
| |||
632 | 683 | | |
633 | 684 | | |
634 | 685 | | |
635 | | - | |
636 | | - | |
637 | 686 | | |
638 | 687 | | |
639 | 688 | | |
640 | 689 | | |
641 | | - | |
642 | 690 | | |
643 | 691 | | |
644 | 692 | | |
| |||
661 | 709 | | |
662 | 710 | | |
663 | 711 | | |
| 712 | + | |
| 713 | + | |
| 714 | + | |
| 715 | + | |
| 716 | + | |
| 717 | + | |
| 718 | + | |
| 719 | + | |
| 720 | + | |
| 721 | + | |
| 722 | + | |
| 723 | + | |
664 | 724 | | |
665 | 725 | | |
666 | 726 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
26 | 26 | | |
27 | 27 | | |
28 | 28 | | |
| 29 | + | |
29 | 30 | | |
30 | 31 | | |
31 | 32 | | |
| |||
43 | 44 | | |
44 | 45 | | |
45 | 46 | | |
| 47 | + | |
46 | 48 | | |
47 | 49 | | |
48 | 50 | | |
49 | 51 | | |
50 | 52 | | |
51 | 53 | | |
52 | 54 | | |
| 55 | + | |
53 | 56 | | |
54 | 57 | | |
55 | 58 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1101 | 1101 | | |
1102 | 1102 | | |
1103 | 1103 | | |
| 1104 | + | |
| 1105 | + | |
| 1106 | + | |
| 1107 | + | |
| 1108 | + | |
| 1109 | + | |
| 1110 | + | |
| 1111 | + | |
| 1112 | + | |
| 1113 | + | |
| 1114 | + | |
| 1115 | + | |
| 1116 | + | |
| 1117 | + | |
| 1118 | + | |
| 1119 | + | |
| 1120 | + | |
| 1121 | + | |
| 1122 | + | |
| 1123 | + | |
| 1124 | + | |
| 1125 | + | |
| 1126 | + | |
| 1127 | + | |
| 1128 | + | |
| 1129 | + | |
| 1130 | + | |
| 1131 | + | |
| 1132 | + | |
| 1133 | + | |
| 1134 | + | |
| 1135 | + | |
| 1136 | + | |
| 1137 | + | |
| 1138 | + | |
| 1139 | + | |
| 1140 | + | |
| 1141 | + | |
| 1142 | + | |
| 1143 | + | |
| 1144 | + | |
| 1145 | + | |
| 1146 | + | |
| 1147 | + | |
| 1148 | + | |
| 1149 | + | |
| 1150 | + | |
| 1151 | + | |
| 1152 | + | |
| 1153 | + | |
| 1154 | + | |
| 1155 | + | |
| 1156 | + | |
| 1157 | + | |
| 1158 | + | |
| 1159 | + | |
| 1160 | + | |
| 1161 | + | |
| 1162 | + | |
| 1163 | + | |
| 1164 | + | |
| 1165 | + | |
| 1166 | + | |
| 1167 | + | |
| 1168 | + | |
| 1169 | + | |
| 1170 | + | |
| 1171 | + | |
| 1172 | + | |
| 1173 | + | |
| 1174 | + | |
| 1175 | + | |
| 1176 | + | |
| 1177 | + | |
| 1178 | + | |
| 1179 | + | |
| 1180 | + | |
| 1181 | + | |
0 commit comments