All Projects → stisa → graph

stisa / graph

Licence: MIT license
A basic plotting lib in nim

Programming Languages

nim
578 projects

Labels

Projects that are alternatives of or similar to graph

Plotoptix
Data visualisation in Python based on OptiX 7.2 ray tracing framework.
Stars: ✭ 252 (+908%)
Mutual labels:  plot
fem mesh matlab
MATLAB Toolbox for Handling 2D and 3D FEM Meshes
Stars: ✭ 23 (-8%)
Mutual labels:  plot
ploot
Plot streaming data from stdin to a tty terminal
Stars: ✭ 54 (+116%)
Mutual labels:  plot
sigstar
add significance stars to MATLAB plots
Stars: ✭ 33 (+32%)
Mutual labels:  plot
laravel-quasar
⏰📊✨Laravel Time Series - Provides an API to create and maintain data projections (statistics, aggregates, etc.) from your Eloquent models, and convert them to time series.
Stars: ✭ 78 (+212%)
Mutual labels:  plot
charter
DSL and C Library to generate SVG Plot
Stars: ✭ 39 (+56%)
Mutual labels:  plot
Dython
A set of data tools in Python
Stars: ✭ 200 (+700%)
Mutual labels:  plot
WikiChron
Data visualization tool for wikis evolution
Stars: ✭ 19 (-24%)
Mutual labels:  plot
Glimma
Glimma R package
Stars: ✭ 48 (+92%)
Mutual labels:  plot
clusterix
Visual exploration of clustered data.
Stars: ✭ 44 (+76%)
Mutual labels:  plot
Goodreads visualization
A Jupyter notebook where I play with my Goodreads data
Stars: ✭ 51 (+104%)
Mutual labels:  plot
maptalks.plot
🎨 | maptalks plot
Stars: ✭ 19 (-24%)
Mutual labels:  plot
sarviewer
Generate graphs with gnuplot or matplotlib (Python) from sar data
Stars: ✭ 60 (+140%)
Mutual labels:  plot
publib
Produce publication-level quality images on top of Matplotlib
Stars: ✭ 34 (+36%)
Mutual labels:  plot
gantt-chart
Web component implementation of a Gantt chart.
Stars: ✭ 24 (-4%)
Mutual labels:  plot
Jkqtplotter
an extensive Qt5 Plotter framework (including a feature-richt plotter widget, a speed-optimized, but limited variant and a LaTeX equation renderer!), written fully in C/C++ and without external dependencies
Stars: ✭ 246 (+884%)
Mutual labels:  plot
distfit
distfit is a python library for probability density fitting.
Stars: ✭ 250 (+900%)
Mutual labels:  plot
JPlotter
OpenGL based 2D Plotting Library for Java using AWT and LWJGL
Stars: ✭ 36 (+44%)
Mutual labels:  plot
go-notebook
Go-Notebook is inspired by Jupyter Project (link) in order to document Golang code.
Stars: ✭ 33 (+32%)
Mutual labels:  plot
multigraph
multigraph: Plot and Manipulate Multigraphs in R
Stars: ✭ 18 (-28%)
Mutual labels:  plot

Graph

This is a basic plotting library, written in nim.
The end goal is to have a tiny plotting lib to use with jupyternim
Outputs .png or .svg files, or a string that contains the png as binary data or the svg as string.

For what I want to achieve and where I'm at, see target

Some examples are in examples:

Note: text labels are WIP, only for svg atm

Example

current

import graph, math, arraymancer
let 
  x  = arange(0.0'f64, 10,0.1)
let 
  y  = sin(x)
  y2 = cos(x)
var srf = plot(x.data,y.data)
srf.plot(x.data, y2.data)
srf.grid
# Save to file
srf.saveTo("currentpng.png")
srf.saveTo("currentsvg.svg")

Current structure

  • graph: exposes everything ( basic functionality )

Inside graph there are specific apis:

  • color: exposes various colours and the proc color(r,g,b,a)
  • plot: initializing the plot, adding plots
  • surface: the implementation of Surface and Axis
  • backend<x>: handles rendering the plot

TODO:

  • matplotlib defaults
    • figure size is 6.4x4.8"
    • dpi is 100
  • target style
  • plotProc should lazily evaluate the proc?
  • better integration with Arraymancer (a Concept that matches if .data and [] ?)
  • integrate chroma? (need to contribute blend?)
  • separate drawing layers for the plot and the background/names/etc so that lines aren't overwritten
  • can I use Arraymancer's tensor without blas? Would they work in js?
  • documentation
  • looks like matplotlib does some spline/approximation stuff to get that smooth
    • nope, checked the svg and it's plain lines => I need a better line algo
  • distinguish margin and padding
  • calculate max/min y value str len and adjust eg left margin to fit labels
  • svg backend: less strings, more nodes
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].