Project

gruff

A long-lived project that still receives updates
Beautiful graphs for one or multiple datasets. Can be used on websites or in documents.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Runtime

 Project Readme

Gruff Graphs

CI Gem Version

A library for making beautiful graphs.

Built on top of rmagick; see its web page for a list of the system-level prerequisities (ImageMagick etc) and how to install them.

Installation

Add this line to your application's Gemfile:

gem 'gruff'

And then execute:

$ bundle

Or install it yourself as:

$ gem install gruff

Font

Gruff uses Roboto font as default font which is licensed under the Apache License, Version 2.0.

Usage

require 'gruff'
g = Gruff::Line.new
g.title = 'Wow!  Look at this!'
g.labels = { 0 => '5/6', 1 => '5/15', 2 => '5/24', 3 => '5/30', 4 => '6/4',
             5 => '6/12', 6 => '6/21', 7 => '6/28' }
g.data :Jimmy, [25, 36, 86, 39, 25, 31, 79, 88]
g.data :Charles, [80, 54, 67, 54, 68, 70, 90, 95]
g.data :Julie, [22, 29, 35, 38, 36, 40, 46, 57]
g.data :Jane, [95, 95, 95, 90, 85, 80, 88, 100]
g.data :Philip, [90, 34, 23, 12, 78, 89, 98, 88]
g.data :Arthur, [5, 10, 13, 11, 6, 16, 22, 32]
g.write('exciting.png')

Examples

You can find many examples in the test directory along with their resulting charts in the expected directory.

Accumulator bar chart

Accumulator bar chart

Area chart

Area chart

Bar chart

Bar chart

Bezier chart

In progress!

Bezier chart

Bullet chart

In progress!

Bullet chart

Dot chart

Dot chart

Line chart

Line chart

LineXY chart

LineXY chart

Net chart

Net chart

Pie chart

Pie chart

Scatter chart

Scatter chart

Side bar chart

Side bar chart

Side stacked bar chart

Side stacked bar chart

Spider chart

Spider chart

Stacked area chart

Stacked area chart

Stacked bar chart

Stacked bar chart

Histogram chart

Histogram chart

Box chart

Box chart

Candlestick

Candlestick

Bubble chart

Bubble chart

Documentation

http://www.rubydoc.info/github/topfunky/gruff/frames

Supported Ruby Versions

  • Ruby 3.0 or later
  • JRuby 9.4.x or later

Development

  1. Build docker image
$ ./docker-build.sh
  1. Launch docker image
$ ./docker-launch.sh
  1. Run tests
$ bundle exec rake

If you have made changes that involve updating the expected image, you need to update the image with the following command after running tests.

$ bundle exec rake test:image:update

Contributing

Source

The source for this project is now kept at GitHub:

http://github.com/topfunky/gruff

  1. Fork it
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create new Pull Request