SVG::Graph
Description
This repo is the continuation of the original SVG::Graph library by Sean Russell. I'd like to thank Claudio Bustos for giving me permissions to continue publishing the gem under it's original name: svg-graph
I'm maintaing in my free time, so I can't promise on any deadlines. Please notify me (via github messages or on the Issues section) if you find any bug.
Contribute
Pull requests are very welcome :-)
Usage
For a complete list of configuration options please have a look at the source - most important Graph.rb, also checkout the subclasses (Pie, Bar, etc.) as they might provide additional options.
You can require everything at once
require 'svggraph'
or only the individual parts you need
require 'SVG/Graph/Bar'
require 'SVG/Graph/Line'
...
In the following some examples to get you up to speed.
Bar
require 'SVG/Graph/Bar'
x_axis = ['1-10', '10-30', '30-50', '50-70', 'older']
options = {
:width => 640,
:height => 300,
:stack => :side, # the stack option is valid for Bar graphs only
:fields => x_axis,
:graph_title => "kg per head and year chocolate consumption",
:show_graph_title => true,
:show_x_title => true,
:x_title => 'Age in years',
:show_y_title => true,
:y_title => 'kg/year',
:y_title_location => :end,
:no_css => true
}
male_data = [2, 4, 6, 4, 2]
female_data = [1, 5, 4, 5, 2.7]
g = SVG::Graph::Bar.new(options)
g.add_data( {
:data => female_data,
:title => "Female"
})
g.add_data( {
:data => male_data,
:title => "Male"
})
# graph.burn # this returns a full valid xml document containing the graph
# graph.burn_svg_only # this only returns the <svg>...</svg> node
File.open('bar.svg', 'w') {|f| f.write(g.burn_svg_only)}
BarHorizontal
ErrBar
Line
Pie
Plot
Schedule
TimeSeries
C3js
Source: C3js.rb
Build
- Test
bundle exec rake
- Build gem:
gem build svg-graph.gemspec
- Install:
gem install svg-graph-\<version>.gem
Percy.io integration
https://docs.percy.io/docs/travis-ci https://docs.percy.io/docs/snapshot-cli-command