Создание круговой диаграммы с драгоценным камнем Gruff в Ruby

Я пытаюсь создать круговую диаграмму, используя gruff драгоценный камень, но моя диаграмма - черная пропасть, независимо от того, что я делаю. Это мой код:

association_disposition_pie_chart = Gruff::Pie.new
association_disposition_pie_chart.title = "Visual Pie Graph Test"
association_disposition_pie_chart.data 'Solved', 10
association_disposition_pie_chart.data 'Action Required', 50
    association_disposition_pie_chart.theme = {
      :colors => ['#A5D8D8', '#EFAD1C'],
      :font_color => 'black',
      :background_colors => 'white'
    }
association_disposition_pie_chart.write("association_disposition_pie_chart.jpg")

Почему это создает черную круговую диаграмму? Фон белый, font_color черный, как и весь график. Я хочу, чтобы части диаграммы были цветами, указанными в :colors,

РЕДАКТИРОВАТЬ

Скриншот:

http://i39.tinypic.com/33ne1r6.jpg

2 ответа

При использовании imagemagick-no-hdri и гема rmagick по умолчанию круговые диаграммы станут черно-белыми. Я смог решить эту проблему, выполнив следующие действия.

Install imagemagick
git clone git@github.com:rmagick/rmagick.git
gem build rmagick.gemspec
gem install ./rmagick-2.13.2.gem

Это упоминается в документации:

You can set a theme manually. Assign a hash to this method before you send your data.

graph.theme = {
  :colors => %w(orange purple green white red),
  :marker_color => 'blue',
  :background_colors => %w(black grey)
}
:background_image => 'squirrel.png' is also possible.

(Or hopefully something better looking than that.)

Хотя источник более полезен:

# File 'lib/gruff/base.rb', line 300

def theme=(options)
  reset_themes()

  defaults = {
    :colors => ['black', 'white'],
    :additional_line_colors => [],
    :marker_color => 'white',
    :font_color => 'black',
    :background_colors => nil,
    :background_image => nil
  }
  @theme_options = defaults.merge options

  @colors = @theme_options[:colors]
  @marker_color = @theme_options[:marker_color]
  @font_color = @theme_options[:font_color] || @marker_color
  @additional_line_colors = @theme_options[:additional_line_colors]

  render_background
end

Я думаю, может быть, проблема в твоем colors атрибут - :colors => ['#A5D8D8', '#EFAD1C'] - как упоминал Shaun Frost Duke Jackson, похоже, вам нужно использовать add_color('#c0e9d3') чтобы сделать это, но в документации не ясно, где вы это делаете, если вы определяете тему в строке. Может быть проще добавить свою собственную тему в THEMES модуль:

LUIGIS_THEME = {
      :colors => [
        '#A5D8D8',
        '#EFAD1C'
      ],
      :marker_color => '#55ae36', 
      :font_color => 'black',
      :background_colors => 'white'
    }

который затем вызывается с g.theme = Gruff::Themes::LUIGIS_THEME

Другие вопросы по тегам