Code Monkey home page Code Monkey logo

gtkmm-plplot's Introduction

CI Language grade: C/C++ Total alerts Sponsor PayPal Amazon Wish list Gitter

Gtkmm-PLplot

Gtkmm-PLplot is a simple plotting library that brings the power of PLplot to Gtkmm. It does so by relying on the Gtk::DrawingArea widget whose drawing signal uses PLplot's extcairo plotting device to generate publication quality plots on your screen...

Currently this library is under heavy development but it should already be useful for simple two-dimensional graphs. The API should not be considered to be stable at all and will be changed without warning...

Gtkmm-PLplot is licensed under the LGPLv3.

Features

  • Create plots using two std::vector, std::valarray and boost::multi_array objects.
  • Zoom in by dragging a selection box.
  • Support for two-dimensional plots, polar plots, contour plots with or without shaded regions, three-dimensional line plots
  • Supports multiple, independently controlled plots on a single canvas.
  • Extensive use of libsigc++ signals
  • Highly extensible

Requirements

  • Gtkmm4
  • PLplot (at least 5.11.0 but earlier versions may also work, the C++ bindings are required)
  • a C++17 compiler (GCC, clang...)
  • Boost (optional)

Supported platforms

Development occurs mostly on a Mac but I will ensure it also runs properly on Windows and Linux...

Documentation

I have generated documentation with Doxygen. Have a look at http://tschoonj.github.io/gtkmm-plplot.

Downloads

Tarballs can be found here

Homebrew users as well as Linux aficionados will find installations instructions in the documentation

TODO

  • plsurf3d, plmesh
  • histograms
  • Scroll to zoom in/out
  • plimage
  • ...

Tom Schoonjans

gtkmm-plplot's People

Contributors

aelerinya avatar dalan94 avatar dependabot[bot] avatar lgtm-migrator avatar tp-spectronite avatar tschoonj avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

gtkmm-plplot's Issues

PlotData2D : minimum number of points and points removal

I'm using a PlotData2D to plot only points, and not to draw lines between them, and I don't understand why I cannot plot a set of one point, or even no points at all ?

I saw that there is a check at the beginning of the PlotData2D constructor, but is this condition required by the library PLplot ? It seems arbitrary to me, as I saw multiple scatter plots done with PLplot, so it is not required to draw lines, and why would you put a minimum at two points if not to draw at least one line ?

Your library is really awesome and intuitive, but this thing just dumbfounded me.

Requested device extcairo not available

    Hi, I am building and using the Gtkmm-Plplot 2.5.0 project on Ubuntu 22.04. I installed the plplot library via the command apt install meson libplot-dev, however it installs the library version 1.15.0. The process of building and installing Gtkmm-Plplot does not report any errors, but when I use it I am prompted with a Requested device extcairo not available error.
    I used example 1 and compiled it using the command g++ test.cc -o program 'pkg-config --cflags --libs gtkmm-plplot-2.0'.I have not found where the problem is and am seeking help here.

legend boxes clipping when using subscipts.

Hi, I am so glad to have come across your library, thank so much.

I'd like to ask a question if I may. Perhaps you can suggest a workaround, though I think it may be a small bug.

The legend box height is a little too small when using subscripts, it clips. It is not that important for now, perhaps I can even fix it by having a look at the source and suggest a fix in time.

See the screenshot for details:

https://drive.google.com/file/d/1hsvz1GRRugJSPT-jKx4nB2wLrLOzAc4D/view?usp=sharing

Another feature request would be to make dashed grid lines an option on the graph background, as shown in the screen shot ( I did it by just drawing them using PlotObject2DLine myself for now), though mine do not line up with the axes labels lines currently, but hopefully you get my drift.

Only having the option to have solid grid lines or none I find I didn't suit my tastes. I find the former too busy on the eye, the latter too bare. I guess it could be added to the list of options with set_box_style is what I had in mind.

set_box_style(Gtk::PLplot::BOX_DASHED_GRID_LINE_OR_SOMETHING_LIKE_THAT);

Awesome work. 😀

Best regards

Date / time formatting for axes

Thank you for your library. I have been searching for a plot library for GTKmm for a long time.

Is it possible to use date / time formatting for axes like here in plplot ?

I couldn't find the option in gtkmm-plplot but I think it could be easy to add because it work on plplot-cpp.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.