Huge news!Announcing our $20M Series A led by Andreessen Horowitz.Learn more
Log inDemoInstall

Package Overview
File Explorer

Package chart implements common chart/plot types. The following chart types are available: Chart tries to provides useful defaults and produce nice charts without sacrificing accuracy. The generated charts look good and are higly customizable but will not match the visual quality of handmade photoshop charts or the statistical features of charts produced by S or R. Creating charts consists of the following steps: You may change the configuration at any step or render to different outputs. The different chart types and their fields are all simple struct types where the zero value provides suitable defaults. All fields are exported, even if you are not supposed to manipulate them directy or are 'output fields'. E.g. the common Data field of all chart types will store the sample data added with one or more Add... methods. Some fields are mere output which expose internal stuff for your use like the Data2Screen and Screen2Data functions of the Ranges. Some fields are even input/output fields: E.g. you may set the Range.TicSetting.Delta to some positive value which will be used as the spacing between tics on that axis; on the other hand if you leave Range.TicSetting.Delta at its default 0 you indicate to the plotting routine to automatically determine the tic delta which is then reported back in this fields. All charts (except pie/ring charts) contain at least one axis represented by a field of type Range. Axis can be differented into following categories: How the axis is autoscaled can be controlled for both ends of the axis individually by MinMode and MaxMode which allow a fine control of the (auto-) scaling. After setting up the chart, adding data, samples, functions you can render the chart to a Graphics output. This process will set several internal fields of the chart. If you reuse the chart, add additional data and output it again these fields might no longer indicate 'automatical/default' but contain the value calculated in the first output round.


Version published


Charts for Go

Basic charts in go.

This package focuses more on autoscaling, error bars, and logarithmic plots than on beautifull or marketing ready charts.


Some nice charts

Chart Types

The following chart types are implemented:

  • Strip Charts
  • Scatter / Function-Plot Charts
  • Histograms
  • Bar and Categorical Bar Charts
  • Pie/Ring Charts
  • Boxplots

Some Features

  • Axis can be linear, logarithmical, categorical or time/date axis.
  • Autoscaling with lots of options
  • Fine control of tics and labels

Output / Graphic Formats

Package chart itself provideds the charts/plots itself, the charts/plots can be output to different graphic drivers. Currently

  • txtg: ASCII art charts
  • svgg: scalable vector graphics (via, and
  • imgg: Go image.RGBA (via and are implemented.

For a quick overview save as xbestof.{png,svg,txt} run

  $ example/example -best

A fuller overview can be generated by

  $ example/example -All


  • Style handling (especialy colour) is a bit of a mess .
  • Text based charts are cute. But the general graphics would be much easier without.
  • Time handling code dates back to pre Go1, it should be reworked.


Last updated on 14 Sep 2015

Did you know?

Socket installs a GitHub app to automatically flag issues on every pull request and report the health of your dependencies. Find out what is inside your node modules and prevent malicious activity before you update the dependencies.

SocketSocket SOC 2 Logo


  • Package Issues
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.

  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc