collections-benchmark/matplotlib-d/README.md

92 lines
2.4 KiB
Markdown

# matplotlib-d
[![MIT License](http://img.shields.io/badge/license-MIT-blue.svg?style=flat)](LICENSE)
[![Build Status](https://travis-ci.org/koji-kojiro/matplotlib-d.svg?branch=master)](https://travis-ci.org/koji-kojiro/matplotlib-d)
[![Dub version](https://img.shields.io/dub/v/matplotlib-d.svg)](https://code.dlang.org/packages/matplotlib-d)
[![Dub download](https://img.shields.io/dub/dt/matplotlib-d.svg)](https://code.dlang.org/packages/matplotlib-d)
2D Plotting library for D using python and matplotlib.
## Requirements
- Python
- matplotlib
`matplotlib-d` uses `python3` by default, thus if you want to use `python2`, set `$MATPLOTLIB_D_PYTHON` to `python2`.
## Usage
### Installation
To use this package, put the following dependency into your project's dependencies section:
dub.json: `"matplotlib-d": "~>0.1.4"`
dub.sdl: `dependency "matplotlib-d" version="~>0.1.4"`
For small applications or scripts, add following sentence to the head of your script.
```d
#!/usr/bin/env dub
/+ dub.sdl:
name "name_of_your_application"
dependency "matplotlib-d" version="~>0.1.4"
+/
```
And excute with `dub run --single`.
For more details, please refer to [the documentation of dub](https://code.dlang.org/getting_started).
### Syntax
Most pyplot functions are available.
For more details for each functions, please refer to the [documantation of pyplot](http://matplotlib.org/api/pyplot_summary.html).
Describe Python keyword arguments as an associative array with string of keyword name as key.
- The Python way:
*function(arg1, arg2..., keyword1=kwarg1, keyword2=kwarg2...)*
- The D way:
*function(arg1, arg2..., ["keyword1": kwarg1], ["keyword2": kwarg2])*
## Examples
Simple example:
```d
import std.math;
import std.range;
import std.algorithm;
import plt = matplotlibd.pyplot;
void main() {
auto x = iota(0, 2.05, 0.05).map!(x => x * PI);
auto y = x.map!(sin);
plt.plot(x, y, "r-", ["label": "$y=sin(x)$"]);
plt.xlim(0, 2 * PI);
plt.ylim(-1, 1);
plt.legend();
plt.savefig("simple.png");
plt.clear();
}
```
![Simple example](./examples/simple.png)
Color plot example:
```d
import std.range;
import plt = matplotlibd.pyplot;
void main() {
const n = 100;
auto x = iota(n);
auto y = x[];
double[n][n] z;
foreach (i; 0..n)
foreach (j; 0..n)
z[i][j] = i + j;
plt.contourf(x, y, z, 64, ["cmap": "hsv"]);
plt.colorbar();
plt.savefig("color.png");
plt.clear();
}
```
![Color plot example](./examples/color.png)