ctioga2 0.9 → 0.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/Changelog +27 -0
- data/bin/ct2-make-movie +92 -45
- data/lib/ctioga2/commands/doc/html.rb +1 -1
- data/lib/ctioga2/commands/doc/introspection.rb +52 -0
- data/lib/ctioga2/commands/doc/markup.rb +4 -0
- data/lib/ctioga2/commands/general-commands.rb +19 -0
- data/lib/ctioga2/commands/general-functions.rb +8 -1
- data/lib/ctioga2/commands/general-types.rb +14 -3
- data/lib/ctioga2/commands/parsers/file.rb +20 -3
- data/lib/ctioga2/data/backends/backends/math.rb +1 -1
- data/lib/ctioga2/data/backends/backends/text.rb +3 -3
- data/lib/ctioga2/data/point.rb +1 -1
- data/lib/ctioga2/graphics/elements.rb +1 -0
- data/lib/ctioga2/graphics/elements/curve2d.rb +5 -0
- data/lib/ctioga2/graphics/elements/primitive.rb +16 -14
- data/lib/ctioga2/graphics/elements/style-lists.rb +353 -0
- data/lib/ctioga2/graphics/elements/subplot.rb +17 -2
- data/lib/ctioga2/graphics/elements/tangent.rb +16 -17
- data/lib/ctioga2/graphics/styles.rb +1 -0
- data/lib/ctioga2/graphics/styles/axes.rb +63 -0
- data/lib/ctioga2/graphics/styles/base.rb +13 -0
- data/lib/ctioga2/graphics/styles/colorbrewer.rb +316 -0
- data/lib/ctioga2/graphics/styles/colormap.rb +47 -7
- data/lib/ctioga2/graphics/styles/image.rb +83 -0
- data/lib/ctioga2/graphics/styles/plot.rb +43 -7
- data/lib/ctioga2/graphics/styles/sets.rb +47 -5
- data/lib/ctioga2/graphics/styles/sheet.rb +18 -3
- data/lib/ctioga2/graphics/styles/texts.rb +49 -8
- data/lib/ctioga2/graphics/subplot-commands.rb +13 -13
- data/lib/ctioga2/graphics/types.rb +42 -10
- data/lib/ctioga2/graphics/types/boundaries.rb +3 -2
- data/lib/ctioga2/graphics/types/boxes.rb +13 -0
- data/lib/ctioga2/graphics/types/dimensions.rb +4 -1
- data/lib/ctioga2/graphics/types/location.rb +13 -2
- data/lib/ctioga2/graphics/types/point.rb +86 -0
- data/lib/ctioga2/metabuilder/types/styles.rb +2 -2
- data/lib/ctioga2/plotmaker.rb +3 -0
- data/lib/ctioga2/ruby.rb +49 -0
- data/lib/ctioga2/utils.rb +34 -0
- data/lib/ctioga2/version.rb +2 -2
- metadata +8 -4
| @@ -173,11 +173,26 @@ module CTioga2 | |
| 173 173 | 
             
                      # We wrap the call within a subplot
         | 
| 174 174 | 
             
                      t.subplot(frames.to_frame_margins(t)) do
         | 
| 175 175 |  | 
| 176 | 
            +
             | 
| 176 177 | 
             
                        # Setup various aspects of the figure maker object.
         | 
| 177 178 | 
             
                        @style.setup_figure_maker(t)
         | 
| 178 179 |  | 
| 179 | 
            -
                        #  | 
| 180 | 
            -
                         | 
| 180 | 
            +
                        # 
         | 
| 181 | 
            +
                        if @style.frame_real_size
         | 
| 182 | 
            +
                          t.set_bounds([0.0, 1.0, 0.0, 1.0])
         | 
| 183 | 
            +
                          dx = t.convert_figure_to_output_dx(1.0)
         | 
| 184 | 
            +
                          dy = t.convert_figure_to_output_dy(1.0)
         | 
| 185 | 
            +
                          
         | 
| 186 | 
            +
                          frm = [0.0, dx/@style.frame_real_size, 
         | 
| 187 | 
            +
                                 -dy/@style.frame_real_size, 0.0]
         | 
| 188 | 
            +
                          @computed_boundaries = {
         | 
| 189 | 
            +
                            :bottom => Types::SimpleRange.new(frm[0], frm[1]),
         | 
| 190 | 
            +
                            :left => Types::SimpleRange.new(frm[2], frm[3]),
         | 
| 191 | 
            +
                          }                
         | 
| 192 | 
            +
                          t.set_bounds(frm)
         | 
| 193 | 
            +
                        else
         | 
| 194 | 
            +
                          t.set_bounds(real_boundaries.to_a)
         | 
| 195 | 
            +
                        end
         | 
| 181 196 |  | 
| 182 197 | 
             
                        # First, gather up all elements by depth
         | 
| 183 198 |  | 
| @@ -22,7 +22,6 @@ module CTioga2 | |
| 22 22 | 
             
                module Elements
         | 
| 23 23 |  | 
| 24 24 | 
             
                  module Tangents
         | 
| 25 | 
            -
             | 
| 26 25 | 
             
                    TangentOptions = {
         | 
| 27 26 | 
             
                      'xfrom'   => 'float',
         | 
| 28 27 | 
             
                      'xto'     => 'float',
         | 
| @@ -30,9 +29,10 @@ module CTioga2 | |
| 30 29 | 
             
                      'yto'     => 'float',
         | 
| 31 30 | 
             
                      'xextent' => 'float',
         | 
| 32 31 | 
             
                      'yextent' => 'float',
         | 
| 33 | 
            -
                      'nbavg'  =>  'integer'
         | 
| 34 | 
            -
             | 
| 35 | 
            -
             | 
| 32 | 
            +
                      'nbavg'  =>  'integer',
         | 
| 33 | 
            +
                      'base-style' => 'text'
         | 
| 34 | 
            +
                    }.update(Styles::ArrowStyle::options_hash)
         | 
| 35 | 
            +
             | 
| 36 36 | 
             
                    TiogaPrimitiveCall.
         | 
| 37 37 | 
             
                      primitive("tangent", "tangent", [ 'data-point'],
         | 
| 38 38 | 
             
                                TangentOptions) do |t, point,options|
         | 
| @@ -49,8 +49,8 @@ module CTioga2 | |
| 49 49 | 
             
                      elsif d = options['yextent']
         | 
| 50 50 | 
             
                        options['tail'] = [x, y]
         | 
| 51 51 | 
             
                        options['head'] = [x+d/slope, y + d]
         | 
| 52 | 
            -
                      elsif options['xfrom'] || options['yfrom'] || 
         | 
| 53 | 
            -
                          options['xto'] || options['yto']
         | 
| 52 | 
            +
                      elsif (options['xfrom'] || options['yfrom'] || 
         | 
| 53 | 
            +
                          options['xto'] || options['yto'])
         | 
| 54 54 | 
             
                        if xf = options['xfrom']
         | 
| 55 55 | 
             
                          options['tail'] = [xf, y - (x - xf)*slope]
         | 
| 56 56 | 
             
                        elsif yf = options['yfrom']
         | 
| @@ -71,7 +71,7 @@ module CTioga2 | |
| 71 71 | 
             
                        options['head'] = [x, y]
         | 
| 72 72 | 
             
                        dx = point.dx(nb) * 10
         | 
| 73 73 | 
             
                        options['tail'] = [x-dx, y - dx*slope]
         | 
| 74 | 
            -
                        options[' | 
| 74 | 
            +
                        options['width'] = 0
         | 
| 75 75 | 
             
                        options['tail_marker'] = "None"
         | 
| 76 76 | 
             
                      end
         | 
| 77 77 |  | 
| @@ -80,18 +80,17 @@ module CTioga2 | |
| 80 80 | 
             
                            options['head_color'])
         | 
| 81 81 | 
             
                        options['color'] = $last_curve_style.line.color
         | 
| 82 82 | 
             
                      end
         | 
