92 lines
2.4 KiB
Markdown
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)
|