aquaplot
AquaPlot is a data visualization library for crystal-lang. It provides an easy to user interface to create visually appealing charts. This project is currently in extremely unstable and active development. Contributions are both welcomed and encouraged, to get this library to a stable and useful state.
Installation
-
Add the dependency to your
shard.yml
:dependencies: aquaplot: github: crystal-data/aquaplot
-
Run
shards install
Usage
Gnuplot is required. Please review your operating system's installation instructions to install the library.
require "aquaplot"
Function Charts
fns = ["sin(x)", "cos(x)", "tan(x)", "atan(x)", "asin(x)"].map do |fn|
AquaPlot::Function.new fn
end
plt = AquaPlot::Plot.new fns
plt.show
plt.close
3D Function Charts
fns = ["x**2 + y**2", "x**2 - y**2", "x**2 * y**2", "x**2 / y**2"].map do |fn|
AquaPlot::Function.new fn
end
plt = AquaPlot::Plot3D.new fns
plt.set_key("left box")
plt.show
plt.close
2D Line Charts
lines = (1...5).map do |n|
AquaPlot::Line.new (0...10).map { |el| Random.rand(50) }, title: "Line #{n}"
end
lines[0].show_points
lines[1].set_linewidth 1
plt = AquaPlot::Plot.new lines
plt.set_title("Showing Some Options")
plt.show
plt.close
Development
TODO Write development instructions here
Contributing
- Fork it (https://github.com/crystal-data/aquaplot/fork)
- 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 a new Pull Request
Contributors
- Chris Zimmerman - creator and maintainer