| 83 | 
            -
             | 
| 84 | 
            -
                       | 
| 85 | 
            -
                       | 
| 86 | 
            -
                       | 
| 87 | 
            -
             | 
| 88 | 
            -
             | 
| 89 | 
            -
                      end
         | 
| 90 | 
            -
                      
         | 
| 91 | 
            -
                      t.show_arrow(options)
         | 
| 83 | 
            +
             | 
| 84 | 
            +
                      st_name = options['base-style'] || "base"
         | 
| 85 | 
            +
                      style = Styles::StyleSheet.style_for(Styles::ArrowStyle ,st_name)
         | 
| 86 | 
            +
                      style.set_from_hash(options)
         | 
| 87 | 
            +
             | 
| 88 | 
            +
                      style.draw_arrow(t, *options['tail'], *options['head'])
         | 
| 92 89 | 
             
                    end
         | 
| 93 90 | 
             
                  end
         | 
| 94 | 
            -
             | 
| 91 | 
            +
             | 
| 92 | 
            +
                  Commands::make_alias_for_option 'draw-tangent', 'width', 'line_width', true
         | 
| 93 | 
            +
                  Commands::make_alias_for_option 'draw-tangent', 'style', 'line_style', true
         | 
| 95 94 | 
             
                end
         | 
| 96 95 | 
             
              end
         | 
| 97 96 | 
             
            end
         | 
| @@ -18,6 +18,7 @@ require 'ctioga2/graphics/styles/arrows' | |
| 18 18 | 
             
            require 'ctioga2/graphics/styles/box'
         | 
| 19 19 | 
             
            require 'ctioga2/graphics/styles/location'
         | 
| 20 20 | 
             
            require 'ctioga2/graphics/styles/texts'
         | 
| 21 | 
            +
            require 'ctioga2/graphics/styles/image'
         | 
| 21 22 | 
             
            require 'ctioga2/graphics/styles/carrays'
         | 
| 22 23 |  | 
| 23 24 | 
             
            require 'ctioga2/graphics/styles/gradients'
         | 
| @@ -91,6 +91,7 @@ module CTioga2 | |
| 91 91 |  | 
| 92 92 | 
             
                      @tick_label_style = FullTextStyle.new
         | 
| 93 93 | 
             
                      @tick_label_style.scale = Types::Dimension.new(:dy, 0.8)
         | 
| 94 | 
            +
             | 
| 94 95 | 
             
                      @axis_label = TextLabel.new(label)
         | 
| 95 96 | 
             
                      @log = false
         | 
| 96 97 | 
             
                      @ticks_side = {}
         | 
| @@ -132,10 +133,72 @@ minor_tick_length minor_tick_width) | |
| 132 133 | 
             
                      end
         | 
| 133 134 |  | 
| 134 135 | 
             
                      spec.update(@ticks_side)
         | 
| 136 | 
            +
             | 
| 137 | 
            +
                      # We don't allow Tioga to draw tick labels by itself
         | 
| 138 | 
            +
                      type = spec['type']
         | 
| 139 | 
            +
                      spec['type'] = case spec['type']
         | 
| 140 | 
            +
                                     when Tioga::FigureConstants::AXIS_WITH_MAJOR_TICKS_AND_NUMERIC_LABELS
         | 
| 141 | 
            +
                                       Tioga::FigureConstants::AXIS_WITH_MAJOR_TICKS_ONLY
         | 
| 142 | 
            +
                                     when Tioga::FigureConstants::AXIS_WITH_TICKS_AND_NUMERIC_LABELS
         | 
| 143 | 
            +
                                       Tioga::FigureConstants::AXIS_WITH_TICKS_ONLY
         | 
| 144 | 
            +
                                     else
         | 
| 145 | 
            +
                                       spec['type']
         | 
| 146 | 
            +
                                     end
         | 
| 135 147 | 
             
                      t.show_axis(spec)
         | 
| 148 | 
            +
                      # Now, we draw axis ticks
         | 
| 149 | 
            +
                      if type == Tioga::FigureConstants::AXIS_WITH_MAJOR_TICKS_AND_NUMERIC_LABELS || type == Tioga::FigureConstants::AXIS_WITH_TICKS_AND_NUMERIC_LABELS
         | 
| 150 | 
            +
             | 
| 151 | 
            +
                        fnc = info['vertical'] ? :convert_figure_to_frame_y : :convert_figure_to_frame_x
         | 
| 152 | 
            +
                        stl = @tick_label_style.dup
         | 
| 153 | 
            +
                        
         | 
| 154 | 
            +
                        
         | 
| 155 | 
            +
                        stl.shift ||= Types::Dimension.new(:dy, info['shift'])
         | 
| 156 | 
            +
             | 
| 157 | 
            +
             | 
| 158 | 
            +
                        # @todo integrate to the 
         | 
| 159 | 
            +
                        shift_def = ( 
         | 
| 160 | 
            +
                                     @location.base_location == :bottom ||
         | 
| 161 | 
            +
                                     @location.base_location == :at_y_origin ||
         | 
| 162 | 
            +
                                     @location.base_location == :right 
         | 
| 163 | 
            +
                                     ) ? 0.3 : 0.4
         | 
| 164 | 
            +
                        stl.shift = Types::Dimension.new(:dy, stl.shift.to_dy(t) + shift_def)
         | 
| 165 | 
            +
             | 
| 166 | 
            +
                        stl.valign ||= ( 
         | 
| 167 | 
            +
                                        @location.base_location == :bottom ||
         | 
| 168 | 
            +
                                        @location.base_location == :at_y_origin ||
         | 
| 169 | 
            +
                                        @location.base_location == :right 
         | 
| 170 | 
            +
                                        ) ? Tioga::FigureConstants::ALIGNED_AT_TOP : Tioga::FigureConstants::ALIGNED_AT_BOTTOM
         | 
| 171 | 
            +
                        
         | 
| 172 | 
            +
                        spec['labels'].size.times do |i|
         | 
| 173 | 
            +
                          pos = spec['major_ticks'][i]
         | 
| 174 | 
            +
                          label = spec['labels'][i]
         | 
| 175 | 
            +
                          pos = t.send(fnc, pos)
         | 
| 176 | 
            +
                          
         | 
| 177 | 
            +
                          next unless label
         | 
| 178 | 
            +
             | 
| 179 | 
            +
             | 
| 180 | 
            +
                          nm = "axis-tick#{@index}-#{i}"
         | 
| 181 | 
            +
             | 
| 182 | 
            +
                          stl.draw_text(t, label, spec['location'], 
         | 
| 183 | 
            +
                                        [:pos, pos], nm)
         | 
| 184 | 
            +
                          if watcher
         | 
| 185 | 
            +
                            watcher.watch(nm)
         | 
| 186 | 
            +
                          end
         | 
| 187 | 
            +
                        end
         | 
| 188 | 
            +
                      end
         | 
| 189 | 
            +
             | 
| 136 190 | 
             
                      @axis_label.loc = @location
         | 
| 137 191 | 
             
                      default = vertical? ? 'ylabel' : 'xlabel'
         | 
| 138 192 | 
             
                      nm = "axis-label#{@index}"
         | 
| 193 | 
            +
             | 
| 194 | 
            +
                      # stl = @axis_label.dup
         | 
| 195 | 
            +
                      # # Default to aligning the label where it counts.
         | 
| 196 | 
            +
                      # stl.valign ||= ( 
         | 
| 197 | 
            +
                      #                 @location.base_location == :bottom ||
         | 
| 198 | 
            +
                      #                 @location.base_location == :at_y_origin ||
         | 
| 199 | 
            +
                      #                 @location.base_location == :right 
         | 
| 200 | 
            +
                      #                 ) ? Tioga::FigureConstants::ALIGNED_AT_MIDHEIGHT : Tioga::FigureConstants::ALIGNED_AT_BOTTOM
         | 
| 201 | 
            +
             | 
