Coder Social home page Coder Social logo

adelks / zegrapher Goto Github PK

View Code? Open in Web Editor NEW
64.0 7.0 8.0 3.62 MB

2D Math and Data plotter.

Home Page: https://zegrapher.com

License: GNU General Public License v3.0

C++ 95.14% C 1.21% Meson 1.31% Shell 0.35% QML 1.99%
math plot curves 2d parametric-equation math-functions sequences

zegrapher's Introduction

ZeGrapher logo with name

Build Status Gitter

ZeGrapher example

ZeGrapher is a free, open source and easy to use software for plotting mathematical objects. It can plot functions, sequences, parametric equations and data on the plane.

Official website: https://zegrapher.com/


Features

ZeGrapher is in a deep rework stage, the features described here may still not be implemented.

  • Visualize functions by giving their "natural" equations (e.g. f(x) = 2+cos(x))
    • All the standard mathematical functions (cos cosh exp ...etc) can be used.
    • Any user defined function can be used.
    • Planned: compute derivatives and integrals.
  • Visualize numerical sequences through specific equations
    • Defined by giving a list of expressions separated with , or ;
    • The last expression is the "generic" expression that is used for any other index that the first values.
    • If more than one expression is provided, the first expressions are considered as the first values of the sequence
    • Example: Fibonacci sequence u(n) = 0 ; 1 ; u(n-2) + u(n-2)
      • First values: 0, 1
      • Generic expression: u(n-2) + u(n-1)
  • Can define "global constants", i.e. a variable that has an explicit numeric value without depending on any other object
    • Example pi = 3.14
    • Can be used for parametric plots of functions, sequences and parametric equations.
  • Can define "global variables", i.e. a function without input variables that can arbitrarily depend on other objects.
  • Plotting of 2D data
    • Polynomial fitting (regression).
    • Data can be imported from/exported to a CSV file.
  • Extensive tools for precise exporting
    • Image (png, jpeg, tiff, gif...) and scalable (svg, pdf) formats
    • Preview the graph exactly how it will look once exported
      • Set sizes in centimeter or in pixels
      • A global scaling factor is offered to change the DPI
      • Move the graph within the page
  • Navigate on the graph :
    • Select a curve to display the coordinates of its points.
    • Zoom/unzoom on each axis separately, around the mouse (with the scroll wheel), or fit on a mouse drawn rectangle.
    • Move the graph.
  • Customization/visualization
    • Linear and logarithmic scales
      • Can be set independently for x and y axes.
    • Can change the grid ticks to be multiples of a given variable/value
      • e.g. multiples of ฯ€
    • Change colors: axes, background, functions...
    • Adjust the plotting precision.
      • Note that it will also affect rendering speed.
    • Show/hide the grid
    • Show/hide the subgrid.
      • user set number of subdivisions
    • Activate/deactivate curves' smoothing.
    • Plot the graph on an orthonormal basis.

Download

ZeGrapher is available in the official repositories of Debian, Fedora, Ubuntu, FreeBSD. In the Archlinux (AUR). An AppImage is otherwise available, along with Windows and Mac versions in Zegrapher's Github releases page or at zegrapher.com.

Compile from sources

To compile from sources, ZeGrapher needs the following tools and libraries:

To build

$ meson setup build
$ cd build
$ meson compile
$ cd ..

This creates the ZeGrapher executable in build/src/ZeGrapher that you can directly run.

Packaging

zegrapher's People

Contributors

adelks avatar eclipseo avatar helge17 avatar keszybz avatar microwave54 avatar palob avatar probonopd 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

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

zegrapher's Issues

AppImage issues

Hello @probonopd, hope you are doing alright ?

I would need a bit of help regarding appimages, the latest ones Travis is producing are crashing on my Arch distro:

