Socket
Book a DemoInstallSign in
Socket

minichart

Package Overview
Dependencies
Maintainers
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

minichart

0.3.2
bundlerRubygems
Version published
Maintainers
1
Created
Source

Minichart - SVG Chart Generator

Create SVG mini charts with Ruby

demo

Install

$ gem install minichart

Or with bundler:

gem 'minichart'

Usage

Require and optionally include the library:

require 'minichart'
include Minichart

Initialize a chart with data, and optional options:

data = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5, 9]
chart = AreaChart.new data, color: 'blue'

Get the full SVG output by calling #render:

puts chart.render
#=> <?xml version="1.0" standalone="no"?>
#   <svg> ... </svg>

Save it to file, by calling #save:

chart.save "my-chart.svg"

Get its inner SVG string by calling #to_s:

puts chart.to_s
#=> <polyline fill="blue" stroke="blue" stroke-width="2" points="..."/>

The objects returned from all the mini chart classes are Victor::SVG objects, so they support all methods supported by it as well.

Chart Types

Line Chart

LineChart.new [10, 30, 20, 40, 30], background: '#eee',
  height: 50, width: 250, color: 'green'

Bar Chart

BarChart.new [10, 30, 20, 40, 30], background: '#eee',
  height: 50, width: 250, color: 'green'

Area Chart

AreaChart.new [10, 30, 20, 40, 30], background: '#eee',
  height: 50, width: 250, color: 'green'

Horizontal Bar Meter

positive = HorizontalBarMeter.new 70,
  height: 20, width: 250, background: '#9f9', color: 'green'

negative = HorizontalBarMeter.new -80,
  height: 20, width: 250, background: '#f99', color: 'red'

dual = HorizontalBarMeter.new 80,
  height: 20, width: 250, background: '#99f', color: 'blue',
  mode: :dual, notches: [0]

Meter charts support additional options.

Vertical Bar Meter

positive = VerticalBarMeter.new 70,
  width: 20, height: 250, background: '#9f9', color: 'green'

negative = VerticalBarMeter.new -80,
  width: 20, height: 250, background: '#f99', color: 'red'

dual = VerticalBarMeter.new 80,
  width: 20, height: 250, background: '#99f', color: 'blue',
  mode: :dual, notches: [0]

Meter charts support additional options.

Horizontal Status Leds

HorizontalStatusLeds.new [1,1,-1,0,1,1,1,1,1,-1,-1,1],
  background: '#ccc'

Led charts support additional options.

Vertical Status Leds

VerticalStatusLeds.new [1,1,1,1,-1,1,-1,1,0,1],
  background: '#ccc'

Led charts support additional options.

Configuration

Chart options can be set in one of three ways.

Class-level default options

See or set default options for any chart class by calling its ::options method:

# See all options
p AreaChart.options
#=> {:background=>"white", :height=>100, :width=>300, :stroke=>2, :style=>{}, :color=>"#66f"}

# Set a single default option
AreaChart.options[:color] = '#333'

# Set multiple options at once
AreaChart.options background: 'black', color: 'green'

Instance initialization options

Set options by providing a hash as the second argument on initialization:

chart = AreaChart.new data, height: 120, width: 500

Instance-level options

After initialization, you can still update individual options:

chart = AreaChart.new data
chart.options[:background] = 'yellow'

Options Reference

Basic Options

  • background: Chart background color.
  • color: Chart color.
  • height: Chart height in pixels.
  • width: Chart width in pixels.
  • stroke: Line stroke width. This has a different effect in different chart types.
  • style: CSS Style hash to apply to the entire SVG.
  • padding: Chart padding in pixels.

Meter Options

Meter charts support these options in additon to the basic options:

  • mode: Display mode. Can be :positive, :negative, :dual or :auto (default). The :auto mode will switch between :positive and :negative based on the value.
  • max: The absolute maximum value. This number should be positive even for negative charts.
  • notches: An array of one or more levels to place a notch marker. Use positive values only.
  • notch_thickness: Thickness of the notch markers.
  • notch_color: Color of the notch markers.
  • clipping_indicator: If true, show a marker when the value exceeds the range.
  • clipping_indicator_thickness: Thickness of the clipping indicator.
  • clipping_indicator_color: Color of the clipping indicator.

Leds Options

Led charts support these options in additon to the basic options (excluding the color option):

  • positive_color: Color to use when the value is greater than 0.
  • negative_color: Color to use when the value is less than 0.
  • neutral_color: Color to use when the value is 0 or nil.
  • min_opacity: A value between 0 and 1 representing the minimum opacity that will be applied to values when they are lower than the maximum range.

Examples

See more examples (code and SVG output) in the examples folder.

Contributing / Support

If you experience any issue, have a question or a suggestion, or if you wish to contribute, feel free to open an issue.

FAQs

Package last updated on 12 Jun 2020

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

About

Packages

Stay in touch

Get open source security insights delivered straight into your inbox.

  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc

U.S. Patent No. 12,346,443 & 12,314,394. Other pending.