| 139 202 | 
             
                      @axis_label.draw(t, default, nm)
         | 
| 140 203 | 
             
                      if watcher
         | 
| 141 204 | 
             
                        watcher.watch(nm)
         | 
| @@ -90,6 +90,19 @@ module CTioga2 | |
| 90 90 | 
             
                      return type
         | 
| 91 91 | 
             
                    end
         | 
| 92 92 |  | 
| 93 | 
            +
                    # Define an attribute to be the alias for something else.
         | 
| 94 | 
            +
                    def self.alias_for(symbol, target)
         | 
| 95 | 
            +
                      target = target.to_sym
         | 
| 96 | 
            +
                      if ! @attribute_types[target]
         | 
| 97 | 
            +
                        raise "Declaring alias #{symbol} for unexisting target #{target}"
         | 
| 98 | 
            +
                      end
         | 
| 99 | 
            +
                      symbol = symbol.to_sym
         | 
| 100 | 
            +
                      @attribute_types[symbol] = @attribute_types[target]
         | 
| 101 | 
            +
                      @attributes << symbol
         | 
| 102 | 
            +
                      alias_method symbol, target
         | 
| 103 | 
            +
                      alias_method "#{symbol}=".to_sym, "#{target}=".to_sym
         | 
| 104 | 
            +
                    end
         | 
| 105 | 
            +
             | 
| 93 106 | 
             
                    # Returns the type of an attribute, or _nil_ if there is no
         | 
| 94 107 | 
             
                    # attribute of that name. Handles sub-styles correctly.
         | 
| 95 108 | 
             
                    def self.attribute_type(symbol, fmt = "%s")
         | 
| @@ -0,0 +1,316 @@ | |
| 1 | 
            +
            # This product includes color specifications and designs developed by
         | 
| 2 | 
            +
            # Cynthia Brewer (http://colorbrewer.org/). JavaScript specs as
         | 
| 3 | 
            +
            # packaged in the D3 library (d3js.org). Please see license at
         | 
| 4 | 
            +
            # http://colorbrewer.org/export/LICENSE.txt
         | 
| 5 | 
            +
            #
         | 
| 6 | 
            +
            # This file was converted from the JS format to Ruby by Vincent Fourmond
         | 
| 7 | 
            +
             | 
| 8 | 
            +
            module CTioga2
         | 
| 9 | 
            +
              module Graphics
         | 
| 10 | 
            +
                module Styles
         | 
| 11 | 
            +
                  module Sets
         | 
