Euphoria
colorbrewer.cc
Go to the documentation of this file.
1 #include "core/colorbrewer.h"
2 
3 #include "core/palette.h"
4 
5 #include <map>
6 
7 /*
8  * This product includes color specifications and designs developed by Cynthia
9  * Brewer (http://colorbrewer.org/).
10 
11  https://groups.google.com/forum/?fromgroups=#!topic/d3-js/iyXFgJR1JY0
12  */
13 
14 namespace eu::core
15 {
16  namespace
17  {
18  Rgbi
19  to_rgb(unsigned char r, unsigned char g, unsigned char b)
20  {
21  return Rgbi {r, g, b};
22  }
23  }
24 
25  namespace colorbrewer
26  {
27  const std::vector<Colorbrewer>&
29  {
30  static const std::vector<Colorbrewer> all =
31  {
32  /*** Diverging ***/
35 
36  /*** Qualitative ***/
39 
40  /*** Sequential ***/
44  };
45  return all;
46  }
47 
48  std::vector<SinglePalette>
49  find_palette(BrewerType* type, int* size)
50  {
51  // todo(Gustav): implement better search
52  std::vector<SinglePalette> r;
53  for(const auto& br: get_all_palettes())
54  {
55  if(type != nullptr)
56  {
57  if(br.type != *type)
58  {
59  continue;
60  }
61  }
62  if(size != nullptr)
63  {
64  auto found = br.palettes.find(*size);
65  if(found != br.palettes.end())
66  {
67  r.push_back(SinglePalette {br.name, found->second});
68  }
69  }
70  else
71  {
72  for(const auto& p: br.palettes)
73  {
74  r.push_back(SinglePalette {br.name, p.second});
75  }
76  }
77  }
78  return r;
79  }
80 
81  /*** Diverging ***/
82  const Colorbrewer&
84  {
85  static const Colorbrewer cb = Colorbrewer
86  {
87  "Spectral",
89  {
90  {
91  3,
93  {
94  Palette
95  {
96  "Spectral",
98  {
99  to_rgb(252, 141, 89),
100  to_rgb(255, 255, 191),
101  to_rgb(153, 213, 148)
102  }
103  }
104  }
105  },
106  {
107  4,
109  {
110  Palette
111  {
112  "Spectral",
113  std::array
114  {
115  to_rgb(215, 25, 28),
116  to_rgb(253, 174, 97),
117  to_rgb(171, 221, 164),
118  to_rgb(43, 131, 186)
119  }
120  }
121  }
122  },
123  {
124  5,
126  {
127  Palette
128  {
129  "Spectral",
130  std::array
131  {
132  to_rgb(215, 25, 28),
133  to_rgb(253, 174, 97),
134  to_rgb(255, 255, 191),
135  to_rgb(171, 221, 164),
136  to_rgb(43, 131, 186)
137  }
138  }
139  }
140  },
141  {
142  6,
144  {
145  Palette
146  {
147  "Spectral",
148  std::array
149  {
150  to_rgb(213, 62, 79),
151  to_rgb(252, 141, 89),
152  to_rgb(254, 224, 139),
153  to_rgb(230, 245, 152),
154  to_rgb(153, 213, 148),
155  to_rgb(50, 136, 189)
156  }
157  }
158  }
159  },
160  {
161  7,
163  {
164  Palette
165  {
166  "Spectral",
167  std::array
168  {
169  to_rgb(213, 62, 79),
170  to_rgb(252, 141, 89),
171  to_rgb(254, 224, 139),
172  to_rgb(255, 255, 191),
173  to_rgb(230, 245, 152),
174  to_rgb(153, 213, 148),
175  to_rgb(50, 136, 189)
176  }
177  }
178  }
179  },
180  {
181  8,
183  {
184  Palette
185  {
186  "Spectral",
187  std::array
188  {
189  to_rgb(213, 62, 79),
190  to_rgb(244, 109, 67),
191  to_rgb(253, 174, 97),
192  to_rgb(254, 224, 139),
193  to_rgb(230, 245, 152),
194  to_rgb(171, 221, 164),
195  to_rgb(102, 194, 165),
196  to_rgb(50, 136, 189)
197  }
198  }
199  }
200  },
201  {
202  9,
204  {
205  Palette
206  {
207  "Spectral",
208  std::array
209  {
210  to_rgb(213, 62, 79),
211  to_rgb(244, 109, 67),
212  to_rgb(253, 174, 97),
213  to_rgb(254, 224, 139),
214  to_rgb(255, 255, 191),
215  to_rgb(230, 245, 152),
216  to_rgb(171, 221, 164),
217  to_rgb(102, 194, 165),
218  to_rgb(50, 136, 189)
219  }
220  }
221  }
222  },
223  {
224  10,
226  {
227  Palette
228  {
229  "Spectral",
230  std::array
231  {
232  to_rgb(158, 1, 66),
233  to_rgb(213, 62, 79),
234  to_rgb(244, 109, 67),
235  to_rgb(253, 174, 97),
236  to_rgb(254, 224, 139),
237  to_rgb(230, 245, 152),
238  to_rgb(171, 221, 164),
239  to_rgb(102, 194, 165),
240  to_rgb(50, 136, 189),
241  to_rgb(94, 79, 162)
242  }
243  }
244  }
245  },
246  {
247  11,
249  {
250  Palette
251  {
252  "Spectral",
253  std::array
254  {
255  to_rgb(158, 1, 66),
256  to_rgb(213, 62, 79),
257  to_rgb(244, 109, 67),
258  to_rgb(253, 174, 97),
259  to_rgb(254, 224, 139),
260  to_rgb(255, 255, 191),
261  to_rgb(230, 245, 152),
262  to_rgb(171, 221, 164),
263  to_rgb(102, 194, 165),
264  to_rgb(50, 136, 189),
265  to_rgb(94, 79, 162)
266  }
267  }
268  }
269  }
270  },
272  Properties
273  {
274  BlindProperties {2, 2, 2, 0, 0, 0, 0, 0, 0},
275  PrintProperties {1, 1, 1, 0, 0, 0, 0, 0, 0},
276  CopyProperties {1, 1, 1, 0, 0, 0, 0, 0, 0},
277  ScreenProperties {1, 1, 2, 0, 0, 0, 0, 0, 0}
278  }
279  };
280  return cb;
281  }
282 
283  const Colorbrewer&
285  {
286  static const Colorbrewer cb = Colorbrewer {
287  "RdYlGn",
289  {
290  3,
292  {
293  Palette
294  {
295  "RdYlGn",
296  std::array
297  {
298  to_rgb(252, 141, 89),
299  to_rgb(255, 255, 191),
300  to_rgb(145, 207, 96)
301  }
302  }
303  }
304  },
305 
306  {
307  4,
309  {
310  Palette
311  {
312  "RdYlGn",
313  std::array
314  {
315  to_rgb(215, 25, 28),
316  to_rgb(253, 174, 97),
317  to_rgb(166, 217, 106),
318  to_rgb(26, 150, 65)
319  }
320  }
321  }
322  },
323 
324  {
325  5,
327  {
328  Palette
329  {
330  "RdYlGn",
331  std::array
332  {
333  to_rgb(215, 25, 28),
334  to_rgb(253, 174, 97),
335  to_rgb(255, 255, 191),
336  to_rgb(166, 217, 106),
337  to_rgb(26, 150, 65)
338  }
339  }
340  }
341  },
342 
343  {
344  6,
346  {
347  Palette
348  {
349  "RdYlGn",
350  std::array
351  {
352  to_rgb(215, 48, 39),
353  to_rgb(252, 141, 89),
354  to_rgb(254, 224, 139),
355  to_rgb(217, 239, 139),
356  to_rgb(145, 207, 96),
357  to_rgb(26, 152, 80)
358  }
359  }
360  }
361  },
362 
363  {
364  7,
366  {
367  Palette
368  {
369  "RdYlGn",
370  std::array
371  {
372  to_rgb(215, 48, 39),
373  to_rgb(252, 141, 89),
374  to_rgb(254, 224, 139),
375  to_rgb(255, 255, 191),
376  to_rgb(217, 239, 139),
377  to_rgb(145, 207, 96),
378  to_rgb(26, 152, 80)
379  }
380  }
381  }
382  },
383 
384 {
385  8,
387  {
388  Palette
389  {
390  "RdYlGn",
391  std::array
392  {
393  to_rgb(215, 48, 39),
394  to_rgb(244, 109, 67),
395  to_rgb(253, 174, 97),
396  to_rgb(254, 224, 139),
397  to_rgb(217, 239, 139),
398  to_rgb(166, 217, 106),
399  to_rgb(102, 189, 99),
400  to_rgb(26, 152, 80)
401  }
402  }
403  }
404  },
405 
406 {
407  9,
409  {
410  Palette
411  {
412  "RdYlGn",
413  std::array
414  {
415  to_rgb(215, 48, 39),
416  to_rgb(244, 109, 67),
417  to_rgb(253, 174, 97),
418  to_rgb(254, 224, 139),
419  to_rgb(255, 255, 191),
420  to_rgb(217, 239, 139),
421  to_rgb(166, 217, 106),
422  to_rgb(102, 189, 99),
423  to_rgb(26, 152, 80)
424  }
425  }
426  }
427  },
428 
429 {
430  10,
432  {
433  Palette
434  {
435  "RdYlGn",
436  std::array
437  {
438  to_rgb(165, 0, 38),
439  to_rgb(215, 48, 39),
440  to_rgb(244, 109, 67),
441  to_rgb(253, 174, 97),
442  to_rgb(254, 224, 139),
443  to_rgb(217, 239, 139),
444  to_rgb(166, 217, 106),
445  to_rgb(102, 189, 99),
446  to_rgb(26, 152, 80),
447  to_rgb(0, 104, 55)
448  }
449  }
450  }
451  },
452 
453 {
454  11,
456  {
457  Palette
458  {
459  "RdYlGn",
460  std::array
461  {
462  to_rgb(165, 0, 38),
463  to_rgb(215, 48, 39),
464  to_rgb(244, 109, 67),
465  to_rgb(253, 174, 97),
466  to_rgb(254, 224, 139),
467  to_rgb(255, 255, 191),
468  to_rgb(217, 239, 139),
469  to_rgb(166, 217, 106),
470  to_rgb(102, 189, 99),
471  to_rgb(26, 152, 80),
472  to_rgb(0, 104, 55)
473  }
474  }
475  }
476  }},
478  Properties {BlindProperties {2, 2, 2, 0, 0, 0, 0, 0, 0},
479  PrintProperties {1, 1, 1, 2, 0, 0, 0, 0, 0},
480  CopyProperties {0},
481  ScreenProperties {1, 1, 1, 0, 0, 0, 0, 0, 0}}};
482  return cb;
483  }
484 
485  const Colorbrewer&
487  {
488  static const Colorbrewer cb = Colorbrewer {
489  "RdBu",
491  {
492  3,
494  {
495  Palette
496  {
497  "RdBu",
498  std::array
499  {
500  to_rgb(239, 138, 98),
501  to_rgb(247, 247, 247),
502  to_rgb(103, 169, 207)
503  }
504  }
505  }
506  },
507 
508  {
509  4,
511  {
512  Palette
513  {
514  "RdBu",
515  std::array
516  {
517  to_rgb(202, 0, 32),
518  to_rgb(244, 165, 130),
519  to_rgb(146, 197, 222),
520  to_rgb(5, 113, 176)
521  }
522  }
523  }
524  },
525 
526  {
527  5,
529  {
530  Palette
531  {
532  "RdBu",
533  std::array
534  {
535  to_rgb(202, 0, 32),
536  to_rgb(244, 165, 130),
537  to_rgb(247, 247, 247),
538  to_rgb(146, 197, 222),
539  to_rgb(5, 113, 176)
540  }
541  }
542  }
543  },
544 
545  {
546  6,
548  {
549  Palette
550  {
551  "RdBu",
552  std::array
553  {
554  to_rgb(178, 24, 43),
555  to_rgb(239, 138, 98),
556  to_rgb(253, 219, 199),
557  to_rgb(209, 229, 240),
558  to_rgb(103, 169, 207),
559  to_rgb(33, 102, 172)
560  }
561  }
562  }
563  },
564 
565  {
566  7,
568  {
569  Palette
570  {
571  "RdBu",
572  std::array
573  {
574  to_rgb(178, 24, 43),
575  to_rgb(239, 138, 98),
576  to_rgb(253, 219, 199),
577  to_rgb(247, 247, 247),
578  to_rgb(209, 229, 240),
579  to_rgb(103, 169, 207),
580  to_rgb(33, 102, 172)
581  }
582  }
583  }
584  },
585 
586 {
587  8,
589  {
590  Palette
591  {
592  "RdBu",
593  std::array
594  {
595  to_rgb(178, 24, 43),
596  to_rgb(214, 96, 77),
597  to_rgb(244, 165, 130),
598  to_rgb(253, 219, 199),
599  to_rgb(209, 229, 240),
600  to_rgb(146, 197, 222),
601  to_rgb(67, 147, 195),
602  to_rgb(33, 102, 172)
603  }
604  }
605  }
606  },
607 
608 {
609  9,
611  {
612  Palette
613  {
614  "RdBu",
615  std::array
616  {
617  to_rgb(178, 24, 43),
618  to_rgb(214, 96, 77),
619  to_rgb(244, 165, 130),
620  to_rgb(253, 219, 199),
621  to_rgb(247, 247, 247),
622  to_rgb(209, 229, 240),
623  to_rgb(146, 197, 222),
624  to_rgb(67, 147, 195),
625  to_rgb(33, 102, 172)
626  }
627  }
628  }
629  },
630 
631 {
632  10,
634  {
635  Palette
636  {
637  "RdBu",
638  std::array
639  {
640  to_rgb(103, 0, 31),
641  to_rgb(178, 24, 43),
642  to_rgb(214, 96, 77),
643  to_rgb(244, 165, 130),
644  to_rgb(253, 219, 199),
645  to_rgb(209, 229, 240),
646  to_rgb(146, 197, 222),
647  to_rgb(67, 147, 195),
648  to_rgb(33, 102, 172),
649  to_rgb(5, 48, 97)
650  }
651  }
652  }
653  },
654 
655 {
656  11,
658  {
659  Palette
660  {
661  "RdBu",
662  std::array
663  {
664  to_rgb(103, 0, 31),
665  to_rgb(178, 24, 43),
666  to_rgb(214, 96, 77),
667  to_rgb(244, 165, 130),
668  to_rgb(253, 219, 199),
669  to_rgb(247, 247, 247),
670  to_rgb(209, 229, 240),
671  to_rgb(146, 197, 222),
672  to_rgb(67, 147, 195),
673  to_rgb(33, 102, 172),
674  to_rgb(5, 48, 97)
675  }
676  }
677  }
678  }},
681  PrintProperties {1, 1, 1, 1, 0, 0, 0, 0, 0},
682  CopyProperties {0},
683  ScreenProperties {1, 1, 1, 0, 0, 0, 0, 0, 0}}};
684  return cb;
685  }
686 
687  const Colorbrewer&
689  {
690  static const Colorbrewer cb = Colorbrewer {
691  "PiYG",
693  {
694  3,
696  {
697  Palette
698  {
699  "PiYG",
700  std::array
701  {
702  to_rgb(233, 163, 201),
703  to_rgb(247, 247, 247),
704  to_rgb(161, 215, 106)
705  }
706  }
707  }
708  },
709 
710  {
711  4,
713  {
714  Palette
715  {
716  "PiYG",
717  std::array
718  {
719  to_rgb(208, 28, 139),
720  to_rgb(241, 182, 218),
721  to_rgb(184, 225, 134),
722  to_rgb(77, 172, 38)
723  }
724  }
725  }
726  },
727 
728  {
729  5,
731  {
732  Palette
733  {
734  "PiYG",
735  std::array
736  {
737  to_rgb(208, 28, 139),
738  to_rgb(241, 182, 218),
739  to_rgb(247, 247, 247),
740  to_rgb(184, 225, 134),
741  to_rgb(77, 172, 38)
742  }
743  }
744  }
745  },
746 
747  {
748  6,
750  {
751  Palette
752  {
753  "PiYG",
754  std::array
755  {
756  to_rgb(197, 27, 125),
757  to_rgb(233, 163, 201),
758  to_rgb(253, 224, 239),
759  to_rgb(230, 245, 208),
760  to_rgb(161, 215, 106),
761  to_rgb(77, 146, 33)
762  }
763  }
764  }
765  },
766 
767  {
768  7,
770  {
771  Palette
772  {
773  "PiYG",
774  std::array
775  {
776  to_rgb(197, 27, 125),
777  to_rgb(233, 163, 201),
778  to_rgb(253, 224, 239),
779  to_rgb(247, 247, 247),
780  to_rgb(230, 245, 208),
781  to_rgb(161, 215, 106),
782  to_rgb(77, 146, 33)
783  }
784  }
785  }
786  },
787 
788 {
789  8,
791  {
792  Palette
793  {
794  "PiYG",
795  std::array
796  {
797  to_rgb(197, 27, 125),
798  to_rgb(222, 119, 174),
799  to_rgb(241, 182, 218),
800  to_rgb(253, 224, 239),
801  to_rgb(230, 245, 208),
802  to_rgb(184, 225, 134),
803  to_rgb(127, 188, 65),
804  to_rgb(77, 146, 33)
805  }
806  }
807  }
808  },
809 
810 {
811  9,
813  {
814  Palette
815  {
816  "PiYG",
817  std::array
818  {
819  to_rgb(197, 27, 125),
820  to_rgb(222, 119, 174),
821  to_rgb(241, 182, 218),
822  to_rgb(253, 224, 239),
823  to_rgb(247, 247, 247),
824  to_rgb(230, 245, 208),
825  to_rgb(184, 225, 134),
826  to_rgb(127, 188, 65),
827  to_rgb(77, 146, 33)
828  }
829  }
830  }
831  },
832 
833 {
834  10,
836  {
837  Palette
838  {
839  "PiYG",
840  std::array
841  {
842  to_rgb(142, 1, 82),
843  to_rgb(197, 27, 125),
844  to_rgb(222, 119, 174),
845  to_rgb(241, 182, 218),
846  to_rgb(253, 224, 239),
847  to_rgb(230, 245, 208),
848  to_rgb(184, 225, 134),
849  to_rgb(127, 188, 65),
850  to_rgb(77, 146, 33),
851  to_rgb(39, 100, 25)
852  }
853  }
854  }
855  },
856 
857 {
858  11,
860  {
861  Palette
862  {
863  "PiYG",
864  std::array
865  {
866  to_rgb(142, 1, 82),
867  to_rgb(197, 27, 125),
868  to_rgb(222, 119, 174),
869  to_rgb(241, 182, 218),
870  to_rgb(253, 224, 239),
871  to_rgb(247, 247, 247),
872  to_rgb(230, 245, 208),
873  to_rgb(184, 225, 134),
874  to_rgb(127, 188, 65),
875  to_rgb(77, 146, 33),
876  to_rgb(39, 100, 25)
877  }
878  }
879  }
880  }},
883  PrintProperties {1, 1, 2, 0, 0, 0, 0, 0, 0},
884  CopyProperties {0},
885  ScreenProperties {1, 1, 2, 0, 0, 0, 0, 0, 0}}};
886  return cb;
887  }
888 
889  const Colorbrewer&
891  {
892  static const Colorbrewer cb = Colorbrewer {
893  "PRGn",
895  {
896  3,
898  {
899  Palette
900  {
901  "PRGn",
902  std::array
903  {
904  to_rgb(175, 141, 195),
905  to_rgb(247, 247, 247),
906  to_rgb(127, 191, 123)
907  }
908  }
909  }
910  },
911 
912  {
913  4,
915  {
916  Palette
917  {
918  "PRGn",
919  std::array
920  {
921  to_rgb(123, 50, 148),
922  to_rgb(194, 165, 207),
923  to_rgb(166, 219, 160),
924  to_rgb(0, 136, 55)
925  }
926  }
927  }
928  },
929 
930  {
931  5,
933  {
934  Palette
935  {
936  "PRGn",
937  std::array
938  {
939  to_rgb(123, 50, 148),
940  to_rgb(194, 165, 207),
941  to_rgb(247, 247, 247),
942  to_rgb(166, 219, 160),
943  to_rgb(0, 136, 55)
944  }
945  }
946  }
947  },
948 
949  {
950  6,
952  {
953  Palette
954  {
955  "PRGn",
956  std::array
957  {
958  to_rgb(118, 42, 131),
959  to_rgb(175, 141, 195),
960  to_rgb(231, 212, 232),
961  to_rgb(217, 240, 211),
962  to_rgb(127, 191, 123),
963  to_rgb(27, 120, 55)
964  }
965  }
966  }
967  },
968 
969  {
970  7,
972  {
973  Palette
974  {
975  "PRGn",
976  std::array
977  {
978  to_rgb(118, 42, 131),
979  to_rgb(175, 141, 195),
980  to_rgb(231, 212, 232),
981  to_rgb(247, 247, 247),
982  to_rgb(217, 240, 211),
983  to_rgb(127, 191, 123),
984  to_rgb(27, 120, 55)
985  }
986  }
987  }
988  },
989 
990 {
991  8,
993  {
994  Palette
995  {
996  "PRGn",
997  std::array
998  {
999  to_rgb(118, 42, 131),
1000  to_rgb(153, 112, 171),
1001  to_rgb(194, 165, 207),
1002  to_rgb(231, 212, 232),
1003  to_rgb(217, 240, 211),
1004  to_rgb(166, 219, 160),
1005  to_rgb(90, 174, 97),
1006  to_rgb(27, 120, 55)
1007  }
1008  }
1009  }
1010  },
1011 
1012 {
1013  9,
1015  {
1016  Palette
1017  {
1018  "PRGn",
1019  std::array
1020  {
1021  to_rgb(118, 42, 131),
1022  to_rgb(153, 112, 171),
1023  to_rgb(194, 165, 207),
1024  to_rgb(231, 212, 232),
1025  to_rgb(247, 247, 247),
1026  to_rgb(217, 240, 211),
1027  to_rgb(166, 219, 160),
1028  to_rgb(90, 174, 97),
1029  to_rgb(27, 120, 55)
1030  }
1031  }
1032  }
1033  },
1034 
1035 {
1036  10,
1038  {
1039  Palette
1040  {
1041  "PRGn",
1042  std::array
1043  {
1044  to_rgb(64, 0, 75),
1045  to_rgb(118, 42, 131),
1046  to_rgb(153, 112, 171),
1047  to_rgb(194, 165, 207),
1048  to_rgb(231, 212, 232),
1049  to_rgb(217, 240, 211),
1050  to_rgb(166, 219, 160),
1051  to_rgb(90, 174, 97),
1052  to_rgb(27, 120, 55),
1053  to_rgb(0, 68, 27)
1054  }
1055  }
1056  }
1057  },
1058 
1059 {
1060  11,
1062  {
1063  Palette
1064  {
1065  "PRGn",
1066  std::array
1067  {
1068  to_rgb(64, 0, 75),
1069  to_rgb(118, 42, 131),
1070  to_rgb(153, 112, 171),
1071  to_rgb(194, 165, 207),
1072  to_rgb(231, 212, 232),
1073  to_rgb(247, 247, 247),
1074  to_rgb(217, 240, 211),
1075  to_rgb(166, 219, 160),
1076  to_rgb(90, 174, 97),
1077  to_rgb(27, 120, 55),
1078  to_rgb(0, 68, 27)
1079  }
1080  }
1081  }
1082  }},
1085  PrintProperties {1, 1, 1, 1, 0, 0, 0, 0, 0},
1086  CopyProperties {0},
1087  ScreenProperties {1, 1, 2, 2, 0, 0, 0, 0, 0}}};
1088  return cb;
1089  }
1090 
1091  const Colorbrewer&
1093  {
1094  static const Colorbrewer cb = Colorbrewer {
1095  "RdYlBu",
1097  {
1098  3,
1100  {
1101  Palette
1102  {
1103  "RdYlBu",
1104  std::array
1105  {
1106  to_rgb(252, 141, 89),
1107  to_rgb(255, 255, 191),
1108  to_rgb(145, 191, 219)
1109  }
1110  }
1111  }
1112  },
1113 
1114  {
1115  4,
1117  {
1118  Palette
1119  {
1120  "RdYlBu",
1121  std::array
1122  {
1123  to_rgb(215, 25, 28),
1124  to_rgb(253, 174, 97),
1125  to_rgb(171, 217, 233),
1126  to_rgb(44, 123, 182)
1127  }
1128  }
1129  }
1130  },
1131 
1132  {
1133  5,
1135  {
1136  Palette
1137  {
1138  "RdYlBu",
1139  std::array
1140  {
1141  to_rgb(215, 25, 28),
1142  to_rgb(253, 174, 97),
1143  to_rgb(255, 255, 191),
1144  to_rgb(171, 217, 233),
1145  to_rgb(44, 123, 182)
1146  }
1147  }
1148  }
1149  },
1150 
1151  {
1152  6,
1154  {
1155  Palette
1156  {
1157  "RdYlBu",
1158  std::array
1159  {
1160  to_rgb(215, 48, 39),
1161  to_rgb(252, 141, 89),
1162  to_rgb(254, 224, 144),
1163  to_rgb(224, 243, 248),
1164  to_rgb(145, 191, 219),
1165  to_rgb(69, 117, 180)
1166  }
1167  }
1168  }
1169  },
1170 
1171  {
1172  7,
1174  {
1175  Palette
1176  {
1177  "RdYlBu",
1178  std::array
1179  {
1180  to_rgb(215, 48, 39),
1181  to_rgb(252, 141, 89),
1182  to_rgb(254, 224, 144),
1183  to_rgb(255, 255, 191),
1184  to_rgb(224, 243, 248),
1185  to_rgb(145, 191, 219),
1186  to_rgb(69, 117, 180)
1187  }
1188  }
1189  }
1190  },
1191 
1192 {
1193  8,
1195  {
1196  Palette
1197  {
1198  "RdYlBu",
1199  std::array
1200  {
1201  to_rgb(215, 48, 39),
1202  to_rgb(244, 109, 67),
1203  to_rgb(253, 174, 97),
1204  to_rgb(254, 224, 144),
1205  to_rgb(224, 243, 248),
1206  to_rgb(171, 217, 233),
1207  to_rgb(116, 173, 209),
1208  to_rgb(69, 117, 180)
1209  }
1210  }
1211  }
1212  },
1213 
1214 {
1215  9,
1217  {
1218  Palette
1219  {
1220  "RdYlBu",
1221  std::array
1222  {
1223  to_rgb(215, 48, 39),
1224  to_rgb(244, 109, 67),
1225  to_rgb(253, 174, 97),
1226  to_rgb(254, 224, 144),
1227  to_rgb(255, 255, 191),
1228  to_rgb(224, 243, 248),
1229  to_rgb(171, 217, 233),
1230  to_rgb(116, 173, 209),
1231  to_rgb(69, 117, 180)
1232  }
1233  }
1234  }
1235  },
1236 
1237 {
1238  10,
1240  {
1241  Palette
1242  {
1243  "RdYlBu",
1244  std::array
1245  {
1246  to_rgb(165, 0, 38),
1247  to_rgb(215, 48, 39),
1248  to_rgb(244, 109, 67),
1249  to_rgb(253, 174, 97),
1250  to_rgb(254, 224, 144),
1251  to_rgb(224, 243, 248),
1252  to_rgb(171, 217, 233),
1253  to_rgb(116, 173, 209),
1254  to_rgb(69, 117, 180),
1255  to_rgb(49, 54, 149)
1256  }
1257  }
1258  }
1259  },
1260 
1261 {
1262  11,
1264  {
1265  Palette
1266  {
1267  "RdYlBu",
1268  std::array
1269  {
1270  to_rgb(165, 0, 38),
1271  to_rgb(215, 48, 39),
1272  to_rgb(244, 109, 67),
1273  to_rgb(253, 174, 97),
1274  to_rgb(254, 224, 144),
1275  to_rgb(255, 255, 191),
1276  to_rgb(224, 243, 248),
1277  to_rgb(171, 217, 233),
1278  to_rgb(116, 173, 209),
1279  to_rgb(69, 117, 180),
1280  to_rgb(49, 54, 149)
1281  }
1282  }
1283  }
1284  }},
1287  PrintProperties {1, 1, 1, 1, 2, 0, 0, 0, 0},
1288  CopyProperties {0},
1289  ScreenProperties {1, 1, 1, 2, 0, 0, 0, 0, 0}}};
1290  return cb;
1291  }
1292 
1293  const Colorbrewer&
1295  {
1296  static const Colorbrewer cb = Colorbrewer {
1297  "BrBG",
1299  {
1300  3,
1302  {
1303  Palette
1304  {
1305  "BrBG",
1306  std::array
1307  {
1308  to_rgb(216, 179, 101),
1309  to_rgb(245, 245, 245),
1310  to_rgb(90, 180, 172)
1311  }
1312  }
1313  }
1314  },
1315 
1316  {
1317  4,
1319  {
1320  Palette
1321  {
1322  "BrBG",
1323  std::array
1324  {
1325  to_rgb(166, 97, 26),
1326  to_rgb(223, 194, 125),
1327  to_rgb(128, 205, 193),
1328  to_rgb(1, 133, 113)
1329  }
1330  }
1331  }
1332  },
1333 
1334  {
1335  5,
1337  {
1338  Palette
1339  {
1340  "BrBG",
1341  std::array
1342  {
1343  to_rgb(166, 97, 26),
1344  to_rgb(223, 194, 125),
1345  to_rgb(245, 245, 245),
1346  to_rgb(128, 205, 193),
1347  to_rgb(1, 133, 113)
1348  }
1349  }
1350  }
1351  },
1352 
1353  {
1354  6,
1356  {
1357  Palette
1358  {
1359  "BrBG",
1360  std::array
1361  {
1362  to_rgb(140, 81, 10),
1363  to_rgb(216, 179, 101),
1364  to_rgb(246, 232, 195),
1365  to_rgb(199, 234, 229),
1366  to_rgb(90, 180, 172),
1367  to_rgb(1, 102, 94)
1368  }
1369  }
1370  }
1371  },
1372 
1373  {
1374  7,
1376  {
1377  Palette
1378  {
1379  "BrBG",
1380  std::array
1381  {
1382  to_rgb(140, 81, 10),
1383  to_rgb(216, 179, 101),
1384  to_rgb(246, 232, 195),
1385  to_rgb(245, 245, 245),
1386  to_rgb(199, 234, 229),
1387  to_rgb(90, 180, 172),
1388  to_rgb(1, 102, 94)
1389  }
1390  }
1391  }
1392  },
1393 
1394 {
1395  8,
1397  {
1398  Palette
1399  {
1400  "BrBG",
1401  std::array
1402  {
1403  to_rgb(140, 81, 10),
1404  to_rgb(191, 129, 45),
1405  to_rgb(223, 194, 125),
1406  to_rgb(246, 232, 195),
1407  to_rgb(199, 234, 229),
1408  to_rgb(128, 205, 193),
1409  to_rgb(53, 151, 143),
1410  to_rgb(1, 102, 94)
1411  }
1412  }
1413  }
1414  },
1415 
1416 {
1417  9,
1419  {
1420  Palette
1421  {
1422  "BrBG",
1423  std::array
1424  {
1425  to_rgb(140, 81, 10),
1426  to_rgb(191, 129, 45),
1427  to_rgb(223, 194, 125),
1428  to_rgb(246, 232, 195),
1429  to_rgb(245, 245, 245),
1430  to_rgb(199, 234, 229),
1431  to_rgb(128, 205, 193),
1432  to_rgb(53, 151, 143),
1433  to_rgb(1, 102, 94)
1434  }
1435  }
1436  }
1437  },
1438 
1439 {
1440  10,
1442  {
1443  Palette
1444  {
1445  "BrBG",
1446  std::array
1447  {
1448  to_rgb(84, 48, 5),
1449  to_rgb(140, 81, 10),
1450  to_rgb(191, 129, 45),
1451  to_rgb(223, 194, 125),
1452  to_rgb(246, 232, 195),
1453  to_rgb(199, 234, 229),
1454  to_rgb(128, 205, 193),
1455  to_rgb(53, 151, 143),
1456  to_rgb(1, 102, 94),
1457  to_rgb(0, 60, 48)
1458  }
1459  }
1460  }
1461  },
1462 
1463 {
1464  11,
1466  {
1467  Palette
1468  {
1469  "BrBG",
1470  std::array
1471  {
1472  to_rgb(84, 48, 5),
1473  to_rgb(140, 81, 10),
1474  to_rgb(191, 129, 45),
1475  to_rgb(223, 194, 125),
1476  to_rgb(246, 232, 195),
1477  to_rgb(245, 245, 245),
1478  to_rgb(199, 234, 229),
1479  to_rgb(128, 205, 193),
1480  to_rgb(53, 151, 143),
1481  to_rgb(1, 102, 94),
1482  to_rgb(0, 60, 48)
1483  }
1484  }
1485  }
1486  }},
1489  PrintProperties {1, 1, 1, 1, 0, 0, 0, 0, 0},
1490  CopyProperties {0},
1491  ScreenProperties {1, 1, 1, 1, 0, 0, 0, 0, 0}}};
1492  return cb;
1493  }
1494 
1495  const Colorbrewer&
1497  {
1498  static const Colorbrewer cb = Colorbrewer {
1499  "RdGy",
1501  {
1502  3,
1504  {
1505  Palette
1506  {
1507  "RdGy",
1508  std::array
1509  {
1510  to_rgb(239, 138, 98),
1511  to_rgb(255, 255, 255),
1512  to_rgb(153, 153, 153)
1513  }
1514  }
1515  }
1516  },
1517 
1518  {
1519  4,
1521  {
1522  Palette
1523  {
1524  "RdGy",
1525  std::array
1526  {
1527  to_rgb(202, 0, 32),
1528  to_rgb(244, 165, 130),
1529  to_rgb(186, 186, 186),
1530  to_rgb(64, 64, 64)
1531  }
1532  }
1533  }
1534  },
1535 
1536  {
1537  5,
1539  {
1540  Palette
1541  {
1542  "RdGy",
1543  std::array
1544  {
1545  to_rgb(202, 0, 32),
1546  to_rgb(244, 165, 130),
1547  to_rgb(255, 255, 255),
1548  to_rgb(186, 186, 186),
1549  to_rgb(64, 64, 64)
1550  }
1551  }
1552  }
1553  },
1554 
1555  {
1556  6,
1558  {
1559  Palette
1560  {
1561  "RdGy",
1562  std::array
1563  {
1564  to_rgb(178, 24, 43),
1565  to_rgb(239, 138, 98),
1566  to_rgb(253, 219, 199),
1567  to_rgb(224, 224, 224),
1568  to_rgb(153, 153, 153),
1569  to_rgb(77, 77, 77)
1570  }
1571  }
1572  }
1573  },
1574 
1575  {
1576  7,
1578  {
1579  Palette
1580  {
1581  "RdGy",
1582  std::array
1583  {
1584  to_rgb(178, 24, 43),
1585  to_rgb(239, 138, 98),
1586  to_rgb(253, 219, 199),
1587  to_rgb(255, 255, 255),
1588  to_rgb(224, 224, 224),
1589  to_rgb(153, 153, 153),
1590  to_rgb(77, 77, 77)
1591  }
1592  }
1593  }
1594  },
1595 
1596 {
1597  8,
1599  {
1600  Palette
1601  {
1602  "RdGy",
1603  std::array
1604  {
1605  to_rgb(178, 24, 43),
1606  to_rgb(214, 96, 77),
1607  to_rgb(244, 165, 130),
1608  to_rgb(253, 219, 199),
1609  to_rgb(224, 224, 224),
1610  to_rgb(186, 186, 186),
1611  to_rgb(135, 135, 135),
1612  to_rgb(77, 77, 77)
1613  }
1614  }
1615  }
1616  },
1617 
1618 {
1619  9,
1621  {
1622  Palette
1623  {
1624  "RdGy",
1625  std::array
1626  {
1627  to_rgb(178, 24, 43),
1628  to_rgb(214, 96, 77),
1629  to_rgb(244, 165, 130),
1630  to_rgb(253, 219, 199),
1631  to_rgb(255, 255, 255),
1632  to_rgb(224, 224, 224),
1633  to_rgb(186, 186, 186),
1634  to_rgb(135, 135, 135),
1635  to_rgb(77, 77, 77)
1636  }
1637  }
1638  }
1639  },
1640 
1641 {
1642  10,
1644  {
1645  Palette
1646  {
1647  "RdGy",
1648  std::array
1649  {
1650  to_rgb(103, 0, 31),
1651  to_rgb(178, 24, 43),
1652  to_rgb(214, 96, 77),
1653  to_rgb(244, 165, 130),
1654  to_rgb(253, 219, 199),
1655  to_rgb(224, 224, 224),
1656  to_rgb(186, 186, 186),
1657  to_rgb(135, 135, 135),
1658  to_rgb(77, 77, 77),
1659  to_rgb(26, 26, 26)
1660  }
1661  }
1662  }
1663  },
1664 
1665 {
1666  11,
1668  {
1669  Palette
1670  {
1671  "RdGy",
1672  std::array
1673  {
1674  to_rgb(103, 0, 31),
1675  to_rgb(178, 24, 43),
1676  to_rgb(214, 96, 77),
1677  to_rgb(244, 165, 130),
1678  to_rgb(253, 219, 199),
1679  to_rgb(255, 255, 255),
1680  to_rgb(224, 224, 224),
1681  to_rgb(186, 186, 186),
1682  to_rgb(135, 135, 135),
1683  to_rgb(77, 77, 77),
1684  to_rgb(26, 26, 26)
1685  }
1686  }
1687  }
1688  }},
1691  PrintProperties {1, 1, 1, 2, 0, 0, 0, 0, 0},
1692  CopyProperties {0},
1693  ScreenProperties {1, 1, 2, 0, 0, 0, 0, 0, 0}}};
1694  return cb;
1695  }
1696 
1697  const Colorbrewer&
1699  {
1700  static const Colorbrewer cb = Colorbrewer {
1701  "PuOr",
1703  {
1704  3,
1706  {
1707  Palette
1708  {
1709  "RdGy",
1710  std::array
1711  {
1712  to_rgb(241, 163, 64),
1713  to_rgb(247, 247, 247),
1714  to_rgb(153, 142, 195)
1715  }
1716  }
1717  }
1718  },
1719 
1720  {
1721  4,
1723  {
1724  Palette
1725  {
1726  "RdGy",
1727  std::array
1728  {
1729  to_rgb(230, 97, 1),
1730  to_rgb(253, 184, 99),
1731  to_rgb(178, 171, 210),
1732  to_rgb(94, 60, 153)
1733  }
1734  }
1735  }
1736  },
1737 
1738  {
1739  5,
1741  {
1742  Palette
1743  {
1744  "RdGy",
1745  std::array
1746  {
1747  to_rgb(230, 97, 1),
1748  to_rgb(253, 184, 99),
1749  to_rgb(247, 247, 247),
1750  to_rgb(178, 171, 210),
1751  to_rgb(94, 60, 153)
1752  }
1753  }
1754  }
1755  },
1756 
1757  {
1758  6,
1760  {
1761  Palette
1762  {
1763  "RdGy",
1764  std::array
1765  {
1766  to_rgb(179, 88, 6),
1767  to_rgb(241, 163, 64),
1768  to_rgb(254, 224, 182),
1769  to_rgb(216, 218, 235),
1770  to_rgb(153, 142, 195),
1771  to_rgb(84, 39, 136)
1772  }
1773  }
1774  }
1775  },
1776 
1777  {
1778  7,
1780  {
1781  Palette
1782  {
1783  "RdGy",
1784  std::array
1785  {
1786  to_rgb(179, 88, 6),
1787  to_rgb(241, 163, 64),
1788  to_rgb(254, 224, 182),
1789  to_rgb(247, 247, 247),
1790  to_rgb(216, 218, 235),
1791  to_rgb(153, 142, 195),
1792  to_rgb(84, 39, 136)
1793  }
1794  }
1795  }
1796  },
1797 
1798 {
1799  8,
1801  {
1802  Palette
1803  {
1804  "RdGy",
1805  std::array
1806  {
1807  to_rgb(179, 88, 6),
1808  to_rgb(224, 130, 20),
1809  to_rgb(253, 184, 99),
1810  to_rgb(254, 224, 182),
1811  to_rgb(216, 218, 235),
1812  to_rgb(178, 171, 210),
1813  to_rgb(128, 115, 172),
1814  to_rgb(84, 39, 136)
1815  }
1816  }
1817  }
1818  },
1819 
1820 {
1821  9,
1823  {
1824  Palette
1825  {
1826  "RdGy",
1827  std::array
1828  {
1829  to_rgb(179, 88, 6),
1830  to_rgb(224, 130, 20),
1831  to_rgb(253, 184, 99),
1832  to_rgb(254, 224, 182),
1833  to_rgb(247, 247, 247),
1834  to_rgb(216, 218, 235),
1835  to_rgb(178, 171, 210),
1836  to_rgb(128, 115, 172),
1837  to_rgb(84, 39, 136)
1838  }
1839  }
1840  }
1841  },
1842 
1843 {
1844  10,
1846  {
1847  Palette
1848  {
1849  "RdGy",
1850  std::array
1851  {
1852  to_rgb(127, 59, 8),
1853  to_rgb(179, 88, 6),
1854  to_rgb(224, 130, 20),
1855  to_rgb(253, 184, 99),
1856  to_rgb(254, 224, 182),
1857  to_rgb(216, 218, 235),
1858  to_rgb(178, 171, 210),
1859  to_rgb(128, 115, 172),
1860  to_rgb(84, 39, 136),
1861  to_rgb(45, 0, 75)
1862  }
1863  }
1864  }
1865  },
1866 
1867 {
1868  11,
1870  {
1871  Palette
1872  {
1873  "RdGy",
1874  std::array
1875  {
1876  to_rgb(127, 59, 8),
1877  to_rgb(179, 88, 6),
1878  to_rgb(224, 130, 20),
1879  to_rgb(253, 184, 99),
1880  to_rgb(254, 224, 182),
1881  to_rgb(247, 247, 247),
1882  to_rgb(216, 218, 235),
1883  to_rgb(178, 171, 210),
1884  to_rgb(128, 115, 172),
1885  to_rgb(84, 39, 136),
1886  to_rgb(45, 0, 75)
1887  }
1888  }
1889  }
1890  }},
1893  PrintProperties {1, 1, 2, 2, 0, 0, 0, 0, 0},
1894  CopyProperties {1, 1, 0, 0, 0, 0, 0, 0, 0},
1895  ScreenProperties {1, 1, 1, 1, 0, 0, 0, 0, 0}}};
1896  return cb;
1897  }
1898 
1899 
1900  /*** Qualitative ***/
1901  const Colorbrewer&
1903  {
1904  static const Colorbrewer cb = Colorbrewer {
1905  "Set2",
1907 
1908  {
1909  3,
1911  {
1912  Palette
1913  {
1914  "Set2",
1915  std::array
1916  {
1917  to_rgb(102, 194, 165),
1918  to_rgb(252, 141, 98),
1919  to_rgb(141, 160, 203)
1920  }
1921  }
1922  }
1923  },
1924 
1925  {
1926  4,
1928  {
1929  Palette
1930  {
1931  "Set2",
1932  std::array
1933  {
1934  to_rgb(102, 194, 165),
1935  to_rgb(252, 141, 98),
1936  to_rgb(141, 160, 203),
1937  to_rgb(231, 138, 195)
1938  }
1939  }
1940  }
1941  },
1942 
1943  {
1944  5,
1946  {
1947  Palette
1948  {
1949  "Set2",
1950  std::array
1951  {
1952  to_rgb(102, 194, 165),
1953  to_rgb(252, 141, 98),
1954  to_rgb(141, 160, 203),
1955  to_rgb(231, 138, 195),
1956  to_rgb(166, 216, 84)
1957  }
1958  }
1959  }
1960  },
1961 
1962  {
1963  6,
1965  {
1966  Palette
1967  {
1968  "Set2",
1969  std::array
1970  {
1971  to_rgb(102, 194, 165),
1972  to_rgb(252, 141, 98),
1973  to_rgb(141, 160, 203),
1974  to_rgb(231, 138, 195),
1975  to_rgb(166, 216, 84),
1976  to_rgb(255, 217, 47)
1977  }
1978  }
1979  }
1980  },
1981 
1982  {
1983  7,
1985  {
1986  Palette
1987  {
1988  "Set2",
1989  std::array
1990  {
1991  to_rgb(102, 194, 165),
1992  to_rgb(252, 141, 98),
1993  to_rgb(141, 160, 203),
1994  to_rgb(231, 138, 195),
1995  to_rgb(166, 216, 84),
1996  to_rgb(255, 217, 47),
1997  to_rgb(229, 196, 148)
1998  }
1999  }
2000  }
2001  },
2002 
2003 {
2004  8,
2006  {
2007  Palette
2008  {
2009  "Set2",
2010  std::array
2011  {
2012  to_rgb(102, 194, 165),
2013  to_rgb(252, 141, 98),
2014  to_rgb(141, 160, 203),
2015  to_rgb(231, 138, 195),
2016  to_rgb(166, 216, 84),
2017  to_rgb(255, 217, 47),
2018  to_rgb(229, 196, 148),
2019  to_rgb(179, 179, 179)
2020  }
2021  }
2022  }
2023  },
2024  },
2026  Properties {BlindProperties {1, 2, 2, 2, 0, 0, 0},
2027  PrintProperties {1, 1, 1, 2, 2, 2},
2028  CopyProperties {0},
2029  ScreenProperties {1, 1, 2, 2, 2, 2}}};
2030  return cb;
2031  }
2032 
2033  const Colorbrewer&
2035  {
2036  static const Colorbrewer cb = Colorbrewer {
2037  "Accent",
2039  {
2040  3,
2042  {
2043  Palette
2044  {
2045  "Accent",
2046  std::array
2047  {
2048  to_rgb(127, 201, 127),
2049  to_rgb(190, 174, 212),
2050  to_rgb(253, 192, 134)
2051  }
2052  }
2053  }
2054  },
2055 
2056  {
2057  4,
2059  {
2060  Palette
2061  {
2062  "Accent",
2063  std::array
2064  {
2065  to_rgb(127, 201, 127),
2066  to_rgb(190, 174, 212),
2067  to_rgb(253, 192, 134),
2068  to_rgb(255, 255, 153)
2069  }
2070  }
2071  }
2072  },
2073 
2074  {
2075  5,
2077  {
2078  Palette
2079  {
2080  "Accent",
2081  std::array
2082  {
2083  to_rgb(127, 201, 127),
2084  to_rgb(190, 174, 212),
2085  to_rgb(253, 192, 134),
2086  to_rgb(255, 255, 153),
2087  to_rgb(56, 108, 176)
2088  }
2089  }
2090  }
2091  },
2092 
2093  {
2094  6,
2096  {
2097  Palette
2098  {
2099  "Accent",
2100  std::array
2101  {
2102  to_rgb(127, 201, 127),
2103  to_rgb(190, 174, 212),
2104  to_rgb(253, 192, 134),
2105  to_rgb(255, 255, 153),
2106  to_rgb(56, 108, 176),
2107  to_rgb(240, 2, 127)
2108  }
2109  }
2110  }
2111  },
2112 
2113  {
2114  7,
2116  {
2117  Palette
2118  {
2119  "Accent",
2120  std::array
2121  {
2122  to_rgb(127, 201, 127),
2123  to_rgb(190, 174, 212),
2124  to_rgb(253, 192, 134),
2125  to_rgb(255, 255, 153),
2126  to_rgb(56, 108, 176),
2127  to_rgb(240, 2, 127),
2128  to_rgb(191, 91, 23)
2129  }
2130  }
2131  }
2132  },
2133 
2134 {
2135  8,
2137  {
2138  Palette
2139  {
2140  "Accent",
2141  std::array
2142  {
2143  to_rgb(127, 201, 127),
2144  to_rgb(190, 174, 212),
2145  to_rgb(253, 192, 134),
2146  to_rgb(255, 255, 153),
2147  to_rgb(56, 108, 176),
2148  to_rgb(240, 2, 127),
2149  to_rgb(191, 91, 23),
2150  to_rgb(102, 102, 102)
2151  }
2152  }
2153  }
2154  }},
2156  Properties {BlindProperties {2, 0, 0, 0, 0, 0, 0},
2157  PrintProperties {1, 1, 2, 2, 2, 2},
2158  CopyProperties {0},
2159  ScreenProperties {1, 1, 1, 2, 2, 2}}};
2160  return cb;
2161  }
2162 
2163  const Colorbrewer&
2165  {
2166  static const Colorbrewer cb = Colorbrewer {
2167  "Set1",
2169  {
2170  3,
2172  {
2173  Palette
2174  {
2175  "Set1",
2176  std::array
2177  {
2178  to_rgb(228, 26, 28),
2179  to_rgb(55, 126, 184),
2180  to_rgb(77, 175, 74)
2181  }
2182  }
2183  }
2184  },
2185 
2186  {
2187  4,
2189  {
2190  Palette
2191  {
2192  "Set1",
2193  std::array
2194  {
2195  to_rgb(228, 26, 28),
2196  to_rgb(55, 126, 184),
2197  to_rgb(77, 175, 74),
2198  to_rgb(152, 78, 163)
2199  }
2200  }
2201  }
2202  },
2203 
2204  {
2205  5,
2207  {
2208  Palette
2209  {
2210  "Set1",
2211  std::array
2212  {
2213  to_rgb(228, 26, 28),
2214  to_rgb(55, 126, 184),
2215  to_rgb(77, 175, 74),
2216  to_rgb(152, 78, 163),
2217  to_rgb(255, 127, 0)
2218  }
2219  }
2220  }
2221  },
2222 
2223  {
2224  6,
2226  {
2227  Palette
2228  {
2229  "Set1",
2230  std::array
2231  {
2232  to_rgb(228, 26, 28),
2233  to_rgb(55, 126, 184),
2234  to_rgb(77, 175, 74),
2235  to_rgb(152, 78, 163),
2236  to_rgb(255, 127, 0),
2237  to_rgb(255, 255, 51)
2238  }
2239  }
2240  }
2241  },
2242 
2243  {
2244  7,
2246  {
2247  Palette
2248  {
2249  "Set1",
2250  std::array
2251  {
2252  to_rgb(228, 26, 28),
2253  to_rgb(55, 126, 184),
2254  to_rgb(77, 175, 74),
2255  to_rgb(152, 78, 163),
2256  to_rgb(255, 127, 0),
2257  to_rgb(255, 255, 51),
2258  to_rgb(166, 86, 40)
2259  }
2260  }
2261  }
2262  },
2263 
2264 {
2265  8,
2267  {
2268  Palette
2269  {
2270  "Set1",
2271  std::array
2272  {
2273  to_rgb(228, 26, 28),
2274  to_rgb(55, 126, 184),
2275  to_rgb(77, 175, 74),
2276  to_rgb(152, 78, 163),
2277  to_rgb(255, 127, 0),
2278  to_rgb(255, 255, 51),
2279  to_rgb(166, 86, 40),
2280  to_rgb(247, 129, 191)
2281  }
2282  }
2283  }
2284  },
2285 
2286 {
2287  9,
2289  {
2290  Palette
2291  {
2292  "Set1",
2293  std::array
2294  {
2295  to_rgb(228, 26, 28),
2296  to_rgb(55, 126, 184),
2297  to_rgb(77, 175, 74),
2298  to_rgb(152, 78, 163),
2299  to_rgb(255, 127, 0),
2300  to_rgb(255, 255, 51),
2301  to_rgb(166, 86, 40),
2302  to_rgb(247, 129, 191),
2303  to_rgb(153, 153, 153)
2304  }
2305  }
2306  }
2307  }},
2310  return cb;
2311  }
2312 
2313  const Colorbrewer&
2315  {
2316  static const Colorbrewer cb = Colorbrewer {
2317  "Set3",
2319  {
2320  3,
2322  {
2323  Palette
2324  {
2325  "Set3",
2326  std::array
2327  {
2328  to_rgb(141, 211, 199),
2329  to_rgb(255, 255, 179),
2330  to_rgb(190, 186, 218)
2331  }
2332  }
2333  }
2334  },
2335 
2336  {
2337  4,
2339  {
2340  Palette
2341  {
2342  "Set3",
2343  std::array
2344  {
2345  to_rgb(141, 211, 199),
2346  to_rgb(255, 255, 179),
2347  to_rgb(190, 186, 218),
2348  to_rgb(251, 128, 114)
2349  }
2350  }
2351  }
2352  },
2353 
2354  {
2355  5,
2357  {
2358  Palette
2359  {
2360  "Set3",
2361  std::array
2362  {
2363  to_rgb(141, 211, 199),
2364  to_rgb(255, 255, 179),
2365  to_rgb(190, 186, 218),
2366  to_rgb(251, 128, 114),
2367  to_rgb(128, 177, 211)
2368  }
2369  }
2370  }
2371  },
2372 
2373  {
2374  6,
2376  {
2377  Palette
2378  {
2379  "Set3",
2380  std::array
2381  {
2382  to_rgb(141, 211, 199),
2383  to_rgb(255, 255, 179),
2384  to_rgb(190, 186, 218),
2385  to_rgb(251, 128, 114),
2386  to_rgb(128, 177, 211),
2387  to_rgb(253, 180, 98)
2388  }
2389  }
2390  }
2391  },
2392 
2393  {
2394  7,
2396  {
2397  Palette
2398  {
2399  "Set3",
2400  std::array
2401  {
2402  to_rgb(141, 211, 199),
2403  to_rgb(255, 255, 179),
2404  to_rgb(190, 186, 218),
2405  to_rgb(251, 128, 114),
2406  to_rgb(128, 177, 211),
2407  to_rgb(253, 180, 98),
2408  to_rgb(179, 222, 105)
2409  }
2410  }
2411  }
2412  },
2413 
2414 {
2415  8,
2417  {
2418  Palette
2419  {
2420  "Set3",
2421  std::array
2422  {
2423  to_rgb(141, 211, 199),
2424  to_rgb(255, 255, 179),
2425  to_rgb(190, 186, 218),
2426  to_rgb(251, 128, 114),
2427  to_rgb(128, 177, 211),
2428  to_rgb(253, 180, 98),
2429  to_rgb(179, 222, 105),
2430  to_rgb(252, 205, 229)
2431  }
2432  }
2433  }
2434  },
2435 
2436 {
2437  9,
2439  {
2440  Palette
2441  {
2442  "Set3",
2443  std::array
2444  {
2445  to_rgb(141, 211, 199),
2446  to_rgb(255, 255, 179),
2447  to_rgb(190, 186, 218),
2448  to_rgb(251, 128, 114),
2449  to_rgb(128, 177, 211),
2450  to_rgb(253, 180, 98),
2451  to_rgb(179, 222, 105),
2452  to_rgb(252, 205, 229),
2453  to_rgb(217, 217, 217)
2454  }
2455  }
2456  }
2457  },
2458 
2459 {
2460  10,
2462  {
2463  Palette
2464  {
2465  "Set3",
2466  std::array
2467  {
2468  to_rgb(141, 211, 199),
2469  to_rgb(255, 255, 179),
2470  to_rgb(190, 186, 218),
2471  to_rgb(251, 128, 114),
2472  to_rgb(128, 177, 211),
2473  to_rgb(253, 180, 98),
2474  to_rgb(179, 222, 105),
2475  to_rgb(252, 205, 229),
2476  to_rgb(217, 217, 217),
2477  to_rgb(188, 128, 189)
2478  }
2479  }
2480  }
2481  },
2482 
2483 {
2484  11,
2486  {
2487  Palette
2488  {
2489  "Set3",
2490  std::array
2491  {
2492  to_rgb(141, 211, 199),
2493  to_rgb(255, 255, 179),
2494  to_rgb(190, 186, 218),
2495  to_rgb(251, 128, 114),
2496  to_rgb(128, 177, 211),
2497  to_rgb(253, 180, 98),
2498  to_rgb(179, 222, 105),
2499  to_rgb(252, 205, 229),
2500  to_rgb(217, 217, 217),
2501  to_rgb(188, 128, 189),
2502  to_rgb(204, 235, 197)
2503  }
2504  }
2505  }
2506  },
2507 
2508 {
2509  12,
2511  {
2512  Palette
2513  {
2514  "Set3",
2515  std::array
2516  {
2517  to_rgb(141, 211, 199),
2518  to_rgb(255, 255, 179),
2519  to_rgb(190, 186, 218),
2520  to_rgb(251, 128, 114),
2521  to_rgb(128, 177, 211),
2522  to_rgb(253, 180, 98),
2523  to_rgb(179, 222, 105),
2524  to_rgb(252, 205, 229),
2525  to_rgb(217, 217, 217),
2526  to_rgb(188, 128, 189),
2527  to_rgb(204, 235, 197),
2528  to_rgb(255, 237, 111)
2529  }
2530  }
2531  }
2532  }},
2534  Properties {BlindProperties {2, 2, 0, 0, 0, 0, 0, 0, 0, 0},
2535  PrintProperties {1, 1, 1, 1, 1, 1, 2, 0, 0, 0},
2536  CopyProperties {1, 2, 2, 2, 2, 2, 2, 0, 0, 0},
2537  ScreenProperties {1, 1, 1, 2, 2, 2, 0, 0, 0, 0}}};
2538  return cb;
2539  }
2540 
2541  const Colorbrewer&
2543  {
2544  static const Colorbrewer cb = Colorbrewer {
2545  "Dark2",
2547  {
2548  3,
2550  {
2551  Palette
2552  {
2553  "Dark2",
2554  std::array
2555  {
2556  to_rgb(27, 158, 119),
2557  to_rgb(217, 95, 2),
2558  to_rgb(117, 112, 179)
2559  }
2560  }
2561  }
2562  },
2563 
2564  {
2565  4,
2567  {
2568  Palette
2569  {
2570  "Dark2",
2571  std::array
2572  {
2573  to_rgb(27, 158, 119),
2574  to_rgb(217, 95, 2),
2575  to_rgb(117, 112, 179),
2576  to_rgb(231, 41, 138)
2577  }
2578  }
2579  }
2580  },
2581 
2582  {
2583  5,
2585  {
2586  Palette
2587  {
2588  "Dark2",
2589  std::array
2590  {
2591  to_rgb(27, 158, 119),
2592  to_rgb(217, 95, 2),
2593  to_rgb(117, 112, 179),
2594  to_rgb(231, 41, 138),
2595  to_rgb(102, 166, 30)
2596  }
2597  }
2598  }
2599  },
2600 
2601  {
2602  6,
2604  {
2605  Palette
2606  {
2607  "Dark2",
2608  std::array
2609  {
2610  to_rgb(27, 158, 119),
2611  to_rgb(217, 95, 2),
2612  to_rgb(117, 112, 179),
2613  to_rgb(231, 41, 138),
2614  to_rgb(102, 166, 30),
2615  to_rgb(230, 171, 2)
2616  }
2617  }
2618  }
2619  },
2620 
2621  {
2622  7,
2624  {
2625  Palette
2626  {
2627  "Dark2",
2628  std::array
2629  {
2630  to_rgb(27, 158, 119),
2631  to_rgb(217, 95, 2),
2632  to_rgb(117, 112, 179),
2633  to_rgb(231, 41, 138),
2634  to_rgb(102, 166, 30),
2635  to_rgb(230, 171, 2),
2636  to_rgb(166, 118, 29)
2637  }
2638  }
2639  }
2640  },
2641 
2642 {
2643  8,
2645  {
2646  Palette
2647  {
2648  "Dark2",
2649  std::array
2650  {
2651  to_rgb(27, 158, 119),
2652  to_rgb(217, 95, 2),
2653  to_rgb(117, 112, 179),
2654  to_rgb(231, 41, 138),
2655  to_rgb(102, 166, 30),
2656  to_rgb(230, 171, 2),
2657  to_rgb(166, 118, 29),
2658  to_rgb(102, 102, 102)
2659  }
2660  }
2661  }
2662  }},
2664  Properties {BlindProperties {1, 2, 2, 2, 0, 0},
2665  PrintProperties {1},
2666  CopyProperties {0},
2667  ScreenProperties {1}}};
2668  return cb;
2669  }
2670 
2671  const Colorbrewer&
2673  {
2674  static const Colorbrewer cb = Colorbrewer {
2675  "Paired",
2677 
2678  {
2679  3,
2681  {
2682  Palette
2683  {
2684  "Paired",
2685  std::array
2686  {
2687  to_rgb(166, 206, 227),
2688  to_rgb(31, 120, 180),
2689  to_rgb(178, 223, 138)
2690  }
2691  }
2692  }
2693  },
2694 
2695  {
2696  4,
2698  {
2699  Palette
2700  {
2701  "Paired",
2702  std::array
2703  {
2704  to_rgb(166, 206, 227),
2705  to_rgb(31, 120, 180),
2706  to_rgb(178, 223, 138),
2707  to_rgb(51, 160, 44)
2708  }
2709  }
2710  }
2711  },
2712 
2713  {
2714  5,
2716  {
2717  Palette
2718  {
2719  "Paired",
2720  std::array
2721  {
2722  to_rgb(166, 206, 227),
2723  to_rgb(31, 120, 180),
2724  to_rgb(178, 223, 138),
2725  to_rgb(51, 160, 44),
2726  to_rgb(251, 154, 153)
2727  }
2728  }
2729  }
2730  },
2731 
2732  {
2733  6,
2735  {
2736  Palette
2737  {
2738  "Paired",
2739  std::array
2740  {
2741  to_rgb(166, 206, 227),
2742  to_rgb(31, 120, 180),
2743  to_rgb(178, 223, 138),
2744  to_rgb(51, 160, 44),
2745  to_rgb(251, 154, 153),
2746  to_rgb(227, 26, 28)
2747  }
2748  }
2749  }
2750  },
2751 
2752  {
2753  7,
2755  {
2756  Palette
2757  {
2758  "Paired",
2759  std::array
2760  {
2761  to_rgb(166, 206, 227),
2762  to_rgb(31, 120, 180),
2763  to_rgb(178, 223, 138),
2764  to_rgb(51, 160, 44),
2765  to_rgb(251, 154, 153),
2766  to_rgb(227, 26, 28),
2767  to_rgb(253, 191, 111)
2768  }
2769  }
2770  }
2771  },
2772 
2773 {
2774  8,
2776  {
2777  Palette
2778  {
2779  "Paired",
2780  std::array
2781  {
2782  to_rgb(166, 206, 227),
2783  to_rgb(31, 120, 180),
2784  to_rgb(178, 223, 138),
2785  to_rgb(51, 160, 44),
2786  to_rgb(251, 154, 153),
2787  to_rgb(227, 26, 28),
2788  to_rgb(253, 191, 111),
2789  to_rgb(255, 127, 0)
2790  }
2791  }
2792  }
2793  },
2794 
2795 {
2796  9,
2798  {
2799  Palette
2800  {
2801  "Paired",
2802  std::array
2803  {
2804  to_rgb(166, 206, 227),
2805  to_rgb(31, 120, 180),
2806  to_rgb(178, 223, 138),
2807  to_rgb(51, 160, 44),
2808  to_rgb(251, 154, 153),
2809  to_rgb(227, 26, 28),
2810  to_rgb(253, 191, 111),
2811  to_rgb(255, 127, 0),
2812  to_rgb(202, 178, 214)
2813  }
2814  }
2815  }
2816  },
2817 
2818 {
2819  10,
2821  {
2822  Palette
2823  {
2824  "Paired",
2825  std::array
2826  {
2827  to_rgb(166, 206, 227),
2828  to_rgb(31, 120, 180),
2829  to_rgb(178, 223, 138),
2830  to_rgb(51, 160, 44),
2831  to_rgb(251, 154, 153),
2832  to_rgb(227, 26, 28),
2833  to_rgb(253, 191, 111),
2834  to_rgb(255, 127, 0),
2835  to_rgb(202, 178, 214),
2836  to_rgb(106, 61, 154)
2837  }
2838  }
2839  }
2840  },
2841 
2842 {
2843  11,
2845  {
2846  Palette
2847  {
2848  "Paired",
2849  std::array
2850  {
2851  to_rgb(166, 206, 227),
2852  to_rgb(31, 120, 180),
2853  to_rgb(178, 223, 138),
2854  to_rgb(51, 160, 44),
2855  to_rgb(251, 154, 153),
2856  to_rgb(227, 26, 28),
2857  to_rgb(253, 191, 111),
2858  to_rgb(255, 127, 0),
2859  to_rgb(202, 178, 214),
2860  to_rgb(106, 61, 154),
2861  to_rgb(255, 255, 153)
2862  }
2863  }
2864  }
2865  },
2866 
2867 {
2868  12,
2870  {
2871  Palette
2872  {
2873  "Paired",
2874  std::array
2875  {
2876  to_rgb(166, 206, 227),
2877  to_rgb(31, 120, 180),
2878  to_rgb(178, 223, 138),
2879  to_rgb(51, 160, 44),
2880  to_rgb(251, 154, 153),
2881  to_rgb(227, 26, 28),
2882  to_rgb(253, 191, 111),
2883  to_rgb(255, 127, 0),
2884  to_rgb(202, 178, 214),
2885  to_rgb(106, 61, 154),
2886  to_rgb(255, 255, 153),
2887  to_rgb(177, 89, 40)
2888  }
2889  }
2890  }
2891  },
2892  },
2894  Properties {BlindProperties {1, 1, 2, 2, 2, 2, 0, 0, 0},
2895  PrintProperties {1, 1, 1, 1, 1, 2, 2, 2, 2},
2896  CopyProperties {0},
2897  ScreenProperties {1, 1, 1, 1, 1, 1, 1, 1, 2}}};
2898  return cb;
2899  }
2900 
2901  const Colorbrewer&
2903  {
2904  static const Colorbrewer cb = Colorbrewer {
2905  "Pastel2",
2907  {
2908  3,
2910  {
2911  Palette
2912  {
2913  "Pastel2",
2914  std::array
2915  {
2916  to_rgb(179, 226, 205),
2917  to_rgb(253, 205, 172),
2918  to_rgb(203, 213, 232)
2919  }
2920  }
2921  }
2922  },
2923 
2924  {
2925  4,
2927  {
2928  Palette
2929  {
2930  "Pastel2",
2931  std::array
2932  {
2933  to_rgb(179, 226, 205),
2934  to_rgb(253, 205, 172),
2935  to_rgb(203, 213, 232),
2936  to_rgb(244, 202, 228)
2937  }
2938  }
2939  }
2940  },
2941 
2942  {
2943  5,
2945  {
2946  Palette
2947  {
2948  "Pastel2",
2949  std::array
2950  {
2951  to_rgb(179, 226, 205),
2952  to_rgb(253, 205, 172),
2953  to_rgb(203, 213, 232),
2954  to_rgb(244, 202, 228),
2955  to_rgb(230, 245, 201)
2956  }
2957  }
2958  }
2959  },
2960 
2961  {
2962  6,
2964  {
2965  Palette
2966  {
2967  "Pastel2",
2968  std::array
2969  {
2970  to_rgb(179, 226, 205),
2971  to_rgb(253, 205, 172),
2972  to_rgb(203, 213, 232),
2973  to_rgb(244, 202, 228),
2974  to_rgb(230, 245, 201),
2975  to_rgb(255, 242, 174)
2976  }
2977  }
2978  }
2979  },
2980 
2981  {
2982  7,
2984  {
2985  Palette
2986  {
2987  "Pastel2",
2988  std::array
2989  {
2990  to_rgb(179, 226, 205),
2991  to_rgb(253, 205, 172),
2992  to_rgb(203, 213, 232),
2993  to_rgb(244, 202, 228),
2994  to_rgb(230, 245, 201),
2995  to_rgb(255, 242, 174),
2996  to_rgb(241, 226, 204)
2997  }
2998  }
2999  }
3000  },
3001 
3002 {
3003  8,
3005  {
3006  Palette
3007  {
3008  "Pastel2",
3009  std::array
3010  {
3011  to_rgb(179, 226, 205),
3012  to_rgb(253, 205, 172),
3013  to_rgb(203, 213, 232),
3014  to_rgb(244, 202, 228),
3015  to_rgb(230, 245, 201),
3016  to_rgb(255, 242, 174),
3017  to_rgb(241, 226, 204),
3018  to_rgb(204, 204, 204)
3019  }
3020  }
3021  }
3022  }},
3024  Properties {BlindProperties {2, 0, 0, 0, 0, 0},
3025  PrintProperties {2, 0, 0, 0, 0, 0},
3026  CopyProperties {0},
3027  ScreenProperties {2, 2, 0, 0, 0, 0}}};
3028  return cb;
3029  }
3030 
3031  const Colorbrewer&
3033  {
3034  static const Colorbrewer cb = Colorbrewer {
3035  "Pastel1",
3037  {
3038  3,
3040  {
3041  Palette
3042  {
3043  "Pastel1",
3044  std::array
3045  {
3046  to_rgb(251, 180, 174),
3047  to_rgb(179, 205, 227),
3048  to_rgb(204, 235, 197)
3049  }
3050  }
3051  }
3052  },
3053 
3054  {
3055  4,
3057  {
3058  Palette
3059  {
3060  "Pastel1",
3061  std::array
3062  {
3063  to_rgb(251, 180, 174),
3064  to_rgb(179, 205, 227),
3065  to_rgb(204, 235, 197),
3066  to_rgb(222, 203, 228)
3067  }
3068  }
3069  }
3070  },
3071 
3072  {
3073  5,
3075  {
3076  Palette
3077  {
3078  "Pastel1",
3079  std::array
3080  {
3081  to_rgb(251, 180, 174),
3082  to_rgb(179, 205, 227),
3083  to_rgb(204, 235, 197),
3084  to_rgb(222, 203, 228),
3085  to_rgb(254, 217, 166)
3086  }
3087  }
3088  }
3089  },
3090 
3091  {
3092  6,
3094  {
3095  Palette
3096  {
3097  "Pastel1",
3098  std::array
3099  {
3100  to_rgb(251, 180, 174),
3101  to_rgb(179, 205, 227),
3102  to_rgb(204, 235, 197),
3103  to_rgb(222, 203, 228),
3104  to_rgb(254, 217, 166),
3105  to_rgb(255, 255, 204)
3106  }
3107  }
3108  }
3109  },
3110 
3111  {
3112  7,
3114  {
3115  Palette
3116  {
3117  "Pastel1",
3118  std::array
3119  {
3120  to_rgb(251, 180, 174),
3121  to_rgb(179, 205, 227),
3122  to_rgb(204, 235, 197),
3123  to_rgb(222, 203, 228),
3124  to_rgb(254, 217, 166),
3125  to_rgb(255, 255, 204),
3126  to_rgb(229, 216, 189)
3127  }
3128  }
3129  }
3130  },
3131 
3132 {
3133  8,
3135  {
3136  Palette
3137  {
3138  "Pastel1",
3139  std::array
3140  {
3141  to_rgb(251, 180, 174),
3142  to_rgb(179, 205, 227),
3143  to_rgb(204, 235, 197),
3144  to_rgb(222, 203, 228),
3145  to_rgb(254, 217, 166),
3146  to_rgb(255, 255, 204),
3147  to_rgb(229, 216, 189),
3148  to_rgb(253, 218, 236)
3149  }
3150  }
3151  }
3152  },
3153 
3154 {
3155  9,
3157  {
3158  Palette
3159  {
3160  "Pastel1",
3161  std::array
3162  {
3163  to_rgb(251, 180, 174),
3164  to_rgb(179, 205, 227),
3165  to_rgb(204, 235, 197),
3166  to_rgb(222, 203, 228),
3167  to_rgb(254, 217, 166),
3168  to_rgb(255, 255, 204),
3169  to_rgb(229, 216, 189),
3170  to_rgb(253, 218, 236),
3171  to_rgb(242, 242, 242)
3172  }
3173  }
3174  }
3175  }},
3177  Properties {BlindProperties {2, 0, 0, 0, 0, 0, 0},
3178  PrintProperties {2, 2, 2, 0, 0, 0, 0},
3179  CopyProperties {0},
3180  ScreenProperties {2, 2, 2, 2, 0, 0, 0}}};
3181  return cb;
3182  }
3183 
3184 
3185  /*** Sequential ***/
3186  const Colorbrewer&
3188  {
3189  static const Colorbrewer cb = Colorbrewer {
3190  "OrRd",
3192  {
3193  3,
3195  {
3196  Palette
3197  {
3198  "OrRd",
3199  std::array
3200  {
3201  to_rgb(254, 232, 200),
3202  to_rgb(253, 187, 132),
3203  to_rgb(227, 74, 51)
3204  }
3205  }
3206  }
3207  },
3208 
3209  {
3210  4,
3212  {
3213  Palette
3214  {
3215  "OrRd",
3216  std::array
3217  {
3218  to_rgb(254, 240, 217),
3219  to_rgb(253, 204, 138),
3220  to_rgb(252, 141, 89),
3221  to_rgb(215, 48, 31)
3222  }
3223  }
3224  }
3225  },
3226 
3227  {
3228  5,
3230  {
3231  Palette
3232  {
3233  "OrRd",
3234  std::array
3235  {
3236  to_rgb(254, 240, 217),
3237  to_rgb(253, 204, 138),
3238  to_rgb(252, 141, 89),
3239  to_rgb(227, 74, 51),
3240  to_rgb(179, 0, 0)
3241  }
3242  }
3243  }
3244  },
3245 
3246  {
3247  6,
3249  {
3250  Palette
3251  {
3252  "OrRd",
3253  std::array
3254  {
3255  to_rgb(254, 240, 217),
3256  to_rgb(253, 212, 158),
3257  to_rgb(253, 187, 132),
3258  to_rgb(252, 141, 89),
3259  to_rgb(227, 74, 51),
3260  to_rgb(179, 0, 0)
3261  }
3262  }
3263  }
3264  },
3265 
3266  {
3267  7,
3269  {
3270  Palette
3271  {
3272  "OrRd",
3273  std::array
3274  {
3275  to_rgb(254, 240, 217),
3276  to_rgb(253, 212, 158),
3277  to_rgb(253, 187, 132),
3278  to_rgb(252, 141, 89),
3279  to_rgb(239, 101, 72),
3280  to_rgb(215, 48, 31),
3281  to_rgb(153, 0, 0)
3282  }
3283  }
3284  }
3285  },
3286 
3287 {
3288  8,
3290  {
3291  Palette
3292  {
3293  "OrRd",
3294  std::array
3295  {
3296  to_rgb(255, 247, 236),
3297  to_rgb(254, 232, 200),
3298  to_rgb(253, 212, 158),
3299  to_rgb(253, 187, 132),
3300  to_rgb(252, 141, 89),
3301  to_rgb(239, 101, 72),
3302  to_rgb(215, 48, 31),
3303  to_rgb(153, 0, 0)
3304  }
3305  }
3306  }
3307  },
3308 
3309 {
3310  9,
3312  {
3313  Palette
3314  {
3315  "OrRd",
3316  std::array
3317  {
3318  to_rgb(255, 247, 236),
3319  to_rgb(254, 232, 200),
3320  to_rgb(253, 212, 158),
3321  to_rgb(253, 187, 132),
3322  to_rgb(252, 141, 89),
3323  to_rgb(239, 101, 72),
3324  to_rgb(215, 48, 31),
3325  to_rgb(179, 0, 0),
3326  to_rgb(127, 0, 0)
3327  }
3328  }
3329  }
3330  }},
3333  PrintProperties {1, 1, 0, 0, 0, 0, 0},
3334  CopyProperties {1, 1, 2, 0, 0, 0, 0},
3335  ScreenProperties {1, 1, 1, 0, 0, 0, 0}}};
3336  return cb;
3337  }
3338 
3339  const Colorbrewer&
3341  {
3342  static const Colorbrewer cb = Colorbrewer {
3343  "PuBu",
3345  {
3346  3,
3348  {
3349  Palette
3350  {
3351  "PuBu",
3352  std::array
3353  {
3354  to_rgb(236, 231, 242),
3355  to_rgb(166, 189, 219),
3356  to_rgb(43, 140, 190)
3357  }
3358  }
3359  }
3360  },
3361 
3362  {
3363  4,
3365  {
3366  Palette
3367  {
3368  "PuBu",
3369  std::array
3370  {
3371  to_rgb(241, 238, 246),
3372  to_rgb(189, 201, 225),
3373  to_rgb(116, 169, 207),
3374  to_rgb(5, 112, 176)
3375  }
3376  }
3377  }
3378  },
3379 
3380  {
3381  5,
3383  {
3384  Palette
3385  {
3386  "PuBu",
3387  std::array
3388  {
3389  to_rgb(241, 238, 246),
3390  to_rgb(189, 201, 225),
3391  to_rgb(116, 169, 207),
3392  to_rgb(43, 140, 190),
3393  to_rgb(4, 90, 141)
3394  }
3395  }
3396  }
3397  },
3398 
3399  {
3400  6,
3402  {
3403  Palette
3404  {
3405  "PuBu",
3406  std::array
3407  {
3408  to_rgb(241, 238, 246),
3409  to_rgb(208, 209, 230),
3410  to_rgb(166, 189, 219),
3411  to_rgb(116, 169, 207),
3412  to_rgb(43, 140, 190),
3413  to_rgb(4, 90, 141)
3414  }
3415  }
3416  }
3417  },
3418 
3419  {
3420  7,
3422  {
3423  Palette
3424  {
3425  "PuBu",
3426  std::array
3427  {
3428  to_rgb(241, 238, 246),
3429  to_rgb(208, 209, 230),
3430  to_rgb(166, 189, 219),
3431  to_rgb(116, 169, 207),
3432  to_rgb(54, 144, 192),
3433  to_rgb(5, 112, 176),
3434  to_rgb(3, 78, 123)
3435  }
3436  }
3437  }
3438  },
3439 
3440 {
3441  8,
3443  {
3444  Palette
3445  {
3446  "PuBu",
3447  std::array
3448  {
3449  to_rgb(255, 247, 251),
3450  to_rgb(236, 231, 242),
3451  to_rgb(208, 209, 230),
3452  to_rgb(166, 189, 219),
3453  to_rgb(116, 169, 207),
3454  to_rgb(54, 144, 192),
3455  to_rgb(5, 112, 176),
3456  to_rgb(3, 78, 123)
3457  }
3458  }
3459  }
3460  },
3461 
3462 {
3463  9,
3465  {
3466  Palette
3467  {
3468  "PuBu",
3469  std::array
3470  {
3471  to_rgb(255, 247, 251),
3472  to_rgb(236, 231, 242),
3473  to_rgb(208, 209, 230),
3474  to_rgb(166, 189, 219),
3475  to_rgb(116, 169, 207),
3476  to_rgb(54, 144, 192),
3477  to_rgb(5, 112, 176),
3478  to_rgb(4, 90, 141),
3479  to_rgb(2, 56, 88)
3480  }
3481  }
3482  }
3483  }},
3486  PrintProperties {1, 2, 2, 0, 0, 0, 0},
3487  CopyProperties {1, 2, 0, 0, 0, 0, 0},
3488  ScreenProperties {1, 1, 2, 0, 0, 0, 0}}};
3489  return cb;
3490  }
3491 
3492  const Colorbrewer&
3494  {
3495  static const Colorbrewer cb = Colorbrewer {
3496  "BuPu",
3498  {
3499  3,
3501  {
3502  Palette
3503  {
3504  "BuPu",
3505  std::array
3506  {
3507  to_rgb(224, 236, 244),
3508  to_rgb(158, 188, 218),
3509  to_rgb(136, 86, 167)
3510  }
3511  }
3512  }
3513  },
3514 
3515  {
3516  4,
3518  {
3519  Palette
3520  {
3521  "BuPu",
3522  std::array
3523  {
3524  to_rgb(237, 248, 251),
3525  to_rgb(179, 205, 227),
3526  to_rgb(140, 150, 198),
3527  to_rgb(136, 65, 157)
3528  }
3529  }
3530  }
3531  },
3532 
3533  {
3534  5,
3536  {
3537  Palette
3538  {
3539  "BuPu",
3540  std::array
3541  {
3542  to_rgb(237, 248, 251),
3543  to_rgb(179, 205, 227),
3544  to_rgb(140, 150, 198),
3545  to_rgb(136, 86, 167),
3546  to_rgb(129, 15, 124)
3547  }
3548  }
3549  }
3550  },
3551 
3552  {
3553  6,
3555  {
3556  Palette
3557  {
3558  "BuPu",
3559  std::array
3560  {
3561  to_rgb(237, 248, 251),
3562  to_rgb(191, 211, 230),
3563  to_rgb(158, 188, 218),
3564  to_rgb(140, 150, 198),
3565  to_rgb(136, 86, 167),
3566  to_rgb(129, 15, 124)
3567  }
3568  }
3569  }
3570  },
3571 
3572  {
3573  7,
3575  {
3576  Palette
3577  {
3578  "BuPu",
3579  std::array
3580  {
3581  to_rgb(237, 248, 251),
3582  to_rgb(191, 211, 230),
3583  to_rgb(158, 188, 218),
3584  to_rgb(140, 150, 198),
3585  to_rgb(140, 107, 177),
3586  to_rgb(136, 65, 157),
3587  to_rgb(110, 1, 107)
3588  }
3589  }
3590  }
3591  },
3592 
3593 {
3594  8,
3596  {
3597  Palette
3598  {
3599  "BuPu",
3600  std::array
3601  {
3602  to_rgb(247, 252, 253),
3603  to_rgb(224, 236, 244),
3604  to_rgb(191, 211, 230),
3605  to_rgb(158, 188, 218),
3606  to_rgb(140, 150, 198),
3607  to_rgb(140, 107, 177),
3608  to_rgb(136, 65, 157),
3609  to_rgb(110, 1, 107)
3610  }
3611  }
3612  }
3613  },
3614 
3615 {
3616  9,
3618  {
3619  Palette
3620  {
3621  "BuPu",
3622  std::array
3623  {
3624  to_rgb(247, 252, 253),
3625  to_rgb(224, 236, 244),
3626  to_rgb(191, 211, 230),
3627  to_rgb(158, 188, 218),
3628  to_rgb(140, 150, 198),
3629  to_rgb(140, 107, 177),
3630  to_rgb(136, 65, 157),
3631  to_rgb(129, 15, 124),
3632  to_rgb(77, 0, 75)
3633  }
3634  }
3635  }
3636  }},
3639  PrintProperties {1, 1, 2, 2, 0, 0, 0},
3640  CopyProperties {1, 2, 0, 0, 0, 0, 0},
3641  ScreenProperties {1, 1, 1, 0, 0, 0, 0}}};
3642  return cb;
3643  }
3644 
3645  const Colorbrewer&
3647  {
3648  static const Colorbrewer cb = Colorbrewer {
3649  "Oranges",
3651  {
3652  3,
3654  {
3655  Palette
3656  {
3657  "Oranges",
3658  std::array
3659  {
3660  to_rgb(254, 230, 206),
3661  to_rgb(253, 174, 107),
3662  to_rgb(230, 85, 13)
3663  }
3664  }
3665  }
3666  },
3667 
3668  {
3669  4,
3671  {
3672  Palette
3673  {
3674  "Oranges",
3675  std::array
3676  {
3677  to_rgb(254, 237, 222),
3678  to_rgb(253, 190, 133),
3679  to_rgb(253, 141, 60),
3680  to_rgb(217, 71, 1)
3681  }
3682  }
3683  }
3684  },
3685 
3686  {
3687  5,
3689  {
3690  Palette
3691  {
3692  "Oranges",
3693  std::array
3694  {
3695  to_rgb(254, 237, 222),
3696  to_rgb(253, 190, 133),
3697  to_rgb(253, 141, 60),
3698  to_rgb(230, 85, 13),
3699  to_rgb(166, 54, 3)
3700  }
3701  }
3702  }
3703  },
3704 
3705  {
3706  6,
3708  {
3709  Palette
3710  {
3711  "Oranges",
3712  std::array
3713  {
3714  to_rgb(254, 237, 222),
3715  to_rgb(253, 208, 162),
3716  to_rgb(253, 174, 107),
3717  to_rgb(253, 141, 60),
3718  to_rgb(230, 85, 13),
3719  to_rgb(166, 54, 3)
3720  }
3721  }
3722  }
3723  },
3724 
3725  {
3726  7,
3728  {
3729  Palette
3730  {
3731  "Oranges",
3732  std::array
3733  {
3734  to_rgb(254, 237, 222),
3735  to_rgb(253, 208, 162),
3736  to_rgb(253, 174, 107),
3737  to_rgb(253, 141, 60),
3738  to_rgb(241, 105, 19),
3739  to_rgb(217, 72, 1),
3740  to_rgb(140, 45, 4)
3741  }
3742  }
3743  }
3744  },
3745 
3746 {
3747  8,
3749  {
3750  Palette
3751  {
3752  "Oranges",
3753  std::array
3754  {
3755  to_rgb(255, 245, 235),
3756  to_rgb(254, 230, 206),
3757  to_rgb(253, 208, 162),
3758  to_rgb(253, 174, 107),
3759  to_rgb(253, 141, 60),
3760  to_rgb(241, 105, 19),
3761  to_rgb(217, 72, 1),
3762  to_rgb(140, 45, 4)
3763  }
3764  }
3765  }
3766  },
3767 
3768 {
3769  9,
3771  {
3772  Palette
3773  {
3774  "Oranges",
3775  std::array
3776  {
3777  to_rgb(255, 245, 235),
3778  to_rgb(254, 230, 206),
3779  to_rgb(253, 208, 162),
3780  to_rgb(253, 174, 107),
3781  to_rgb(253, 141, 60),
3782  to_rgb(241, 105, 19),
3783  to_rgb(217, 72, 1),
3784  to_rgb(166, 54, 3),
3785  to_rgb(127, 39, 4)
3786  }
3787  }
3788  }
3789  }},
3792  PrintProperties {1, 2, 0, 0, 0, 0, 0},
3793  CopyProperties {1, 2, 2, 0, 0, 0, 0},
3794  ScreenProperties {1, 1, 1, 0, 0, 0, 0}}};
3795  return cb;
3796  }
3797 
3798  const Colorbrewer&
3800  {
3801  static const Colorbrewer cb = Colorbrewer {
3802  "BuGn",
3804  {
3805  3,
3807  {
3808  Palette
3809  {
3810  "BuGn",
3811  std::array
3812  {
3813  to_rgb(229, 245, 249),
3814  to_rgb(153, 216, 201),
3815  to_rgb(44, 162, 95)
3816  }
3817  }
3818  }
3819  },
3820 
3821  {
3822  4,
3824  {
3825  Palette
3826  {
3827  "BuGn",
3828  std::array
3829  {
3830  to_rgb(237, 248, 251),
3831  to_rgb(178, 226, 226),
3832  to_rgb(102, 194, 164),
3833  to_rgb(35, 139, 69)
3834  }
3835  }
3836  }
3837  },
3838 
3839  {
3840  5,
3842  {
3843  Palette
3844  {
3845  "BuGn",
3846  std::array
3847  {
3848  to_rgb(237, 248, 251),
3849  to_rgb(178, 226, 226),
3850  to_rgb(102, 194, 164),
3851  to_rgb(44, 162, 95),
3852  to_rgb(0, 109, 44)
3853  }
3854  }
3855  }
3856  },
3857 
3858  {
3859  6,
3861  {
3862  Palette
3863  {
3864  "BuGn",
3865  std::array
3866  {
3867  to_rgb(237, 248, 251),
3868  to_rgb(204, 236, 230),
3869  to_rgb(153, 216, 201),
3870  to_rgb(102, 194, 164),
3871  to_rgb(44, 162, 95),
3872  to_rgb(0, 109, 44)
3873  }
3874  }
3875  }
3876  },
3877 
3878  {
3879  7,
3881  {
3882  Palette
3883  {
3884  "BuGn",
3885  std::array
3886  {
3887  to_rgb(237, 248, 251),
3888  to_rgb(204, 236, 230),
3889  to_rgb(153, 216, 201),
3890  to_rgb(102, 194, 164),
3891  to_rgb(65, 174, 118),
3892  to_rgb(35, 139, 69),
3893  to_rgb(0, 88, 36)
3894  }
3895  }
3896  }
3897  },
3898 
3899 {
3900  8,
3902  {
3903  Palette
3904  {
3905  "BuGn",
3906  std::array
3907  {
3908  to_rgb(247, 252, 253),
3909  to_rgb(229, 245, 249),
3910  to_rgb(204, 236, 230),
3911  to_rgb(153, 216, 201),
3912  to_rgb(102, 194, 164),
3913  to_rgb(65, 174, 118),
3914  to_rgb(35, 139, 69),
3915  to_rgb(0, 88, 36)
3916  }
3917  }
3918  }
3919  },
3920 
3921 {
3922  9,
3924  {
3925  Palette
3926  {
3927  "BuGn",
3928  std::array
3929  {
3930  to_rgb(247, 252, 253),
3931  to_rgb(229, 245, 249),
3932  to_rgb(204, 236, 230),
3933  to_rgb(153, 216, 201),
3934  to_rgb(102, 194, 164),
3935  to_rgb(65, 174, 118),
3936  to_rgb(35, 139, 69),
3937  to_rgb(0, 109, 44),
3938  to_rgb(0, 68, 27)
3939  }
3940  }
3941  }
3942  }},
3945  PrintProperties {1, 1, 2, 0, 0, 0, 0},
3946  CopyProperties {1, 2, 0, 0, 0, 0, 0},
3947  ScreenProperties {1, 2, 0, 0, 0, 0, 0}}};
3948  return cb;
3949  }
3950 
3951  const Colorbrewer&
3953  {
3954  static const Colorbrewer cb = Colorbrewer {
3955  "YlOrBr",
3957  {
3958  3,
3960  {
3961  Palette
3962  {
3963  "YlOrBr",
3964  std::array
3965  {
3966  to_rgb(255, 247, 188),
3967  to_rgb(254, 196, 79),
3968  to_rgb(217, 95, 14)
3969  }
3970  }
3971  }
3972  },
3973 
3974  {
3975  4,
3977  {
3978  Palette
3979  {
3980  "YlOrBr",
3981  std::array
3982  {
3983  to_rgb(255, 255, 212),
3984  to_rgb(254, 217, 142),
3985  to_rgb(254, 153, 41),
3986  to_rgb(204, 76, 2)
3987  }
3988  }
3989  }
3990  },
3991 
3992  {
3993  5,
3995  {
3996  Palette
3997  {
3998  "YlOrBr",
3999  std::array
4000  {
4001  to_rgb(255, 255, 212),
4002  to_rgb(254, 217, 142),
4003  to_rgb(254, 153, 41),
4004  to_rgb(217, 95, 14),
4005  to_rgb(153, 52, 4)
4006  }
4007  }
4008  }
4009  },
4010 
4011  {
4012  6,
4014  {
4015  Palette
4016  {
4017  "YlOrBr",
4018  std::array
4019  {
4020  to_rgb(255, 255, 212),
4021  to_rgb(254, 227, 145),
4022  to_rgb(254, 196, 79),
4023  to_rgb(254, 153, 41),
4024  to_rgb(217, 95, 14),
4025  to_rgb(153, 52, 4)
4026  }
4027  }
4028  }
4029  },
4030 
4031  {
4032  7,
4034  {
4035  Palette
4036  {
4037  "YlOrBr",
4038  std::array
4039  {
4040  to_rgb(255, 255, 212),
4041  to_rgb(254, 227, 145),
4042  to_rgb(254, 196, 79),
4043  to_rgb(254, 153, 41),
4044  to_rgb(236, 112, 20),
4045  to_rgb(204, 76, 2),
4046  to_rgb(140, 45, 4)
4047  }
4048  }
4049  }
4050  },
4051 
4052 {
4053  8,
4055  {
4056  Palette
4057  {
4058  "YlOrBr",
4059  std::array
4060  {
4061  to_rgb(255, 255, 229),
4062  to_rgb(255, 247, 188),
4063  to_rgb(254, 227, 145),
4064  to_rgb(254, 196, 79),
4065  to_rgb(254, 153, 41),
4066  to_rgb(236, 112, 20),
4067  to_rgb(204, 76, 2),
4068  to_rgb(140, 45, 4)
4069  }
4070  }
4071  }
4072  },
4073 
4074 {
4075  9,
4077  {
4078  Palette
4079  {
4080  "YlOrBr",
4081  std::array
4082  {
4083  to_rgb(255, 255, 229),
4084  to_rgb(255, 247, 188),
4085  to_rgb(254, 227, 145),
4086  to_rgb(254, 196, 79),
4087  to_rgb(254, 153, 41),
4088  to_rgb(236, 112, 20),
4089  to_rgb(204, 76, 2),
4090  to_rgb(153, 52, 4),
4091  to_rgb(102, 37, 6)
4092  }
4093  }
4094  }
4095  }},
4098  PrintProperties {1, 1, 2, 0, 0, 0, 0},
4099  CopyProperties {1, 2, 2, 0, 0, 0, 0},
4100  ScreenProperties {1, 2, 0, 0, 0, 0, 0}}};
4101  return cb;
4102  }
4103 
4104  const Colorbrewer&
4106  {
4107  static const Colorbrewer cb = Colorbrewer {
4108  "YlGn",
4110  {
4111  3,
4113  {
4114  Palette
4115  {
4116  "YlGn",
4117  std::array
4118  {
4119  to_rgb(247, 252, 185),
4120  to_rgb(173, 221, 142),
4121  to_rgb(49, 163, 84)
4122  }
4123  }
4124  }
4125  },
4126 
4127  {
4128  4,
4130  {
4131  Palette
4132  {
4133  "YlGn",
4134  std::array
4135  {
4136  to_rgb(255, 255, 204),
4137  to_rgb(194, 230, 153),
4138  to_rgb(120, 198, 121),
4139  to_rgb(35, 132, 67)
4140  }
4141  }
4142  }
4143  },
4144 
4145  {
4146  5,
4148  {
4149  Palette
4150  {
4151  "YlGn",
4152  std::array
4153  {
4154  to_rgb(255, 255, 204),
4155  to_rgb(194, 230, 153),
4156  to_rgb(120, 198, 121),
4157  to_rgb(49, 163, 84),
4158  to_rgb(0, 104, 55)
4159  }
4160  }
4161  }
4162  },
4163 
4164  {
4165  6,
4167  {
4168  Palette
4169  {
4170  "YlGn",
4171  std::array
4172  {
4173  to_rgb(255, 255, 204),
4174  to_rgb(217, 240, 163),
4175  to_rgb(173, 221, 142),
4176  to_rgb(120, 198, 121),
4177  to_rgb(49, 163, 84),
4178  to_rgb(0, 104, 55)
4179  }
4180  }
4181  }
4182  },
4183 
4184  {
4185  7,
4187  {
4188  Palette
4189  {
4190  "YlGn",
4191  std::array
4192  {
4193  to_rgb(255, 255, 204),
4194  to_rgb(217, 240, 163),
4195  to_rgb(173, 221, 142),
4196  to_rgb(120, 198, 121),
4197  to_rgb(65, 171, 93),
4198  to_rgb(35, 132, 67),
4199  to_rgb(0, 90, 50)
4200  }
4201  }
4202  }
4203  },
4204 
4205 {
4206  8,
4208  {
4209  Palette
4210  {
4211  "YlGn",
4212  std::array
4213  {
4214  to_rgb(255, 255, 229),
4215  to_rgb(247, 252, 185),
4216  to_rgb(217, 240, 163),
4217  to_rgb(173, 221, 142),
4218  to_rgb(120, 198, 121),
4219  to_rgb(65, 171, 93),
4220  to_rgb(35, 132, 67),
4221  to_rgb(0, 90, 50)
4222  }
4223  }
4224  }
4225  },
4226 
4227 {
4228  9,
4230  {
4231  Palette
4232  {
4233  "YlGn",
4234  std::array
4235  {
4236  to_rgb(255, 255, 229),
4237  to_rgb(247, 252, 185),
4238  to_rgb(217, 240, 163),
4239  to_rgb(173, 221, 142),
4240  to_rgb(120, 198, 121),
4241  to_rgb(65, 171, 93),
4242  to_rgb(35, 132, 67),
4243  to_rgb(0, 104, 55),
4244  to_rgb(0, 69, 41)
4245  }
4246  }
4247  }
4248  }},
4251  PrintProperties {1, 1, 1, 0, 0, 0, 0},
4252  CopyProperties {1, 2, 0, 0, 0, 0, 0},
4253  ScreenProperties {1, 1, 1, 0, 0, 0, 0}}};
4254  return cb;
4255  }
4256 
4257  const Colorbrewer&
4259  {
4260  static const Colorbrewer cb = Colorbrewer {
4261  "Reds",
4263  {
4264  3,
4266  {
4267  Palette
4268  {
4269  "Reds",
4270  std::array
4271  {
4272  to_rgb(254, 224, 210),
4273  to_rgb(252, 146, 114),
4274  to_rgb(222, 45, 38)
4275  }
4276  }
4277  }
4278  },
4279 
4280  {
4281  4,
4283  {
4284  Palette
4285  {
4286  "Reds",
4287  std::array
4288  {
4289  to_rgb(254, 229, 217),
4290  to_rgb(252, 174, 145),
4291  to_rgb(251, 106, 74),
4292  to_rgb(203, 24, 29)
4293  }
4294  }
4295  }
4296  },
4297 
4298  {
4299  5,
4301  {
4302  Palette
4303  {
4304  "Reds",
4305  std::array
4306  {
4307  to_rgb(254, 229, 217),
4308  to_rgb(252, 174, 145),
4309  to_rgb(251, 106, 74),
4310  to_rgb(222, 45, 38),
4311  to_rgb(165, 15, 21)
4312  }
4313  }
4314  }
4315  },
4316 
4317  {
4318  6,
4320  {
4321  Palette
4322  {
4323  "Reds",
4324  std::array
4325  {
4326  to_rgb(254, 229, 217),
4327  to_rgb(252, 187, 161),
4328  to_rgb(252, 146, 114),
4329  to_rgb(251, 106, 74),
4330  to_rgb(222, 45, 38),
4331  to_rgb(165, 15, 21)
4332  }
4333  }
4334  }
4335  },
4336 
4337  {
4338  7,
4340  {
4341  Palette
4342  {
4343  "Reds",
4344  std::array
4345  {
4346  to_rgb(254, 229, 217),
4347  to_rgb(252, 187, 161),
4348  to_rgb(252, 146, 114),
4349  to_rgb(251, 106, 74),
4350  to_rgb(239, 59, 44),
4351  to_rgb(203, 24, 29),
4352  to_rgb(153, 0, 13)
4353  }
4354  }
4355  }
4356  },
4357 
4358 {
4359  8,
4361  {
4362  Palette
4363  {
4364  "Reds",
4365  std::array
4366  {
4367  to_rgb(255, 245, 240),
4368  to_rgb(254, 224, 210),
4369  to_rgb(252, 187, 161),
4370  to_rgb(252, 146, 114),
4371  to_rgb(251, 106, 74),
4372  to_rgb(239, 59, 44),
4373  to_rgb(203, 24, 29),
4374  to_rgb(153, 0, 13)
4375  }
4376  }
4377  }
4378  },
4379 
4380 {
4381  9,
4383  {
4384  Palette
4385  {
4386  "Reds",
4387  std::array
4388  {
4389  to_rgb(255, 245, 240),
4390  to_rgb(254, 224, 210),
4391  to_rgb(252, 187, 161),
4392  to_rgb(252, 146, 114),
4393  to_rgb(251, 106, 74),
4394  to_rgb(239, 59, 44),
4395  to_rgb(203, 24, 29),
4396  to_rgb(165, 15, 21),
4397  to_rgb(103, 0, 13)
4398  }
4399  }
4400  }
4401  }},
4404  PrintProperties {1, 2, 2, 0, 0, 0, 0},
4405  CopyProperties {1, 2, 0, 0, 0, 0, 0},
4406  ScreenProperties {1, 2, 0, 0, 0, 0, 0}}};
4407  return cb;
4408  }
4409 
4410  const Colorbrewer&
4412  {
4413  static const Colorbrewer cb = Colorbrewer {
4414  "RdPu",
4416  {
4417  3,
4419  {
4420  Palette
4421  {
4422  "RdPu",
4423  std::array
4424  {
4425  to_rgb(253, 224, 221),
4426  to_rgb(250, 159, 181),
4427  to_rgb(197, 27, 138)
4428  }
4429  }
4430  }
4431  },
4432 
4433  {
4434  4,
4436  {
4437  Palette
4438  {
4439  "RdPu",
4440  std::array
4441  {
4442  to_rgb(254, 235, 226),
4443  to_rgb(251, 180, 185),
4444  to_rgb(247, 104, 161),
4445  to_rgb(174, 1, 126)
4446  }
4447  }
4448  }
4449  },
4450 
4451  {
4452  5,
4454  {
4455  Palette
4456  {
4457  "RdPu",
4458  std::array
4459  {
4460  to_rgb(254, 235, 226),
4461  to_rgb(251, 180, 185),
4462  to_rgb(247, 104, 161),
4463  to_rgb(197, 27, 138),
4464  to_rgb(122, 1, 119)
4465  }
4466  }
4467  }
4468  },
4469 
4470  {
4471  6,
4473  {
4474  Palette
4475  {
4476  "RdPu",
4477  std::array
4478  {
4479  to_rgb(254, 235, 226),
4480  to_rgb(252, 197, 192),
4481  to_rgb(250, 159, 181),
4482  to_rgb(247, 104, 161),
4483  to_rgb(197, 27, 138),
4484  to_rgb(122, 1, 119)
4485  }
4486  }
4487  }
4488  },
4489 
4490  {
4491  7,
4493  {
4494  Palette
4495  {
4496  "RdPu",
4497  std::array
4498  {
4499  to_rgb(254, 235, 226),
4500  to_rgb(252, 197, 192),
4501  to_rgb(250, 159, 181),
4502  to_rgb(247, 104, 161),
4503  to_rgb(221, 52, 151),
4504  to_rgb(174, 1, 126),
4505  to_rgb(122, 1, 119)
4506  }
4507  }
4508  }
4509  },
4510 
4511 {
4512  8,
4514  {
4515  Palette
4516  {
4517  "RdPu",
4518  std::array
4519  {
4520  to_rgb(255, 247, 243),
4521  to_rgb(253, 224, 221),
4522  to_rgb(252, 197, 192),
4523  to_rgb(250, 159, 181),
4524  to_rgb(247, 104, 161),
4525  to_rgb(221, 52, 151),
4526  to_rgb(174, 1, 126),
4527  to_rgb(122, 1, 119)
4528  }
4529  }
4530  }
4531  },
4532 
4533 {
4534  9,
4536  {
4537  Palette
4538  {
4539  "RdPu",
4540  std::array
4541  {
4542  to_rgb(255, 247, 243),
4543  to_rgb(253, 224, 221),
4544  to_rgb(252, 197, 192),
4545  to_rgb(250, 159, 181),
4546  to_rgb(247, 104, 161),
4547  to_rgb(221, 52, 151),
4548  to_rgb(174, 1, 126),
4549  to_rgb(122, 1, 119),
4550  to_rgb(73, 0, 106)
4551  }
4552  }
4553  }
4554  }},
4557  PrintProperties {1, 1, 1, 2, 0, 0, 0},
4558  CopyProperties {1, 2, 0, 0, 0, 0, 0},
4559  ScreenProperties {1, 1, 1, 0, 0, 0, 0}}};
4560  return cb;
4561  }
4562 
4563  const Colorbrewer&
4565  {
4566  static const Colorbrewer cb = Colorbrewer {
4567  "Greens",
4569  {
4570  3,
4572  {
4573  Palette
4574  {
4575  "Greens",
4576  std::array
4577  {
4578  to_rgb(229, 245, 224),
4579  to_rgb(161, 217, 155),
4580  to_rgb(49, 163, 84)
4581  }
4582  }
4583  }
4584  },
4585 
4586  {
4587  4,
4589  {
4590  Palette
4591  {
4592  "Greens",
4593  std::array
4594  {
4595  to_rgb(237, 248, 233),
4596  to_rgb(186, 228, 179),
4597  to_rgb(116, 196, 118),
4598  to_rgb(35, 139, 69)
4599  }
4600  }
4601  }
4602  },
4603 
4604  {
4605  5,
4607  {
4608  Palette
4609  {
4610  "Greens",
4611  std::array
4612  {
4613  to_rgb(237, 248, 233),
4614  to_rgb(186, 228, 179),
4615  to_rgb(116, 196, 118),
4616  to_rgb(49, 163, 84),
4617  to_rgb(0, 109, 44)
4618  }
4619  }
4620  }
4621  },
4622 
4623  {
4624  6,
4626  {
4627  Palette
4628  {
4629  "Greens",
4630  std::array
4631  {
4632  to_rgb(237, 248, 233),
4633  to_rgb(199, 233, 192),
4634  to_rgb(161, 217, 155),
4635  to_rgb(116, 196, 118),
4636  to_rgb(49, 163, 84),
4637  to_rgb(0, 109, 44)
4638  }
4639  }
4640  }
4641  },
4642 
4643  {
4644  7,
4646  {
4647  Palette
4648  {
4649  "Greens",
4650  std::array
4651  {
4652  to_rgb(237, 248, 233),
4653  to_rgb(199, 233, 192),
4654  to_rgb(161, 217, 155),
4655  to_rgb(116, 196, 118),
4656  to_rgb(65, 171, 93),
4657  to_rgb(35, 139, 69),
4658  to_rgb(0, 90, 50)
4659  }
4660  }
4661  }
4662  },
4663 
4664 {
4665  8,
4667  {
4668  Palette
4669  {
4670  "Greens",
4671  std::array
4672  {
4673  to_rgb(247, 252, 245),
4674  to_rgb(229, 245, 224),
4675  to_rgb(199, 233, 192),
4676  to_rgb(161, 217, 155),
4677  to_rgb(116, 196, 118),
4678  to_rgb(65, 171, 93),
4679  to_rgb(35, 139, 69),
4680  to_rgb(0, 90, 50)
4681  }
4682  }
4683  }
4684  },
4685 
4686 {
4687  9,
4689  {
4690  Palette
4691  {
4692  "Greens",
4693  std::array
4694  {
4695  to_rgb(247, 252, 245),
4696  to_rgb(229, 245, 224),
4697  to_rgb(199, 233, 192),
4698  to_rgb(161, 217, 155),
4699  to_rgb(116, 196, 118),
4700  to_rgb(65, 171, 93),
4701  to_rgb(35, 139, 69),
4702  to_rgb(0, 109, 44),
4703  to_rgb(0, 68, 27)
4704  }
4705  }
4706  }
4707  }},
4710  PrintProperties {1, 0, 0, 0, 0, 0, 0},
4711  CopyProperties {1, 2, 0, 0, 0, 0, 0},
4712  ScreenProperties {1, 2, 0, 0, 0, 0, 0}}};
4713  return cb;
4714  }
4715 
4716  const Colorbrewer&
4718  {
4719  static const Colorbrewer cb = Colorbrewer {
4720  "YlGnBu",
4722  {
4723  3,
4725  {
4726  Palette
4727  {
4728  "YlGnBu",
4729  std::array
4730  {
4731  to_rgb(237, 248, 177),
4732  to_rgb(127, 205, 187),
4733  to_rgb(44, 127, 184)
4734  }
4735  }
4736  }
4737  },
4738 
4739  {
4740  4,
4742  {
4743  Palette
4744  {
4745  "YlGnBu",
4746  std::array
4747  {
4748  to_rgb(255, 255, 204),
4749  to_rgb(161, 218, 180),
4750  to_rgb(65, 182, 196),
4751  to_rgb(34, 94, 168)
4752  }
4753  }
4754  }
4755  },
4756 
4757  {
4758  5,
4760  {
4761  Palette
4762  {
4763  "YlGnBu",
4764  std::array
4765  {
4766  to_rgb(255, 255, 204),
4767  to_rgb(161, 218, 180),
4768  to_rgb(65, 182, 196),
4769  to_rgb(44, 127, 184),
4770  to_rgb(37, 52, 148)
4771  }
4772  }
4773  }
4774  },
4775 
4776  {
4777  6,
4779  {
4780  Palette
4781  {
4782  "YlGnBu",
4783  std::array
4784  {
4785  to_rgb(255, 255, 204),
4786  to_rgb(199, 233, 180),
4787  to_rgb(127, 205, 187),
4788  to_rgb(65, 182, 196),
4789  to_rgb(44, 127, 184),
4790  to_rgb(37, 52, 148)
4791  }
4792  }
4793  }
4794  },
4795 
4796  {
4797  7,
4799  {
4800  Palette
4801  {
4802  "YlGnBu",
4803  std::array
4804  {
4805  to_rgb(255, 255, 204),
4806  to_rgb(199, 233, 180),
4807  to_rgb(127, 205, 187),
4808  to_rgb(65, 182, 196),
4809  to_rgb(29, 145, 192),
4810  to_rgb(34, 94, 168),
4811  to_rgb(12, 44, 132)
4812  }
4813  }
4814  }
4815  },
4816 
4817 {
4818  8,
4820  {
4821  Palette
4822  {
4823  "YlGnBu",
4824  std::array
4825  {
4826  to_rgb(255, 255, 217),
4827  to_rgb(237, 248, 177),
4828  to_rgb(199, 233, 180),
4829  to_rgb(127, 205, 187),
4830  to_rgb(65, 182, 196),
4831  to_rgb(29, 145, 192),
4832  to_rgb(34, 94, 168),
4833  to_rgb(12, 44, 132)
4834  }
4835  }
4836  }
4837  },
4838 
4839 {
4840  9,
4842  {
4843  Palette
4844  {
4845  "YlGnBu",
4846  std::array
4847  {
4848  to_rgb(255, 255, 217),
4849  to_rgb(237, 248, 177),
4850  to_rgb(199, 233, 180),
4851  to_rgb(127, 205, 187),
4852  to_rgb(65, 182, 196),
4853  to_rgb(29, 145, 192),
4854  to_rgb(34, 94, 168),
4855  to_rgb(37, 52, 148),
4856  to_rgb(8, 29, 88)
4857  }
4858  }
4859  }
4860  }},
4863  PrintProperties {1, 1, 1, 2, 2, 2, 0},
4864  CopyProperties {1, 2, 0, 0, 0, 0, 0},
4865  ScreenProperties {1, 1, 2, 0, 0, 0, 0}}};
4866  return cb;
4867  }
4868 
4869  const Colorbrewer&
4871  {
4872  static const Colorbrewer cb = Colorbrewer {
4873  "Purples",
4875  {
4876  3,
4878  {
4879  Palette
4880  {
4881  "Purples",
4882  std::array
4883  {
4884  to_rgb(239, 237, 245),
4885  to_rgb(188, 189, 220),
4886  to_rgb(117, 107, 177)
4887  }
4888  }
4889  }
4890  },
4891 
4892  {
4893  4,
4895  {
4896  Palette
4897  {
4898  "Purples",
4899  std::array
4900  {
4901  to_rgb(242, 240, 247),
4902  to_rgb(203, 201, 226),
4903  to_rgb(158, 154, 200),
4904  to_rgb(106, 81, 163)
4905  }
4906  }
4907  }
4908  },
4909 
4910  {
4911  5,
4913  {
4914  Palette
4915  {
4916  "Purples",
4917  std::array
4918  {
4919  to_rgb(242, 240, 247),
4920  to_rgb(203, 201, 226),
4921  to_rgb(158, 154, 200),
4922  to_rgb(117, 107, 177),
4923  to_rgb(84, 39, 143)
4924  }
4925  }
4926  }
4927  },
4928 
4929  {
4930  6,
4932  {
4933  Palette
4934  {
4935  "Purples",
4936  std::array
4937  {
4938  to_rgb(242, 240, 247),
4939  to_rgb(218, 218, 235),
4940  to_rgb(188, 189, 220),
4941  to_rgb(158, 154, 200),
4942  to_rgb(117, 107, 177),
4943  to_rgb(84, 39, 143)
4944  }
4945  }
4946  }
4947  },
4948 
4949  {
4950  7,
4952  {
4953  Palette
4954  {
4955  "Purples",
4956  std::array
4957  {
4958  to_rgb(242, 240, 247),
4959  to_rgb(218, 218, 235),
4960  to_rgb(188, 189, 220),
4961  to_rgb(158, 154, 200),
4962  to_rgb(128, 125, 186),
4963  to_rgb(106, 81, 163),
4964  to_rgb(74, 20, 134)
4965  }
4966  }
4967  }
4968  },
4969 
4970 {
4971  8,
4973  {
4974  Palette
4975  {
4976  "Purples",
4977  std::array
4978  {
4979  to_rgb(252, 251, 253),
4980  to_rgb(239, 237, 245),
4981  to_rgb(218, 218, 235),
4982  to_rgb(188, 189, 220),
4983  to_rgb(158, 154, 200),
4984  to_rgb(128, 125, 186),
4985  to_rgb(106, 81, 163),
4986  to_rgb(74, 20, 134)
4987  }
4988  }
4989  }
4990  },
4991 
4992 {
4993  9,
4995  {
4996  Palette
4997  {
4998  "Purples",
4999  std::array
5000  {
5001  to_rgb(252, 251, 253),
5002  to_rgb(239, 237, 245),
5003  to_rgb(218, 218, 235),
5004  to_rgb(188, 189, 220),
5005  to_rgb(158, 154, 200),
5006  to_rgb(128, 125, 186),
5007  to_rgb(106, 81, 163),
5008  to_rgb(84, 39, 143),
5009  to_rgb(63, 0, 125)
5010  }
5011  }
5012  }
5013  }},
5016  PrintProperties {1, 0, 0, 0, 0, 0, 0},
5017  CopyProperties {1, 2, 0, 0, 0, 0, 0},
5018  ScreenProperties {1, 0, 0, 0, 0, 0, 0}}};
5019  return cb;
5020  }
5021 
5022  const Colorbrewer&
5024  {
5025  static const Colorbrewer cb = Colorbrewer {
5026  "GnBu",
5028  {
5029  3,
5031  {
5032  Palette
5033  {
5034  "GnBu",
5035  std::array
5036  {
5037  to_rgb(224, 243, 219),
5038  to_rgb(168, 221, 181),
5039  to_rgb(67, 162, 202)
5040  }
5041  }
5042  }
5043  },
5044 
5045  {
5046  4,
5048  {
5049  Palette
5050  {
5051  "GnBu",
5052  std::array
5053  {
5054  to_rgb(240, 249, 232),
5055  to_rgb(186, 228, 188),
5056  to_rgb(123, 204, 196),
5057  to_rgb(43, 140, 190)
5058  }
5059  }
5060  }
5061  },
5062 
5063  {
5064  5,
5066  {
5067  Palette
5068  {
5069  "GnBu",
5070  std::array
5071  {
5072  to_rgb(240, 249, 232),
5073  to_rgb(186, 228, 188),
5074  to_rgb(123, 204, 196),
5075  to_rgb(67, 162, 202),
5076  to_rgb(8, 104, 172)
5077  }
5078  }
5079  }
5080  },
5081 
5082  {
5083  6,
5085  {
5086  Palette
5087  {
5088  "GnBu",
5089  std::array
5090  {
5091  to_rgb(240, 249, 232),
5092  to_rgb(204, 235, 197),
5093  to_rgb(168, 221, 181),
5094  to_rgb(123, 204, 196),
5095  to_rgb(67, 162, 202),
5096  to_rgb(8, 104, 172)
5097  }
5098  }
5099  }
5100  },
5101 
5102  {
5103  7,
5105  {
5106  Palette
5107  {
5108  "GnBu",
5109  std::array
5110  {
5111  to_rgb(240, 249, 232),
5112  to_rgb(204, 235, 197),
5113  to_rgb(168, 221, 181),
5114  to_rgb(123, 204, 196),
5115  to_rgb(78, 179, 211),
5116  to_rgb(43, 140, 190),
5117  to_rgb(8, 88, 158)
5118  }
5119  }
5120  }
5121  },
5122 
5123 {
5124  8,
5126  {
5127  Palette
5128  {
5129  "GnBu",
5130  std::array
5131  {
5132  to_rgb(247, 252, 240),
5133  to_rgb(224, 243, 219),
5134  to_rgb(204, 235, 197),
5135  to_rgb(168, 221, 181),
5136  to_rgb(123, 204, 196),
5137  to_rgb(78, 179, 211),
5138  to_rgb(43, 140, 190),
5139  to_rgb(8, 88, 158)
5140  }
5141  }
5142  }
5143  },
5144 
5145 {
5146  9,
5148  {
5149  Palette
5150  {
5151  "GnBu",
5152  std::array
5153  {
5154  to_rgb(247, 252, 240),
5155  to_rgb(224, 243, 219),
5156  to_rgb(204, 235, 197),
5157  to_rgb(168, 221, 181),
5158  to_rgb(123, 204, 196),
5159  to_rgb(78, 179, 211),
5160  to_rgb(43, 140, 190),
5161  to_rgb(8, 104, 172),
5162  to_rgb(8, 64, 129)
5163  }
5164  }
5165  }
5166  }},
5169  PrintProperties {1, 1, 1, 2, 2, 2, 0},
5170  CopyProperties {1, 2, 0, 0, 0, 0, 0},
5171  ScreenProperties {1, 1, 2, 0, 0, 0, 0}}};
5172  return cb;
5173  }
5174 
5175  const Colorbrewer&
5177  {
5178  static const Colorbrewer cb = Colorbrewer {
5179  "Greys",
5181  {
5182  3,
5184  {
5185  Palette
5186  {
5187  "Greys",
5188  std::array
5189  {
5190  to_rgb(240, 240, 240),
5191  to_rgb(189, 189, 189),
5192  to_rgb(99, 99, 99)
5193  }
5194  }
5195  }
5196  },
5197 
5198  {
5199  4,
5201  {
5202  Palette
5203  {
5204  "Greys",
5205  std::array
5206  {
5207  to_rgb(247, 247, 247),
5208  to_rgb(204, 204, 204),
5209  to_rgb(150, 150, 150),
5210  to_rgb(82, 82, 82)
5211  }
5212  }
5213  }
5214  },
5215 
5216  {
5217  5,
5219  {
5220  Palette
5221  {
5222  "Greys",
5223  std::array
5224  {
5225  to_rgb(247, 247, 247),
5226  to_rgb(204, 204, 204),
5227  to_rgb(150, 150, 150),
5228  to_rgb(99, 99, 99),
5229  to_rgb(37, 37, 37)
5230  }
5231  }
5232  }
5233  },
5234 
5235  {
5236  6,
5238  {
5239  Palette
5240  {
5241  "Greys",
5242  std::array
5243  {
5244  to_rgb(247, 247, 247),
5245  to_rgb(217, 217, 217),
5246  to_rgb(189, 189, 189),
5247  to_rgb(150, 150, 150),
5248  to_rgb(99, 99, 99),
5249  to_rgb(37, 37, 37)
5250  }
5251  }
5252  }
5253  },
5254 
5255  {
5256  7,
5258  {
5259  Palette
5260  {
5261  "Greys",
5262  std::array
5263  {
5264  to_rgb(247, 247, 247),
5265  to_rgb(217, 217, 217),
5266  to_rgb(189, 189, 189),
5267  to_rgb(150, 150, 150),
5268  to_rgb(115, 115, 115),
5269  to_rgb(82, 82, 82),
5270  to_rgb(37, 37, 37)
5271  }
5272  }
5273  }
5274  },
5275 
5276 {
5277  8,
5279  {
5280  Palette
5281  {
5282  "Greys",
5283  std::array
5284  {
5285  to_rgb(255, 255, 255),
5286  to_rgb(240, 240, 240),
5287  to_rgb(217, 217, 217),
5288  to_rgb(189, 189, 189),
5289  to_rgb(150, 150, 150),
5290  to_rgb(115, 115, 115),
5291  to_rgb(82, 82, 82),
5292  to_rgb(37, 37, 37)
5293  }
5294  }
5295  }
5296  },
5297 
5298 {
5299  9,
5301  {
5302  Palette
5303  {
5304  "Greys",
5305  std::array
5306  {
5307  to_rgb(255, 255, 255),
5308  to_rgb(240, 240, 240),
5309  to_rgb(217, 217, 217),
5310  to_rgb(189, 189, 189),
5311  to_rgb(150, 150, 150),
5312  to_rgb(115, 115, 115),
5313  to_rgb(82, 82, 82),
5314  to_rgb(37, 37, 37),
5315  to_rgb(0, 0, 0)
5316  }
5317  }
5318  }
5319  }},
5322  PrintProperties {1, 1, 2, 0, 0, 0, 0},
5323  CopyProperties {1, 0, 0, 0, 0, 0, 0},
5324  ScreenProperties {1, 2, 0, 0, 0, 0, 0}}};
5325  return cb;
5326  }
5327 
5328  const Colorbrewer&
5330  {
5331  static const Colorbrewer cb = Colorbrewer {
5332  "YlOrRd",
5334  {
5335  3,
5337  {
5338  Palette
5339  {
5340  "YlOrRd",
5341  std::array
5342  {
5343  to_rgb(255, 237, 160),
5344  to_rgb(254, 178, 76),
5345  to_rgb(240, 59, 32)
5346  }
5347  }
5348  }
5349  },
5350 
5351  {
5352  4,
5354  {
5355  Palette
5356  {
5357  "YlOrRd",
5358  std::array
5359  {
5360  to_rgb(255, 255, 178),
5361  to_rgb(254, 204, 92),
5362  to_rgb(253, 141, 60),
5363  to_rgb(227, 26, 28)
5364  }
5365  }
5366  }
5367  },
5368 
5369  {
5370  5,
5372  {
5373  Palette
5374  {
5375  "YlOrRd",
5376  std::array
5377  {
5378  to_rgb(255, 255, 178),
5379  to_rgb(254, 204, 92),
5380  to_rgb(253, 141, 60),
5381  to_rgb(240, 59, 32),
5382  to_rgb(189, 0, 38)
5383  }
5384  }
5385  }
5386  },
5387 
5388  {
5389  6,
5391  {
5392  Palette
5393  {
5394  "YlOrRd",
5395  std::array
5396  {
5397  to_rgb(255, 255, 178),
5398  to_rgb(254, 217, 118),
5399  to_rgb(254, 178, 76),
5400  to_rgb(253, 141, 60),
5401  to_rgb(240, 59, 32),
5402  to_rgb(189, 0, 38)
5403  }
5404  }
5405  }
5406  },
5407 
5408  {
5409  7,
5411  {
5412  Palette
5413  {
5414  "YlOrRd",
5415  std::array
5416  {
5417  to_rgb(255, 255, 178),
5418  to_rgb(254, 217, 118),
5419  to_rgb(254, 178, 76),
5420  to_rgb(253, 141, 60),
5421  to_rgb(252, 78, 42),
5422  to_rgb(227, 26, 28),
5423  to_rgb(177, 0, 38)
5424  }
5425  }
5426  }
5427  },
5428 
5429 {
5430  8,
5432  {
5433  Palette
5434  {
5435  "YlOrRd",
5436  std::array
5437  {
5438  to_rgb(255, 255, 204),
5439  to_rgb(255, 237, 160),
5440  to_rgb(254, 217, 118),
5441  to_rgb(254, 178, 76),
5442  to_rgb(253, 141, 60),
5443  to_rgb(252, 78, 42),
5444  to_rgb(227, 26, 28),
5445  to_rgb(177, 0, 38)
5446  }
5447  }
5448  }
5449  },
5450 
5451 {
5452  9,
5454  {
5455  Palette
5456  {
5457  "YlOrRd",
5458  std::array
5459  {
5460  to_rgb(255, 255, 204),
5461  to_rgb(255, 237, 160),
5462  to_rgb(254, 217, 118),
5463  to_rgb(254, 178, 76),
5464  to_rgb(253, 141, 60),
5465  to_rgb(252, 78, 42),
5466  to_rgb(227, 26, 28),
5467  to_rgb(189, 0, 38),
5468  to_rgb(128, 0, 38)
5469  }
5470  }
5471  }
5472  }},
5475  PrintProperties {1, 1, 2, 2, 0, 0, 0},
5476  CopyProperties {1, 2, 2, 0, 0, 0, 0},
5477  ScreenProperties {1, 2, 2, 0, 0, 0, 0}}};
5478  return cb;
5479  }
5480 
5481  const Colorbrewer&
5483  {
5484  static const Colorbrewer cb = Colorbrewer {
5485  "PuRd",
5487  {
5488  3,
5490  {
5491  Palette
5492  {
5493  "PuRd",
5494  std::array
5495  {
5496  to_rgb(231, 225, 239),
5497  to_rgb(201, 148, 199),
5498  to_rgb(221, 28, 119)
5499  }
5500  }
5501  }
5502  },
5503 
5504  {
5505  4,
5507  {
5508  Palette
5509  {
5510  "PuRd",
5511  std::array
5512  {
5513  to_rgb(241, 238, 246),
5514  to_rgb(215, 181, 216),
5515  to_rgb(223, 101, 176),
5516  to_rgb(206, 18, 86)
5517  }
5518  }
5519  }
5520  },
5521 
5522  {
5523  5,
5525  {
5526  Palette
5527  {
5528  "PuRd",
5529  std::array
5530  {
5531  to_rgb(241, 238, 246),
5532  to_rgb(215, 181, 216),
5533  to_rgb(223, 101, 176),
5534  to_rgb(221, 28, 119),
5535  to_rgb(152, 0, 67)
5536  }
5537  }
5538  }
5539  },
5540 
5541  {
5542  6,
5544  {
5545  Palette
5546  {
5547  "PuRd",
5548  std::array
5549  {
5550  to_rgb(241, 238, 246),
5551  to_rgb(212, 185, 218),
5552  to_rgb(201, 148, 199),
5553  to_rgb(223, 101, 176),
5554  to_rgb(221, 28, 119),
5555  to_rgb(152, 0, 67)
5556  }
5557  }
5558  }
5559  },
5560 
5561  {
5562  7,
5564  {
5565  Palette
5566  {
5567  "PuRd",
5568  std::array
5569  {
5570  to_rgb(241, 238, 246),
5571  to_rgb(212, 185, 218),
5572  to_rgb(201, 148, 199),
5573  to_rgb(223, 101, 176),
5574  to_rgb(231, 41, 138),
5575  to_rgb(206, 18, 86),
5576  to_rgb(145, 0, 63)
5577  }
5578  }
5579  }
5580  },
5581 
5582 {
5583  8,
5585  {
5586  Palette
5587  {
5588  "PuRd",
5589  std::array
5590  {
5591  to_rgb(247, 244, 249),
5592  to_rgb(231, 225, 239),
5593  to_rgb(212, 185, 218),
5594  to_rgb(201, 148, 199),
5595  to_rgb(223, 101, 176),
5596  to_rgb(231, 41, 138),
5597  to_rgb(206, 18, 86),
5598  to_rgb(145, 0, 63)
5599  }
5600  }
5601  }
5602  },
5603 
5604 {
5605  9,
5607  {
5608  Palette
5609  {
5610  "PuRd",
5611  std::array
5612  {
5613  to_rgb(247, 244, 249),
5614  to_rgb(231, 225, 239),
5615  to_rgb(212, 185, 218),
5616  to_rgb(201, 148, 199),
5617  to_rgb(223, 101, 176),
5618  to_rgb(231, 41, 138),
5619  to_rgb(206, 18, 86),
5620  to_rgb(152, 0, 67),
5621  to_rgb(103, 0, 31)
5622  }
5623  }
5624  }
5625  }},
5628  PrintProperties {1, 1, 1, 0, 0, 0, 0},
5629  CopyProperties {1, 2, 0, 0, 0, 0, 0},
5630  ScreenProperties {1, 1, 1, 0, 0, 0, 0}}};
5631  return cb;
5632  }
5633 
5634  const Colorbrewer&
5636  {
5637  static const Colorbrewer cb = Colorbrewer {
5638  "Blues",
5640  {
5641  3,
5643  {
5644  Palette
5645  {
5646  "Blues",
5647  std::array
5648  {
5649  to_rgb(222, 235, 247),
5650  to_rgb(158, 202, 225),
5651  to_rgb(49, 130, 189)
5652  }
5653  }
5654  }
5655  },
5656 
5657  {
5658  4,
5660  {
5661  Palette
5662  {
5663  "Blues",
5664  std::array
5665  {
5666  to_rgb(239, 243, 255),
5667  to_rgb(189, 215, 231),
5668  to_rgb(107, 174, 214),
5669  to_rgb(33, 113, 181)
5670  }
5671  }
5672  }
5673  },
5674 
5675  {
5676  5,
5678  {
5679  Palette
5680  {
5681  "Blues",
5682  std::array
5683  {
5684  to_rgb(239, 243, 255),
5685  to_rgb(189, 215, 231),
5686  to_rgb(107, 174, 214),
5687  to_rgb(49, 130, 189),
5688  to_rgb(8, 81, 156)
5689  }
5690  }
5691  }
5692  },
5693 
5694  {
5695  6,
5697  {
5698  Palette
5699  {
5700  "Blues",
5701  std::array
5702  {
5703  to_rgb(239, 243, 255),
5704  to_rgb(198, 219, 239),
5705  to_rgb(158, 202, 225),
5706  to_rgb(107, 174, 214),
5707  to_rgb(49, 130, 189),
5708  to_rgb(8, 81, 156)
5709  }
5710  }
5711  }
5712  },
5713 
5714  {
5715  7,
5717  {
5718  Palette
5719  {
5720  "Blues",
5721  std::array
5722  {
5723  to_rgb(239, 243, 255),
5724  to_rgb(198, 219, 239),
5725  to_rgb(158, 202, 225),
5726  to_rgb(107, 174, 214),
5727  to_rgb(66, 146, 198),
5728  to_rgb(33, 113, 181),
5729  to_rgb(8, 69, 148)
5730  }
5731  }
5732  }
5733  },
5734 
5735 {
5736  8,
5738  {
5739  Palette
5740  {
5741  "Blues",
5742  std::array
5743  {
5744  to_rgb(247, 251, 255),
5745  to_rgb(222, 235, 247),
5746  to_rgb(198, 219, 239),
5747  to_rgb(158, 202, 225),
5748  to_rgb(107, 174, 214),
5749  to_rgb(66, 146, 198),
5750  to_rgb(33, 113, 181),
5751  to_rgb(8, 69, 148)
5752  }
5753  }
5754  }
5755  },
5756 
5757 {
5758  9,
5760  {
5761  Palette
5762  {
5763  "Blues",
5764  std::array
5765  {
5766  to_rgb(247, 251, 255),
5767  to_rgb(222, 235, 247),
5768  to_rgb(198, 219, 239),
5769  to_rgb(158, 202, 225),
5770  to_rgb(107, 174, 214),
5771  to_rgb(66, 146, 198),
5772  to_rgb(33, 113, 181),
5773  to_rgb(8, 81, 156),
5774  to_rgb(8, 48, 107)
5775  }
5776  }
5777  }
5778  }},
5781  PrintProperties {1, 2, 0, 0, 0, 0, 0},
5782  CopyProperties {1, 0, 0, 0, 0, 0, 0},
5783  ScreenProperties {1, 2, 0, 0, 0, 0, 0}}};
5784  return cb;
5785  }
5786 
5787  const Colorbrewer&
5789  {
5790  static const Colorbrewer cb = Colorbrewer {
5791  "PuBuGn",
5793  {
5794  3,
5796  {
5797  Palette
5798  {
5799  "PuBuGn",
5800  std::array
5801  {
5802  to_rgb(236, 226, 240),
5803  to_rgb(166, 189, 219),
5804  to_rgb(28, 144, 153)
5805  }
5806  }
5807  }
5808  },
5809 
5810  {
5811  4,
5813  {
5814  Palette
5815  {
5816  "PuBuGn",
5817  std::array
5818  {
5819  to_rgb(246, 239, 247),
5820  to_rgb(189, 201, 225),
5821  to_rgb(103, 169, 207),
5822  to_rgb(2, 129, 138)
5823  }
5824  }
5825  }
5826  },
5827 
5828  {
5829  5,
5831  {
5832  Palette
5833  {
5834  "PuBuGn",
5835  std::array
5836  {
5837  to_rgb(246, 239, 247),
5838  to_rgb(189, 201, 225),
5839  to_rgb(103, 169, 207),
5840  to_rgb(28, 144, 153),
5841  to_rgb(1, 108, 89)
5842  }
5843  }
5844  }
5845  },
5846 
5847  {
5848  6,
5850  {
5851  Palette
5852  {
5853  "PuBuGn",
5854  std::array
5855  {
5856  to_rgb(246, 239, 247),
5857  to_rgb(208, 209, 230),
5858  to_rgb(166, 189, 219),
5859  to_rgb(103, 169, 207),
5860  to_rgb(28, 144, 153),
5861  to_rgb(1, 108, 89)
5862  }
5863  }
5864  }
5865  },
5866 
5867  {
5868  7,
5870  {
5871  Palette
5872  {
5873  "PuBuGn",
5874  std::array
5875  {
5876  to_rgb(246, 239, 247),
5877  to_rgb(208, 209, 230),
5878  to_rgb(166, 189, 219),
5879  to_rgb(103, 169, 207),
5880  to_rgb(54, 144, 192),
5881  to_rgb(2, 129, 138),
5882  to_rgb(1, 100, 80)
5883  }
5884  }
5885  }
5886  },
5887 
5888 {
5889  8,
5891  {
5892  Palette
5893  {
5894  "PuBuGn",
5895  std::array
5896  {
5897  to_rgb(255, 247, 251),
5898  to_rgb(236, 226, 240),
5899  to_rgb(208, 209, 230),
5900  to_rgb(166, 189, 219),
5901  to_rgb(103, 169, 207),
5902  to_rgb(54, 144, 192),
5903  to_rgb(2, 129, 138),
5904  to_rgb(1, 100, 80)
5905  }
5906  }
5907  }
5908  },
5909 
5910  {
5911  9,
5913  {
5914  Palette
5915  {
5916  "PuBuGn",
5917  std::array
5918  {
5919  to_rgb(255, 247, 251),
5920  to_rgb(236, 226, 240),
5921  to_rgb(208, 209, 230),
5922  to_rgb(166, 189, 219),
5923  to_rgb(103, 169, 207),
5924  to_rgb(54, 144, 192),
5925  to_rgb(2, 129, 138),
5926  to_rgb(1, 108, 89),
5927  to_rgb(1, 70, 54)
5928  }
5929  }
5930  }
5931  }},
5934  PrintProperties {1, 2, 2, 0, 0, 0, 0},
5935  CopyProperties {1, 2, 0, 0, 0, 0, 0},
5936  ScreenProperties {1, 1, 2, 0, 0, 0, 0}}};
5937  return cb;
5938  }
5939 
5940 
5941  }
5942 }
const std::vector< Colorbrewer > & get_all_palettes()
Definition: colorbrewer.cc:28
const Colorbrewer & get_palette_sequential_blues()
const Colorbrewer & get_palette_sequential_yl_or_rd()
std::vector< int > BlindProperties
Definition: colorbrewer.h:26
const Colorbrewer & get_palette_diverging_rd_yl_bu()
const Colorbrewer & get_palette_sequential_greys()
const Colorbrewer & get_palette_sequential_yl_gn_bu()
const Colorbrewer & get_palette_sequential_bu_gn()
const Colorbrewer & get_palette_qualitative_paired()
const Colorbrewer & get_palette_qualitative_pastel2()
const Colorbrewer & get_palette_sequential_greens()
std::vector< int > ScreenProperties
Definition: colorbrewer.h:29
const Colorbrewer & get_palette_diverging_pu_or()
const Colorbrewer & get_palette_diverging_spectral()
Definition: colorbrewer.cc:83
const Colorbrewer & get_palette_diverging_pi_y_g()
Definition: colorbrewer.cc:688
const Colorbrewer & get_palette_diverging_p_r_gn()
Definition: colorbrewer.cc:890
const Colorbrewer & get_palette_sequential_bu_pu()
const Colorbrewer & get_palette_sequential_pu_bu()
const Colorbrewer & get_palette_sequential_pu_rd()
const Colorbrewer & get_palette_qualitative_set3()
std::vector< SinglePalette > find_palette(BrewerType *type, int *size)
Definition: colorbrewer.cc:49
const Colorbrewer & get_palette_diverging_rd_bu()
Definition: colorbrewer.cc:486
const Colorbrewer & get_palette_diverging_rd_gy()
const Colorbrewer & get_palette_sequential_yl_gn()
std::vector< int > CopyProperties
Definition: colorbrewer.h:28
std::map< int, BrewerPalette > SizeToPaletteMap
Definition: colorbrewer.h:45
const Colorbrewer & get_palette_qualitative_accent()
const Colorbrewer & get_palette_sequential_rd_pu()
const Colorbrewer & get_palette_qualitative_set1()
std::vector< int > PrintProperties
Definition: colorbrewer.h:27
const Colorbrewer & get_palette_sequential_purples()
const Colorbrewer & get_palette_qualitative_set2()
const Colorbrewer & get_palette_sequential_yl_or_br()
const Colorbrewer & get_palette_sequential_oranges()
const Colorbrewer & get_palette_diverging_rd_yl_gn()
Definition: colorbrewer.cc:284
const Colorbrewer & get_palette_diverging_br_b_g()
const Colorbrewer & get_palette_sequential_reds()
const Colorbrewer & get_palette_qualitative_dark2()
const Colorbrewer & get_palette_sequential_pu_bu_gn()
const Colorbrewer & get_palette_qualitative_pastel1()
const Colorbrewer & get_palette_sequential_gn_bu()
const Colorbrewer & get_palette_sequential_or_rd()
constexpr StringMerger array
Definition: stringmerger.h:91
bool all(const std::vector< T > &ts, C check)
Definition: functional.h:105
Rgb to_rgb(const Rgbi &c)
Definition: rgb.cc:229