./ZeGrapher-443816c-x86_64.AppImage 
qt.network.ssl: QSslSocket: cannot resolve CRYPTO_num_locks
qt.network.ssl: QSslSocket: cannot resolve CRYPTO_set_id_callback
qt.network.ssl: QSslSocket: cannot resolve CRYPTO_set_locking_callback
qt.network.ssl: QSslSocket: cannot resolve ERR_free_strings
qt.network.ssl: QSslSocket: cannot resolve EVP_CIPHER_CTX_cleanup
qt.network.ssl: QSslSocket: cannot resolve EVP_CIPHER_CTX_init
qt.network.ssl: QSslSocket: cannot resolve sk_new_null
qt.network.ssl: QSslSocket: cannot resolve sk_push
qt.network.ssl: QSslSocket: cannot resolve sk_free
qt.network.ssl: QSslSocket: cannot resolve sk_num
qt.network.ssl: QSslSocket: cannot resolve sk_pop_free
qt.network.ssl: QSslSocket: cannot resolve sk_value
qt.network.ssl: QSslSocket: cannot resolve SSL_library_init
qt.network.ssl: QSslSocket: cannot resolve SSL_load_error_strings
qt.network.ssl: QSslSocket: cannot resolve SSL_get_ex_new_index
qt.network.ssl: QSslSocket: cannot resolve SSLv3_client_method
qt.network.ssl: QSslSocket: cannot resolve SSLv23_client_method
qt.network.ssl: QSslSocket: cannot resolve SSLv3_server_method
qt.network.ssl: QSslSocket: cannot resolve SSLv23_server_method
qt.network.ssl: QSslSocket: cannot resolve X509_STORE_CTX_get_chain
qt.network.ssl: QSslSocket: cannot resolve OPENSSL_add_all_algorithms_noconf
qt.network.ssl: QSslSocket: cannot resolve OPENSSL_add_all_algorithms_conf
qt.network.ssl: QSslSocket: cannot resolve SSLeay
qt.network.ssl: Incompatible version of OpenSSL
Screen refresh rate:  239
qt.network.ssl: QSslSocket::connectToHostEncrypted: TLS initialization failed
qt.network.ssl: QSslSocket::connectToHostEncrypted: TLS initialization failed
indirect paint  48271
[1]    19238 segmentation fault (core dumped)  ./ZeGrapher-443816c-x86_64.AppImage

I updated the distro used to Xenial and to Qt 5.12.8 and I am segfaulting, the thing is that it works on Ubuntu.

I found how to make macos images too ! Have a look at my new .travis.yml

Also, how can I include OpenSSL in the Appimage ?

Thank you!

Is there a function reference?

The website says "all the usual functions are available" โ€ฆ but what are the usual functions?
I'm trying to chart a cube root, and I tried cbrt(x), and root(x, 3). How can I do this, or, more importantly, how can I see all the functions I can use? Even if it's just a file in the source code, it might be enough for now.

Build AppImage packages using Travis CI

Compile this application on Travis CI upon each git push, and upload an AppImage to your GitHub Releases page.

Providing an AppImage would have, among others, these advantages:

  • Applications packaged as an AppImage can run on many distributions (including Ubuntu, Fedora, openSUSE, CentOS, elementaryOS, Linux Mint, and others)
  • One app = one file = super simple for users: just download one AppImage file, make it executable, and run
  • No unpacking or installation necessary
  • No root needed
  • No system libraries changed
  • Works out of the box, no installation of runtimes needed
  • Optional desktop integration with appimaged
  • Optional binary delta updates, e.g., for continuous builds (only download the binary diff) using AppImageUpdate
  • Can optionally GPG2-sign your AppImages (inside the file)
  • Works on Live ISOs
  • Can use the same AppImages when dual-booting multiple distributions
  • Can be listed in the AppImageHub central directory of available AppImages
  • Can double as a self-extracting compressed archive with the --appimage-extract parameter

Here is an overview of projects that are already distributing upstream-provided, official AppImages.

TODO

  1. https://github.com/appimage/appimagekit
    1.1 https://github.com/probonopd/linuxdeployqt
    1.2 https://github.com/probonopd/uploadtool

PLEASE NOTE: For this to work, you need to enable Travis CI for your repository as described here prior to merging this, if you haven't already done so. Also, You need to set up GITHUB_TOKEN in Travis CI for this to work; please see https://github.com/probonopd/uploadtool.

If you have questions, AppImage developers are on #AppImage on irc.freenode.net.

Two copies of the .appdata.xml file

Hello!
Hope everything is alright for you @eclipseo, I opened this issue to ask if it's mandatory to have two copies of the file ZeGrapher.appdata.xml: one is in the root folder, the other in the appdata folder.
Thanks!

Todo for v3 Release

  • Add new math functions, from c++11 norm (erf, gamma... etc)
  • Save user preferences:
    • Settings
    • Functions' and sequences' colors
  • Implement new integrated error message system for functions and sequences.
  • Added "Default curve color" entry in settings window: the user can now choose the default color given to any new added mathematical object.
  • Pressing Enter after editing a cell in a data window will get the focus on the next lower cell.
  • In data tables: selecting cells with the mouse then hitting Delete or Backspace will empty them
  • Write help documents in English and French for the data windows (since there are a lot of hidden possibilites)
  • Remove data rows when emptied by keyboard deletion.
  • Bug tracking, testing
    • Polynomial Fit move apart when the asked degree is too big: with the current way to calculate fits, the double data type is not precise enough for that: programmed a new way to calculate which is more precise, but still moves apart starting from the 20th degree.
    • A lot of bugs fixed... (check the commits if interested)
    • Fix scroll freeze issue
  • Export from values table
  • Update check module
  • Update the website with the new version's description
  • Compile for Windows, Linux and Mac
  • Release!

Released! ๐Ÿ˜†

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.