| 12 | 
            +
                    ColorBrewerSets = {"YlGn" => {
         | 
| 13 | 
            +
                        3=> ["#f7fcb9","#addd8e","#31a354"],
         | 
| 14 | 
            +
                        4=> ["#ffffcc","#c2e699","#78c679","#238443"],
         | 
| 15 | 
            +
                        5=> ["#ffffcc","#c2e699","#78c679","#31a354","#006837"],
         | 
| 16 | 
            +
                        6=> ["#ffffcc","#d9f0a3","#addd8e","#78c679","#31a354","#006837"],
         | 
| 17 | 
            +
                        7=> ["#ffffcc","#d9f0a3","#addd8e","#78c679","#41ab5d","#238443","#005a32"],
         | 
| 18 | 
            +
                        8=> ["#ffffe5","#f7fcb9","#d9f0a3","#addd8e","#78c679","#41ab5d","#238443","#005a32"],
         | 
| 19 | 
            +
                        9=> ["#ffffe5","#f7fcb9","#d9f0a3","#addd8e","#78c679","#41ab5d","#238443","#006837","#004529"]
         | 
| 20 | 
            +
                      }, "YlGnBu" => {
         | 
| 21 | 
            +
                        3=> ["#edf8b1","#7fcdbb","#2c7fb8"],
         | 
| 22 | 
            +
                        4=> ["#ffffcc","#a1dab4","#41b6c4","#225ea8"],
         | 
| 23 | 
            +
                        5=> ["#ffffcc","#a1dab4","#41b6c4","#2c7fb8","#253494"],
         | 
| 24 | 
            +
                        6=> ["#ffffcc","#c7e9b4","#7fcdbb","#41b6c4","#2c7fb8","#253494"],
         | 
| 25 | 
            +
                        7=> ["#ffffcc","#c7e9b4","#7fcdbb","#41b6c4","#1d91c0","#225ea8","#0c2c84"],
         | 
| 26 | 
            +
                        8=> ["#ffffd9","#edf8b1","#c7e9b4","#7fcdbb","#41b6c4","#1d91c0","#225ea8","#0c2c84"],
         | 
| 27 | 
            +
                        9=> ["#ffffd9","#edf8b1","#c7e9b4","#7fcdbb","#41b6c4","#1d91c0","#225ea8","#253494","#081d58"]
         | 
| 28 | 
            +
                      }, "GnBu" => {
         | 
| 29 | 
            +
                        3=> ["#e0f3db","#a8ddb5","#43a2ca"],
         | 
| 30 | 
            +
                        4=> ["#f0f9e8","#bae4bc","#7bccc4","#2b8cbe"],
         | 
| 31 | 
            +
                        5=> ["#f0f9e8","#bae4bc","#7bccc4","#43a2ca","#0868ac"],
         | 
| 32 | 
            +
                        6=> ["#f0f9e8","#ccebc5","#a8ddb5","#7bccc4","#43a2ca","#0868ac"],
         | 
| 33 | 
            +
                        7=> ["#f0f9e8","#ccebc5","#a8ddb5","#7bccc4","#4eb3d3","#2b8cbe","#08589e"],
         | 
| 34 | 
            +
                        8=> ["#f7fcf0","#e0f3db","#ccebc5","#a8ddb5","#7bccc4","#4eb3d3","#2b8cbe","#08589e"],
         | 
| 35 | 
            +
                        9=> ["#f7fcf0","#e0f3db","#ccebc5","#a8ddb5","#7bccc4","#4eb3d3","#2b8cbe","#0868ac","#084081"]
         | 
| 36 | 
            +
                      },"BuGn" => {
         | 
| 37 | 
            +
                        3=> ["#e5f5f9","#99d8c9","#2ca25f"],
         | 
| 38 | 
            +
                        4=> ["#edf8fb","#b2e2e2","#66c2a4","#238b45"],
         | 
| 39 | 
            +
                        5=> ["#edf8fb","#b2e2e2","#66c2a4","#2ca25f","#006d2c"],
         | 
| 40 | 
            +
                        6=> ["#edf8fb","#ccece6","#99d8c9","#66c2a4","#2ca25f","#006d2c"],
         | 
| 41 | 
            +
                        7=> ["#edf8fb","#ccece6","#99d8c9","#66c2a4","#41ae76","#238b45","#005824"],
         | 
| 42 | 
            +
                        8=> ["#f7fcfd","#e5f5f9","#ccece6","#99d8c9","#66c2a4","#41ae76","#238b45","#005824"],
         | 
| 43 | 
            +
                        9=> ["#f7fcfd","#e5f5f9","#ccece6","#99d8c9","#66c2a4","#41ae76","#238b45","#006d2c","#00441b"]
         | 
| 44 | 
            +
                      },"PuBuGn" => {
         | 
| 45 | 
            +
                        3=> ["#ece2f0","#a6bddb","#1c9099"],
         | 
| 46 | 
            +
                        4=> ["#f6eff7","#bdc9e1","#67a9cf","#02818a"],
         | 
| 47 | 
            +
                        5=> ["#f6eff7","#bdc9e1","#67a9cf","#1c9099","#016c59"],
         | 
| 48 | 
            +
                        6=> ["#f6eff7","#d0d1e6","#a6bddb","#67a9cf","#1c9099","#016c59"],
         | 
| 49 | 
            +
                        7=> ["#f6eff7","#d0d1e6","#a6bddb","#67a9cf","#3690c0","#02818a","#016450"],
         | 
| 50 | 
            +
                        8=> ["#fff7fb","#ece2f0","#d0d1e6","#a6bddb","#67a9cf","#3690c0","#02818a","#016450"],
         | 
| 51 | 
            +
                        9=> ["#fff7fb","#ece2f0","#d0d1e6","#a6bddb","#67a9cf","#3690c0","#02818a","#016c59","#014636"]
         | 
| 52 | 
            +
                      },"PuBu" => {
         | 
| 53 | 
            +
                        3=> ["#ece7f2","#a6bddb","#2b8cbe"],
         | 
| 54 | 
            +
                        4=> ["#f1eef6","#bdc9e1","#74a9cf","#0570b0"],
         | 
| 55 | 
            +
                        5=> ["#f1eef6","#bdc9e1","#74a9cf","#2b8cbe","#045a8d"],
         | 
| 56 | 
            +
                        6=> ["#f1eef6","#d0d1e6","#a6bddb","#74a9cf","#2b8cbe","#045a8d"],
         | 
| 57 | 
            +
                        7=> ["#f1eef6","#d0d1e6","#a6bddb","#74a9cf","#3690c0","#0570b0","#034e7b"],
         | 
| 58 | 
            +
                        8=> ["#fff7fb","#ece7f2","#d0d1e6","#a6bddb","#74a9cf","#3690c0","#0570b0","#034e7b"],
         | 
| 59 | 
            +
                        9=> ["#fff7fb","#ece7f2","#d0d1e6","#a6bddb","#74a9cf","#3690c0","#0570b0","#045a8d","#023858"]
         | 
| 60 | 
            +
                      },"BuPu" => {
         | 
| 61 | 
            +
                        3=> ["#e0ecf4","#9ebcda","#8856a7"],
         | 
| 62 | 
            +
                        4=> ["#edf8fb","#b3cde3","#8c96c6","#88419d"],
         | 
| 63 | 
            +
                        5=> ["#edf8fb","#b3cde3","#8c96c6","#8856a7","#810f7c"],
         | 
| 64 | 
            +
                        6=> ["#edf8fb","#bfd3e6","#9ebcda","#8c96c6","#8856a7","#810f7c"],
         | 
| 65 | 
            +
                        7=> ["#edf8fb","#bfd3e6","#9ebcda","#8c96c6","#8c6bb1","#88419d","#6e016b"],
         | 
| 66 | 
            +
                        8=> ["#f7fcfd","#e0ecf4","#bfd3e6","#9ebcda","#8c96c6","#8c6bb1","#88419d","#6e016b"],
         | 
| 67 | 
            +
                        9=> ["#f7fcfd","#e0ecf4","#bfd3e6","#9ebcda","#8c96c6","#8c6bb1","#88419d","#810f7c","#4d004b"]
         | 
| 68 | 
            +
                      },"RdPu" => {
         | 
| 69 | 
            +
                        3=> ["#fde0dd","#fa9fb5","#c51b8a"],
         | 
| 70 | 
            +
                        4=> ["#feebe2","#fbb4b9","#f768a1","#ae017e"],
         | 
| 71 | 
            +
                        5=> ["#feebe2","#fbb4b9","#f768a1","#c51b8a","#7a0177"],
         | 
| 72 | 
            +
                        6=> ["#feebe2","#fcc5c0","#fa9fb5","#f768a1","#c51b8a","#7a0177"],
         | 
| 73 | 
            +
                        7=> ["#feebe2","#fcc5c0","#fa9fb5","#f768a1","#dd3497","#ae017e","#7a0177"],
         | 
| 74 | 
            +
                        8=> ["#fff7f3","#fde0dd","#fcc5c0","#fa9fb5","#f768a1","#dd3497","#ae017e","#7a0177"],
         | 
| 75 | 
            +
                        9=> ["#fff7f3","#fde0dd","#fcc5c0","#fa9fb5","#f768a1","#dd3497","#ae017e","#7a0177","#49006a"]
         | 
| 76 | 
            +
                      },"PuRd" => {
         | 
| 77 | 
            +
                        3=> ["#e7e1ef","#c994c7","#dd1c77"],
         | 
| 78 | 
            +
                        4=> ["#f1eef6","#d7b5d8","#df65b0","#ce1256"],
         | 
| 79 | 
            +
                        5=> ["#f1eef6","#d7b5d8","#df65b0","#dd1c77","#980043"],
         | 
| 80 | 
            +
                        6=> ["#f1eef6","#d4b9da","#c994c7","#df65b0","#dd1c77","#980043"],
         | 
| 81 | 
            +
                        7=> ["#f1eef6","#d4b9da","#c994c7","#df65b0","#e7298a","#ce1256","#91003f"],
         | 
| 82 | 
            +
                        8=> ["#f7f4f9","#e7e1ef","#d4b9da","#c994c7","#df65b0","#e7298a","#ce1256","#91003f"],
         | 
| 83 | 
            +
                        9=> ["#f7f4f9","#e7e1ef","#d4b9da","#c994c7","#df65b0","#e7298a","#ce1256","#980043","#67001f"]
         | 
| 84 | 
            +
                      },"OrRd" => {
         | 
| 85 | 
            +
                        3=> ["#fee8c8","#fdbb84","#e34a33"],
         | 
| 86 | 
            +
                        4=> ["#fef0d9","#fdcc8a","#fc8d59","#d7301f"],
         | 
| 87 | 
            +
                        5=> ["#fef0d9","#fdcc8a","#fc8d59","#e34a33","#b30000"],
         | 
| 88 | 
            +
                        6=> ["#fef0d9","#fdd49e","#fdbb84","#fc8d59","#e34a33","#b30000"],
         | 
| 89 | 
            +
                        7=> ["#fef0d9","#fdd49e","#fdbb84","#fc8d59","#ef6548","#d7301f","#990000"],
         | 
| 90 | 
            +
                        8=> ["#fff7ec","#fee8c8","#fdd49e","#fdbb84","#fc8d59","#ef6548","#d7301f","#990000"],
         | 
| 91 | 
            +
                        9=> ["#fff7ec","#fee8c8","#fdd49e","#fdbb84","#fc8d59","#ef6548","#d7301f","#b30000","#7f0000"]
         | 
| 92 | 
            +
                      },"YlOrRd"=> {
         | 
| 93 | 
            +
                        3=> ["#ffeda0","#feb24c","#f03b20"],
         | 
| 94 | 
            +
                        4=> ["#ffffb2","#fecc5c","#fd8d3c","#e31a1c"],
         | 
| 95 | 
            +
                        5=> ["#ffffb2","#fecc5c","#fd8d3c","#f03b20","#bd0026"],
         | 
| 96 | 
            +
                        6=> ["#ffffb2","#fed976","#feb24c","#fd8d3c","#f03b20","#bd0026"],
         | 
| 97 | 
            +
                        7=> ["#ffffb2","#fed976","#feb24c","#fd8d3c","#fc4e2a","#e31a1c","#b10026"],
         | 
| 98 | 
            +
                        8=> ["#ffffcc","#ffeda0","#fed976","#feb24c","#fd8d3c","#fc4e2a","#e31a1c","#b10026"],
         | 
| 99 | 
            +
                        9=> ["#ffffcc","#ffeda0","#fed976","#feb24c","#fd8d3c","#fc4e2a","#e31a1c","#bd0026","#800026"]
         | 
| 100 | 
            +
                      },"YlOrBr"=> {
         | 
| 101 | 
            +
                        3=> ["#fff7bc","#fec44f","#d95f0e"],
         | 
| 102 | 
            +
                        4=> ["#ffffd4","#fed98e","#fe9929","#cc4c02"],
         | 
| 103 | 
            +
                        5=> ["#ffffd4","#fed98e","#fe9929","#d95f0e","#993404"],
         | 
| 104 | 
            +
                        6=> ["#ffffd4","#fee391","#fec44f","#fe9929","#d95f0e","#993404"],
         | 
| 105 | 
            +
                        7=> ["#ffffd4","#fee391","#fec44f","#fe9929","#ec7014","#cc4c02","#8c2d04"],
         | 
| 106 | 
            +
                        8=> ["#ffffe5","#fff7bc","#fee391","#fec44f","#fe9929","#ec7014","#cc4c02","#8c2d04"],
         | 
| 107 | 
            +
                        9=> ["#ffffe5","#fff7bc","#fee391","#fec44f","#fe9929","#ec7014","#cc4c02","#993404","#662506"]
         | 
| 108 | 
            +
                      },"Purples"=> {
         | 
| 109 | 
            +
                        3=> ["#efedf5","#bcbddc","#756bb1"],
         | 
| 110 | 
            +
                        4=> ["#f2f0f7","#cbc9e2","#9e9ac8","#6a51a3"],
         | 
| 111 | 
            +
                        5=> ["#f2f0f7","#cbc9e2","#9e9ac8","#756bb1","#54278f"],
         | 
| 112 | 
            +
                        6=> ["#f2f0f7","#dadaeb","#bcbddc","#9e9ac8","#756bb1","#54278f"],
         | 
| 113 | 
            +
                        7=> ["#f2f0f7","#dadaeb","#bcbddc","#9e9ac8","#807dba","#6a51a3","#4a1486"],
         | 
| 114 | 
            +
                        8=> ["#fcfbfd","#efedf5","#dadaeb","#bcbddc","#9e9ac8","#807dba","#6a51a3","#4a1486"],
         | 
| 115 | 
            +
                        9=> ["#fcfbfd","#efedf5","#dadaeb","#bcbddc","#9e9ac8","#807dba","#6a51a3","#54278f","#3f007d"]
         | 
| 116 | 
            +
                      },"Blues"=> {
         | 
| 117 | 
            +
                        3=> ["#deebf7","#9ecae1","#3182bd"],
         | 
| 118 | 
            +
                        4=> ["#eff3ff","#bdd7e7","#6baed6","#2171b5"],
         | 
| 119 | 
            +
                        5=> ["#eff3ff","#bdd7e7","#6baed6","#3182bd","#08519c"],
         | 
| 120 | 
            +
                        6=> ["#eff3ff","#c6dbef","#9ecae1","#6baed6","#3182bd","#08519c"],
         | 
| 121 | 
            +
                        7=> ["#eff3ff","#c6dbef","#9ecae1","#6baed6","#4292c6","#2171b5","#084594"],
         | 
| 122 | 
            +
                        8=> ["#f7fbff","#deebf7","#c6dbef","#9ecae1","#6baed6","#4292c6","#2171b5","#084594"],
         | 
| 123 | 
            +
                        9=> ["#f7fbff","#deebf7","#c6dbef","#9ecae1","#6baed6","#4292c6","#2171b5","#08519c","#08306b"]
         | 
| 124 | 
            +
                      },"Greens"=> {
         | 
| 125 | 
            +
                        3=> ["#e5f5e0","#a1d99b","#31a354"],
         | 
| 126 | 
            +
                        4=> ["#edf8e9","#bae4b3","#74c476","#238b45"],
         | 
| 127 | 
            +
                        5=> ["#edf8e9","#bae4b3","#74c476","#31a354","#006d2c"],
         | 
| 128 | 
            +
                        6=> ["#edf8e9","#c7e9c0","#a1d99b","#74c476","#31a354","#006d2c"],
         | 
| 129 | 
            +
                        7=> ["#edf8e9","#c7e9c0","#a1d99b","#74c476","#41ab5d","#238b45","#005a32"],
         | 
| 130 | 
            +
                        8=> ["#f7fcf5","#e5f5e0","#c7e9c0","#a1d99b","#74c476","#41ab5d","#238b45","#005a32"],
         | 
| 131 | 
            +
                        9=> ["#f7fcf5","#e5f5e0","#c7e9c0","#a1d99b","#74c476","#41ab5d","#238b45","#006d2c","#00441b"]
         | 
| 132 | 
            +
                      },"Oranges"=> {
         | 
| 133 | 
            +
                        3=> ["#fee6ce","#fdae6b","#e6550d"],
         | 
| 134 | 
            +
                        4=> ["#feedde","#fdbe85","#fd8d3c","#d94701"],
         | 
| 135 | 
            +
                        5=> ["#feedde","#fdbe85","#fd8d3c","#e6550d","#a63603"],
         | 
| 136 | 
            +
                        6=> ["#feedde","#fdd0a2","#fdae6b","#fd8d3c","#e6550d","#a63603"],
         | 
| 137 | 
            +
                        7=> ["#feedde","#fdd0a2","#fdae6b","#fd8d3c","#f16913","#d94801","#8c2d04"],
         | 
| 138 | 
            +
                        8=> ["#fff5eb","#fee6ce","#fdd0a2","#fdae6b","#fd8d3c","#f16913","#d94801","#8c2d04"],
         | 
| 139 | 
            +
                        9=> ["#fff5eb","#fee6ce","#fdd0a2","#fdae6b","#fd8d3c","#f16913","#d94801","#a63603","#7f2704"]
         | 
| 140 | 
            +
                      },"Reds"=> {
         | 
| 141 | 
            +
                        3=> ["#fee0d2","#fc9272","#de2d26"],
         | 
| 142 | 
            +
                        4=> ["#fee5d9","#fcae91","#fb6a4a","#cb181d"],
         | 
| 143 | 
            +
                        5=> ["#fee5d9","#fcae91","#fb6a4a","#de2d26","#a50f15"],
         | 
| 144 | 
            +
                        6=> ["#fee5d9","#fcbba1","#fc9272","#fb6a4a","#de2d26","#a50f15"],
         | 
| 145 | 
            +
                        7=> ["#fee5d9","#fcbba1","#fc9272","#fb6a4a","#ef3b2c","#cb181d","#99000d"],
         | 
| 146 | 
            +
                        8=> ["#fff5f0","#fee0d2","#fcbba1","#fc9272","#fb6a4a","#ef3b2c","#cb181d","#99000d"],
         | 
| 147 | 
            +
                        9=> ["#fff5f0","#fee0d2","#fcbba1","#fc9272","#fb6a4a","#ef3b2c","#cb181d","#a50f15","#67000d"]
         | 
| 148 | 
            +
                      },"Greys"=> {
         | 
| 149 | 
            +
                        3=> ["#f0f0f0","#bdbdbd","#636363"],
         | 
| 150 | 
            +
                        4=> ["#f7f7f7","#cccccc","#969696","#525252"],
         | 
| 151 | 
            +
                        5=> ["#f7f7f7","#cccccc","#969696","#636363","#252525"],
         | 
| 152 | 
            +
                        6=> ["#f7f7f7","#d9d9d9","#bdbdbd","#969696","#636363","#252525"],
         | 
| 153 | 
            +
                        7=> ["#f7f7f7","#d9d9d9","#bdbdbd","#969696","#737373","#525252","#252525"],
         | 
| 154 | 
            +
                        8=> ["#ffffff","#f0f0f0","#d9d9d9","#bdbdbd","#969696","#737373","#525252","#252525"],
         | 
| 155 | 
            +
                        9=> ["#ffffff","#f0f0f0","#d9d9d9","#bdbdbd","#969696","#737373","#525252","#252525","#000000"]
         | 
| 156 | 
            +
                      },"PuOr"=> {
         | 
| 157 | 
            +
                        3=> ["#f1a340","#f7f7f7","#998ec3"],
         | 
| 158 | 
            +
                        4=> ["#e66101","#fdb863","#b2abd2","#5e3c99"],
         | 
| 159 | 
            +
                        5=> ["#e66101","#fdb863","#f7f7f7","#b2abd2","#5e3c99"],
         | 
| 160 | 
            +
                        6=> ["#b35806","#f1a340","#fee0b6","#d8daeb","#998ec3","#542788"],
         | 
| 161 | 
            +
                        7=> ["#b35806","#f1a340","#fee0b6","#f7f7f7","#d8daeb","#998ec3","#542788"],
         | 
| 162 | 
            +
                        8=> ["#b35806","#e08214","#fdb863","#fee0b6","#d8daeb","#b2abd2","#8073ac","#542788"],
         | 
| 163 | 
            +
                        9=> ["#b35806","#e08214","#fdb863","#fee0b6","#f7f7f7","#d8daeb","#b2abd2","#8073ac","#542788"],
         | 
| 164 | 
            +
                        10=> ["#7f3b08","#b35806","#e08214","#fdb863","#fee0b6","#d8daeb","#b2abd2","#8073ac","#542788","#2d004b"],
         | 
| 165 | 
            +
                        11=> ["#7f3b08","#b35806","#e08214","#fdb863","#fee0b6","#f7f7f7","#d8daeb","#b2abd2","#8073ac","#542788","#2d004b"]
         | 
| 166 | 
            +
                      },"BrBG"=> {
         | 
| 167 | 
            +
                        3=> ["#d8b365","#f5f5f5","#5ab4ac"],
         | 
| 168 | 
            +
                        4=> ["#a6611a","#dfc27d","#80cdc1","#018571"],
         | 
| 169 | 
            +
                        5=> ["#a6611a","#dfc27d","#f5f5f5","#80cdc1","#018571"],
         | 
| 170 | 
            +
                        6=> ["#8c510a","#d8b365","#f6e8c3","#c7eae5","#5ab4ac","#01665e"],
         | 
| 171 | 
            +
                        7=> ["#8c510a","#d8b365","#f6e8c3","#f5f5f5","#c7eae5","#5ab4ac","#01665e"],
         | 
| 172 | 
            +
                        8=> ["#8c510a","#bf812d","#dfc27d","#f6e8c3","#c7eae5","#80cdc1","#35978f","#01665e"],
         | 
| 173 | 
            +
                        9=> ["#8c510a","#bf812d","#dfc27d","#f6e8c3","#f5f5f5","#c7eae5","#80cdc1","#35978f","#01665e"],
         | 
| 174 | 
            +
                        10=> ["#543005","#8c510a","#bf812d","#dfc27d","#f6e8c3","#c7eae5","#80cdc1","#35978f","#01665e","#003c30"],
         | 
| 175 | 
            +
                        11=> ["#543005","#8c510a","#bf812d","#dfc27d","#f6e8c3","#f5f5f5","#c7eae5","#80cdc1","#35978f","#01665e","#003c30"]
         | 
| 176 | 
            +
                      },"PRGn"=> {
         | 
| 177 | 
            +
                        3=> ["#af8dc3","#f7f7f7","#7fbf7b"],
         | 
| 178 | 
            +
                        4=> ["#7b3294","#c2a5cf","#a6dba0","#008837"],
         | 
| 179 | 
            +
                        5=> ["#7b3294","#c2a5cf","#f7f7f7","#a6dba0","#008837"],
         | 
| 180 | 
            +
                        6=> ["#762a83","#af8dc3","#e7d4e8","#d9f0d3","#7fbf7b","#1b7837"],
         | 
| 181 | 
            +
                        7=> ["#762a83","#af8dc3","#e7d4e8","#f7f7f7","#d9f0d3","#7fbf7b","#1b7837"],
         | 
| 182 | 
            +
                        8=> ["#762a83","#9970ab","#c2a5cf","#e7d4e8","#d9f0d3","#a6dba0","#5aae61","#1b7837"],
         | 
| 183 | 
            +
                        9=> ["#762a83","#9970ab","#c2a5cf","#e7d4e8","#f7f7f7","#d9f0d3","#a6dba0","#5aae61","#1b7837"],
         | 
| 184 | 
            +
                        10=> ["#40004b","#762a83","#9970ab","#c2a5cf","#e7d4e8","#d9f0d3","#a6dba0","#5aae61","#1b7837","#00441b"],
         | 
| 185 | 
            +
                        11=> ["#40004b","#762a83","#9970ab","#c2a5cf","#e7d4e8","#f7f7f7","#d9f0d3","#a6dba0","#5aae61","#1b7837","#00441b"]
         | 
| 186 | 
            +
                      },"PiYG"=> {
         | 
| 187 | 
            +
                        3=> ["#e9a3c9","#f7f7f7","#a1d76a"],
         | 
| 188 | 
            +
                        4=> ["#d01c8b","#f1b6da","#b8e186","#4dac26"],
         | 
| 189 | 
            +
                        5=> ["#d01c8b","#f1b6da","#f7f7f7","#b8e186","#4dac26"],
         | 
| 190 | 
            +
                        6=> ["#c51b7d","#e9a3c9","#fde0ef","#e6f5d0","#a1d76a","#4d9221"],
         | 
| 191 | 
            +
                        7=> ["#c51b7d","#e9a3c9","#fde0ef","#f7f7f7","#e6f5d0","#a1d76a","#4d9221"],
         | 
| 192 | 
            +
                        8=> ["#c51b7d","#de77ae","#f1b6da","#fde0ef","#e6f5d0","#b8e186","#7fbc41","#4d9221"],
         | 
| 193 | 
            +
                        9=> ["#c51b7d","#de77ae","#f1b6da","#fde0ef","#f7f7f7","#e6f5d0","#b8e186","#7fbc41","#4d9221"],
         | 
| 194 | 
            +
                        10=> ["#8e0152","#c51b7d","#de77ae","#f1b6da","#fde0ef","#e6f5d0","#b8e186","#7fbc41","#4d9221","#276419"],
         | 
| 195 | 
            +
                        11=> ["#8e0152","#c51b7d","#de77ae","#f1b6da","#fde0ef","#f7f7f7","#e6f5d0","#b8e186","#7fbc41","#4d9221","#276419"]
         | 
| 196 | 
            +
                      },"RdBu"=> {
         | 
| 197 | 
            +
                        3=> ["#ef8a62","#f7f7f7","#67a9cf"],
         | 
| 198 | 
            +
                        4=> ["#ca0020","#f4a582","#92c5de","#0571b0"],
         | 
| 199 | 
            +
                        5=> ["#ca0020","#f4a582","#f7f7f7","#92c5de","#0571b0"],
         | 
| 200 | 
            +
                        6=> ["#b2182b","#ef8a62","#fddbc7","#d1e5f0","#67a9cf","#2166ac"],
         | 
| 201 | 
            +
                        7=> ["#b2182b","#ef8a62","#fddbc7","#f7f7f7","#d1e5f0","#67a9cf","#2166ac"],
         | 
| 202 | 
            +
                        8=> ["#b2182b","#d6604d","#f4a582","#fddbc7","#d1e5f0","#92c5de","#4393c3","#2166ac"],
         | 
| 203 | 
            +
                        9=> ["#b2182b","#d6604d","#f4a582","#fddbc7","#f7f7f7","#d1e5f0","#92c5de","#4393c3","#2166ac"],
         | 
| 204 | 
            +
                        10=> ["#67001f","#b2182b","#d6604d","#f4a582","#fddbc7","#d1e5f0","#92c5de","#4393c3","#2166ac","#053061"],
         | 
| 205 | 
            +
                        11=> ["#67001f","#b2182b","#d6604d","#f4a582","#fddbc7","#f7f7f7","#d1e5f0","#92c5de","#4393c3","#2166ac","#053061"]
         | 
| 206 | 
            +
                      },"RdGy"=> {
         | 
| 207 | 
            +
                        3=> ["#ef8a62","#ffffff","#999999"],
         | 
| 208 | 
            +
                        4=> ["#ca0020","#f4a582","#bababa","#404040"],
         | 
| 209 | 
            +
                        5=> ["#ca0020","#f4a582","#ffffff","#bababa","#404040"],
         | 
| 210 | 
            +
                        6=> ["#b2182b","#ef8a62","#fddbc7","#e0e0e0","#999999","#4d4d4d"],
         | 
| 211 | 
            +
                        7=> ["#b2182b","#ef8a62","#fddbc7","#ffffff","#e0e0e0","#999999","#4d4d4d"],
         | 
| 212 | 
            +
                        8=> ["#b2182b","#d6604d","#f4a582","#fddbc7","#e0e0e0","#bababa","#878787","#4d4d4d"],
         | 
| 213 | 
            +
                        9=> ["#b2182b","#d6604d","#f4a582","#fddbc7","#ffffff","#e0e0e0","#bababa","#878787","#4d4d4d"],
         | 
| 214 | 
            +
                        10=> ["#67001f","#b2182b","#d6604d","#f4a582","#fddbc7","#e0e0e0","#bababa","#878787","#4d4d4d","#1a1a1a"],
         | 
| 215 | 
            +
                        11=> ["#67001f","#b2182b","#d6604d","#f4a582","#fddbc7","#ffffff","#e0e0e0","#bababa","#878787","#4d4d4d","#1a1a1a"]
         | 
| 216 | 
            +
                      },"RdYlBu"=> {
         | 
| 217 | 
            +
                        3=> ["#fc8d59","#ffffbf","#91bfdb"],
         | 
| 218 | 
            +
                        4=> ["#d7191c","#fdae61","#abd9e9","#2c7bb6"],
         | 
| 219 | 
            +
                        5=> ["#d7191c","#fdae61","#ffffbf","#abd9e9","#2c7bb6"],
         | 
| 220 | 
            +
                        6=> ["#d73027","#fc8d59","#fee090","#e0f3f8","#91bfdb","#4575b4"],
         | 
| 221 | 
            +
                        7=> ["#d73027","#fc8d59","#fee090","#ffffbf","#e0f3f8","#91bfdb","#4575b4"],
         | 
| 222 | 
            +
                        8=> ["#d73027","#f46d43","#fdae61","#fee090","#e0f3f8","#abd9e9","#74add1","#4575b4"],
         | 
| 223 | 
            +
                        9=> ["#d73027","#f46d43","#fdae61","#fee090","#ffffbf","#e0f3f8","#abd9e9","#74add1","#4575b4"],
         | 
| 224 | 
            +
                        10=> ["#a50026","#d73027","#f46d43","#fdae61","#fee090","#e0f3f8","#abd9e9","#74add1","#4575b4","#313695"],
         | 
| 225 | 
            +
                        11=> ["#a50026","#d73027","#f46d43","#fdae61","#fee090","#ffffbf","#e0f3f8","#abd9e9","#74add1","#4575b4","#313695"]
         | 
| 226 | 
            +
                      },"Spectral"=> {
         | 
| 227 | 
            +
                        3=> ["#fc8d59","#ffffbf","#99d594"],
         | 
| 228 | 
            +
                        4=> ["#d7191c","#fdae61","#abdda4","#2b83ba"],
         | 
| 229 | 
            +
                        5=> ["#d7191c","#fdae61","#ffffbf","#abdda4","#2b83ba"],
         | 
| 230 | 
            +
                        6=> ["#d53e4f","#fc8d59","#fee08b","#e6f598","#99d594","#3288bd"],
         | 
| 231 | 
            +
                        7=> ["#d53e4f","#fc8d59","#fee08b","#ffffbf","#e6f598","#99d594","#3288bd"],
         | 
| 232 | 
            +
                        8=> ["#d53e4f","#f46d43","#fdae61","#fee08b","#e6f598","#abdda4","#66c2a5","#3288bd"],
         | 
| 233 | 
            +
                        9=> ["#d53e4f","#f46d43","#fdae61","#fee08b","#ffffbf","#e6f598","#abdda4","#66c2a5","#3288bd"],
         | 
| 234 | 
            +
                        10=> ["#9e0142","#d53e4f","#f46d43","#fdae61","#fee08b","#e6f598","#abdda4","#66c2a5","#3288bd","#5e4fa2"],
         | 
| 235 | 
            +
                        11=> ["#9e0142","#d53e4f","#f46d43","#fdae61","#fee08b","#ffffbf","#e6f598","#abdda4","#66c2a5","#3288bd","#5e4fa2"]
         | 
| 236 | 
            +
                      },"RdYlGn"=> {
         | 
| 237 | 
            +
                        3=> ["#fc8d59","#ffffbf","#91cf60"],
         | 
| 238 | 
            +
                        4=> ["#d7191c","#fdae61","#a6d96a","#1a9641"],
         | 
| 239 | 
            +
                        5=> ["#d7191c","#fdae61","#ffffbf","#a6d96a","#1a9641"],
         | 
| 240 | 
            +
                        6=> ["#d73027","#fc8d59","#fee08b","#d9ef8b","#91cf60","#1a9850"],
         | 
| 241 | 
            +
                        7=> ["#d73027","#fc8d59","#fee08b","#ffffbf","#d9ef8b","#91cf60","#1a9850"],
         | 
| 242 | 
            +
                        8=> ["#d73027","#f46d43","#fdae61","#fee08b","#d9ef8b","#a6d96a","#66bd63","#1a9850"],
         | 
| 243 | 
            +
                        9=> ["#d73027","#f46d43","#fdae61","#fee08b","#ffffbf","#d9ef8b","#a6d96a","#66bd63","#1a9850"],
         | 
| 244 | 
            +
                        10=> ["#a50026","#d73027","#f46d43","#fdae61","#fee08b","#d9ef8b","#a6d96a","#66bd63","#1a9850","#006837"],
         | 
| 245 | 
            +
                        11=> ["#a50026","#d73027","#f46d43","#fdae61","#fee08b","#ffffbf","#d9ef8b","#a6d96a","#66bd63","#1a9850","#006837"]
         | 
| 246 | 
            +
                      },"Accent"=> {
         | 
| 247 | 
            +
                        3=> ["#7fc97f","#beaed4","#fdc086"],
         | 
| 248 | 
            +
                        4=> ["#7fc97f","#beaed4","#fdc086","#ffff99"],
         | 
| 249 | 
            +
                        5=> ["#7fc97f","#beaed4","#fdc086","#ffff99","#386cb0"],
         | 
| 250 | 
            +
                        6=> ["#7fc97f","#beaed4","#fdc086","#ffff99","#386cb0","#f0027f"],
         | 
| 251 | 
            +
                        7=> ["#7fc97f","#beaed4","#fdc086","#ffff99","#386cb0","#f0027f","#bf5b17"],
         | 
| 252 | 
            +
                        8=> ["#7fc97f","#beaed4","#fdc086","#ffff99","#386cb0","#f0027f","#bf5b17","#666666"]
         | 
| 253 | 
            +
                      },"Dark2"=> {
         | 
| 254 | 
            +
                        3=> ["#1b9e77","#d95f02","#7570b3"],
         | 
| 255 | 
            +
                        4=> ["#1b9e77","#d95f02","#7570b3","#e7298a"],
         | 
| 256 | 
            +
                        5=> ["#1b9e77","#d95f02","#7570b3","#e7298a","#66a61e"],
         | 
| 257 | 
            +
                        6=> ["#1b9e77","#d95f02","#7570b3","#e7298a","#66a61e","#e6ab02"],
         | 
| 258 | 
            +
                        7=> ["#1b9e77","#d95f02","#7570b3","#e7298a","#66a61e","#e6ab02","#a6761d"],
         | 
| 259 | 
            +
                        8=> ["#1b9e77","#d95f02","#7570b3","#e7298a","#66a61e","#e6ab02","#a6761d","#666666"]
         | 
| 260 | 
            +
                      },"Paired"=> {
         | 
| 261 | 
            +
                        3=> ["#a6cee3","#1f78b4","#b2df8a"],
         | 
| 262 | 
            +
                        4=> ["#a6cee3","#1f78b4","#b2df8a","#33a02c"],
         | 
| 263 | 
            +
                        5=> ["#a6cee3","#1f78b4","#b2df8a","#33a02c","#fb9a99"],
         | 
| 264 | 
            +
                        6=> ["#a6cee3","#1f78b4","#b2df8a","#33a02c","#fb9a99","#e31a1c"],
         | 
| 265 | 
            +
                        7=> ["#a6cee3","#1f78b4","#b2df8a","#33a02c","#fb9a99","#e31a1c","#fdbf6f"],
         | 
| 266 | 
            +
                        8=> ["#a6cee3","#1f78b4","#b2df8a","#33a02c","#fb9a99","#e31a1c","#fdbf6f","#ff7f00"],
         | 
| 267 | 
            +
                        9=> ["#a6cee3","#1f78b4","#b2df8a","#33a02c","#fb9a99","#e31a1c","#fdbf6f","#ff7f00","#cab2d6"],
         | 
| 268 | 
            +
                        10=> ["#a6cee3","#1f78b4","#b2df8a","#33a02c","#fb9a99","#e31a1c","#fdbf6f","#ff7f00","#cab2d6","#6a3d9a"],
         | 
| 269 | 
            +
                        11=> ["#a6cee3","#1f78b4","#b2df8a","#33a02c","#fb9a99","#e31a1c","#fdbf6f","#ff7f00","#cab2d6","#6a3d9a","#ffff99"],
         | 
| 270 | 
            +
                        12=> ["#a6cee3","#1f78b4","#b2df8a","#33a02c","#fb9a99","#e31a1c","#fdbf6f","#ff7f00","#cab2d6","#6a3d9a","#ffff99","#b15928"]
         | 
| 271 | 
            +
                      },"Pastel1"=> {
         | 
| 272 | 
            +
                        3=> ["#fbb4ae","#b3cde3","#ccebc5"],
         | 
| 273 | 
            +
                        4=> ["#fbb4ae","#b3cde3","#ccebc5","#decbe4"],
         | 
| 274 | 
            +
                        5=> ["#fbb4ae","#b3cde3","#ccebc5","#decbe4","#fed9a6"],
         | 
| 275 | 
            +
                        6=> ["#fbb4ae","#b3cde3","#ccebc5","#decbe4","#fed9a6","#ffffcc"],
         | 
| 276 | 
            +
                        7=> ["#fbb4ae","#b3cde3","#ccebc5","#decbe4","#fed9a6","#ffffcc","#e5d8bd"],
         | 
| 277 | 
            +
                        8=> ["#fbb4ae","#b3cde3","#ccebc5","#decbe4","#fed9a6","#ffffcc","#e5d8bd","#fddaec"],
         | 
| 278 | 
            +
                        9=> ["#fbb4ae","#b3cde3","#ccebc5","#decbe4","#fed9a6","#ffffcc","#e5d8bd","#fddaec","#f2f2f2"]
         | 
| 279 | 
            +
                      },"Pastel2"=> {
         | 
| 280 | 
            +
                        3=> ["#b3e2cd","#fdcdac","#cbd5e8"],
         | 
| 281 | 
            +
                        4=> ["#b3e2cd","#fdcdac","#cbd5e8","#f4cae4"],
         | 
| 282 | 
            +
                        5=> ["#b3e2cd","#fdcdac","#cbd5e8","#f4cae4","#e6f5c9"],
         | 
| 283 | 
            +
                        6=> ["#b3e2cd","#fdcdac","#cbd5e8","#f4cae4","#e6f5c9","#fff2ae"],
         | 
| 284 | 
            +
                        7=> ["#b3e2cd","#fdcdac","#cbd5e8","#f4cae4","#e6f5c9","#fff2ae","#f1e2cc"],
         | 
| 285 | 
            +
                        8=> ["#b3e2cd","#fdcdac","#cbd5e8","#f4cae4","#e6f5c9","#fff2ae","#f1e2cc","#cccccc"]
         | 
| 286 | 
            +
                      },"Set1"=> {
         | 
| 287 | 
            +
                        3=> ["#e41a1c","#377eb8","#4daf4a"],
         | 
| 288 | 
            +
                        4=> ["#e41a1c","#377eb8","#4daf4a","#984ea3"],
         | 
| 289 | 
            +
                        5=> ["#e41a1c","#377eb8","#4daf4a","#984ea3","#ff7f00"],
         | 
| 290 | 
            +
                        6=> ["#e41a1c","#377eb8","#4daf4a","#984ea3","#ff7f00","#ffff33"],
         | 
| 291 | 
            +
                        7=> ["#e41a1c","#377eb8","#4daf4a","#984ea3","#ff7f00","#ffff33","#a65628"],
         | 
| 292 | 
            +
                        8=> ["#e41a1c","#377eb8","#4daf4a","#984ea3","#ff7f00","#ffff33","#a65628","#f781bf"],
         | 
| 293 | 
            +
                        9=> ["#e41a1c","#377eb8","#4daf4a","#984ea3","#ff7f00","#ffff33","#a65628","#f781bf","#999999"]
         | 
| 294 | 
            +
                      },"Set2"=> {
         | 
| 295 | 
            +
                        3=> ["#66c2a5","#fc8d62","#8da0cb"],
         | 
| 296 | 
            +
                        4=> ["#66c2a5","#fc8d62","#8da0cb","#e78ac3"],
         | 
| 297 | 
            +
                        5=> ["#66c2a5","#fc8d62","#8da0cb","#e78ac3","#a6d854"],
         | 
| 298 | 
            +
                        6=> ["#66c2a5","#fc8d62","#8da0cb","#e78ac3","#a6d854","#ffd92f"],
         | 
| 299 | 
            +
                        7=> ["#66c2a5","#fc8d62","#8da0cb","#e78ac3","#a6d854","#ffd92f","#e5c494"],
         | 
| 300 | 
            +
                        8=> ["#66c2a5","#fc8d62","#8da0cb","#e78ac3","#a6d854","#ffd92f","#e5c494","#b3b3b3"]
         | 
| 301 | 
            +
                      },"Set3"=> {
         | 
| 302 | 
            +
                        3=> ["#8dd3c7","#ffffb3","#bebada"],
         | 
| 303 | 
            +
                        4=> ["#8dd3c7","#ffffb3","#bebada","#fb8072"],
         | 
| 304 | 
            +
                        5=> ["#8dd3c7","#ffffb3","#bebada","#fb8072","#80b1d3"],
         | 
| 305 | 
            +
                        6=> ["#8dd3c7","#ffffb3","#bebada","#fb8072","#80b1d3","#fdb462"],
         | 
| 306 | 
            +
                        7=> ["#8dd3c7","#ffffb3","#bebada","#fb8072","#80b1d3","#fdb462","#b3de69"],
         | 
| 307 | 
            +
                        8=> ["#8dd3c7","#ffffb3","#bebada","#fb8072","#80b1d3","#fdb462","#b3de69","#fccde5"],
         | 
| 308 | 
            +
                        9=> ["#8dd3c7","#ffffb3","#bebada","#fb8072","#80b1d3","#fdb462","#b3de69","#fccde5","#d9d9d9"],
         | 
| 309 | 
            +
                        10=> ["#8dd3c7","#ffffb3","#bebada","#fb8072","#80b1d3","#fdb462","#b3de69","#fccde5","#d9d9d9","#bc80bd"],
         | 
| 310 | 
            +
                        11=> ["#8dd3c7","#ffffb3","#bebada","#fb8072","#80b1d3","#fdb462","#b3de69","#fccde5","#d9d9d9","#bc80bd","#ccebc5"],
         | 
| 311 | 
            +
                        12=> ["#8dd3c7","#ffffb3","#bebada","#fb8072","#80b1d3","#fdb462","#b3de69","#fccde5","#d9d9d9","#bc80bd","#ccebc5","#ffed6f"]
         | 
| 312 | 
            +
                      }}
         | 
| 313 | 
            +
                  end
         | 
| 314 | 
            +
                end
         | 
| 315 | 
            +
              end
         | 
| 316 | 
            +
            end
         |