def prepare_plot
      @plottable = types.any? { |x| /BGA/i =~ x }
      if  @plottable
        @last_empty_char = '.'
        @field = []
        @groups = []
        @group_list = list_groups
        @columns = []
        jedec_rows = %w(A B C D E F G H J K L M N P R T U V W Y AA AB AC AD AE AF AG AH AJ AK AL AM AN AP AR AT AU AV AW AY BA BB BC BD BE BF BG BH BJ BK BL BM BN BP)
        @number_of_rows.times { @field.insert(0, []); @number_of_columns.times { @field[0].insert(0, []) } }
        @rows = jedec_rows[0, @number_of_rows]
        (1..@number_of_columns).map { |item| @columns << item }
        @upper_axes = []
        @lower_axes = []
        @columns.each_with_index do|column, index|
          # if index % 2 == 0
          if index.even?
            temp = column.to_s
            temp += ' ' unless temp.size > 1
            @upper_axes << temp
            @lower_axes << '  '
          else
            temp = column.to_s
            temp += ' ' unless temp.size > 1
            @lower_axes << temp
            @upper_axes << '  '
          end
        end
      else
        puts 'Sorry, currently the plot feature only supports BGA package types.'
      end
    end
def prepare_plot
      @plottable = types.any? { |x| /BGA/i =~ x }
      if  @plottable
        @last_empty_char = '.'
        @field = []
        @groups = []
        @group_list = list_groups
        @columns = []
        jedec_rows = %w(A B C D E F G H J K L M N P R T U V W Y AA AB AC AD AE AF AG AH AJ AK AL AM AN AP AR AT AU AV AW AY BA BB BC BD BE BF BG BH BJ BK BL BM BN BP)
        @number_of_rows.times { @field.insert(0, []); @number_of_columns.times { @field[0].insert(0, []) } }
        @rows = jedec_rows[0, @number_of_rows]
        (1..@number_of_columns).map { |item| @columns << item }
        @upper_axes = []
        @lower_axes = []
        @columns.each_with_index do|column, index|
          # if index % 2 == 0
          if index.even?
            temp = column.to_s
            temp += ' ' unless temp.size > 1
            @upper_axes << temp
            @lower_axes << '  '
          else
            temp = column.to_s
            temp += ' ' unless temp.size > 1
            @lower_axes << temp
            @upper_axes << '  '
          end
        end
      else
        puts 'Sorry, currently the plot feature only supports BGA package types.'
      end
    end
prepare_plot should not need to be called explicitly. It is called
  by other methods when need-be, and is fundamentallyis responsible
  for two things:

    1. It checks that self.types includes a "BGA" option.
    2. It populates the .field attribute with a multi-dimensional
       array, proportional in size to the package BGA.