Gruff Graphs
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
Area chart
Bar chart
Bezier chart
In progress!
Bullet chart
In progress!
Dot chart
Line chart
LineXY chart
Net chart
Pie chart
Scatter chart
Side bar chart
Side stacked bar chart
Spider chart
Stacked area chart
Stacked bar chart
Histogram chart
Box chart
Candlestick
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
Build docker image
$ ./docker-build.sh
Launch docker image
$ ./docker-launch.sh
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
- Fork it
- Create your feature branch (
git checkout -b my-new-feature
) - Commit your changes (
git commit -am 'Add some feature'
) - Push to the branch (
git push origin my-new-feature
) - Create new Pull Request