Coder Social home page Coder Social logo

narunlifescience / alphaplot Goto Github PK

View Code? Open in Web Editor NEW
238.0 13.0 39.0 33.23 MB

:chart_with_upwards_trend: Application for statistical analysis and data visualization which can generate different types of publication quality 2D and 3D plots with extensive visual customization.

Home Page: http://alphaplot.sourceforge.net/

License: GNU General Public License v2.0

Shell 0.04% QMake 0.93% C 0.43% C++ 98.50% HTML 0.01% Inno Setup 0.10%
alpha-plot plotting scidavis qcustomplot qtchart scientific-visualization scientific-research data-visualization data-analysis graphpad

alphaplot's Introduction

alt text

License Build Testing Join the chat at https://gitter.im/narunlifescience/AlphaPlot Download AlphaPlot Download AlphaPlot Download AlphaPlot Download AlphaPlot

Alpha Plot is a free application for Scientific Data Analysis and Visualization for Windows, Linux and Mac OS X (probably BSD also).

Web Link
Website https://alphaplot.sourceforge.io/
Wiki https://alphaplot.sourceforge.io/wiki
Github https://github.com/narunlifescience/AlphaPlot
Sourceforge https://sourceforge.net/projects/alphaplot/
Test builds https://alphaplot.sourceforge.io/test-build.html

Packaging status Download on Flathub

Donate

AlphaPlot is an open-source project that has been made possible due to the generous contributions by community backers. If you are interested in supporting this project, please consider becoming a sponsor or becoming a patron https://www.patreon.com/alphaplot

Watch the Video

AlphaPlot Plotting Basics

Examples

Installation

Get the code (if you haven't already):

git clone https://github.com/narunlifescience/AlphaPlot.git 

Compile and install:

qmake
make 
sudo make install

For Windows/OSX see installation notes

Opening an issue

Ask for a new feature

Please:

  • Check if the new feature is not already implemented (Changelog)
  • Check if another person didn't already open an issue
  • If there is already an opened issue, there is no need to comment unless you have more information, it won't help. Instead, you can click on 👍 and subscribe to the issue to be notified of anything new about it

Report a bug

Please:

  • Try the latest developer build to see if the bug is still present (Attention, those builds aren't stable so they might not work well and could sometimes break things like user settings). If it works like a charm even though you see an open issue, please comment on it and explain that the issue has been fixed
  • Check if another person has already opened the same issue to avoid duplicates
  • If there already is an open issue you could comment on it to add precisions about the problem or confirm it
  • In case there isn't, you can open a new issue with an explicit title and as much information as possible (OS, Alpha Plot version, how to reproduce the problem...)
  • Please use http://pastebin.com/ for logs/debug

If there are no answers, it doesn't mean we don't care about your feature request/bug. It just means we can't reproduce the bug or haven't had time to implement it 😃

Dependencies

AlphaPlot may require the following packages ...

Package Link
Qt https://www.qt.io/
QCustomPlot https://www.qcustomplot.com/
muParser http://muparser.beltoforion.de/
GSL http://www.gnu.org/software/gsl/

Out of this, QCustomPlot and muParser sources(s) are already present in 3rdparty folder and will be statically built to AlphaPlot. So these packages need not be installed on your system.

Note: AlphaPlot uses QtDataVisualization module for 3D plotting. You may have to install its equivalent manually if the build fails with the following ERROR: Unknown module(s) in QT: datavisualization. If you are building with a local Qt installation, you may install the module with Qt maintenance tool.

Credits

Author

  • Arun Narayanankutty

Packagers

The following people have made installing AlphaPlot easier by providing specialized binary packages. In alphabetical order.

sudo add-apt-repository ppa:devacom/science
sudo apt-get update
sudo apt install alphaplot

SciDAVis & QtiPlot Developers

AlphaPlot is a fork of SciDAVis(at the time of the fork, i.e. SciDAVis 1.D009) which in turn is a fork of QtiPlot(at the time of the fork, i.e. QtiPlot 0.9-rc2). The following people have written parts of the SciDAVis & QtiPlot source code, ranging from a few lines to large chunks(in alphabetical order).

  • Tilman Benkert,
  • Shen Chen,
  • Borries Demeler,
  • José Antonio Lorenzo Fernández,
  • Knut Franke,
  • Miquel Garriga,
  • Vasileios Gkanis,
  • Gudjon Gudjonsson,
  • Alex Kargovsky,
  • Michael Mac-Vicar,
  • Arun Narayanankutty,
  • Tomomasa Ohkubo,
  • Russell Standish,
  • Aaron Van Tassle,
  • Branimir Vasilic,
  • Ion Vasilief,
  • Vincent Wagelaar

The AlphaPlot manual is based on the QtiPlot and SciDAVis manual, written by(in alphabetical order):

  • Knut Franke,
  • Roger Gadiou,
  • Ion Vasilief

We thank all the tools and library developers & contributors used by AlphaPlot(in no particular order):

... and many more we just forgot to mention!

alphaplot's People

Contributors

devacom avatar fellypao avatar filipestevao avatar fmeynadier avatar gitter-badger avatar highperformancecoder avatar lupinix avatar narunlifescience 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  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

alphaplot's Issues

log format for left and right axis

Hi,
first of all many thanks for the very nice software.
I successfully compiled from source on MacOS 11.6.1. It seems working properly. Unfortunately I did not succeed to reproduce with AlphaPlot the attached plot (produced with Gnuplot); the data are correctly imported and are in the attached ascii file. I do not succeed to set the y axis in log format and set the lower and upper limit for them. I do not know if it is my lack of knowledge in using Alphaplot or what. Could someone be so kind to try it?
Many thanks in advance for any comment or suggestion you could supply.
Best regards.

test_plot.pdf
alphaplot.txt

Alphaplot packaged in AppImage format

First, I would like to congratulate you for the AlphaPlot. I believe that this project has a promising future.

I don't know if you intend to package the application in other formats, but I packaged AlphaPlot in a AppImage:

Repository

Direct download

I know that this is not the best way to package an AppImage and it is necessary to have glibc >= 2.29 (Ubuntu 18.04 has glibc = 2.27).

I believe that a flatpak format would be even better. However, I haven't been able to compile with flatpak-builder so far.

I hope that I have contributed in some way.

AlphaPlot in flatpak format

Hello,
This issue is for registration purposes only.
As emailed to @narunlifescience, I successfully built AlphaPlot in flatpak format.

Here are the instructions for building:

  1. Compile and install qtdatavis3d BaseApp:
git clone --branch=io.qt.qtdatavis3d.BaseApp https://github.com/filipestevao/flathub.git qtdatavis3d
cd qtdatavis3d
flatpak-builder --repo=qtdatavis3d --force-clean --install-deps-from=flathub build-dir io.qt.qtdatavis3d.BaseApp.yml
flatpak remote-add --user qtdatavis3d qtdatavis3d --no-gpg-verify
flatpak install --user qtdatavis3d io.qt.qtdatavis3d.BaseApp -y
  1. Compile and install AlphaPlot app:
git clone --branch=io.github.narunlifescience.AlphaPlot https://github.com/filipestevao/flathub.git AlphaPlot
cd AlphaPlot
git clone https://github.com/flathub/shared-modules.git
flatpak-builder --repo=alphaplot --force-clean build-dir io.github.narunlifescience.AlphaPlot.yml
flatpak remote-add --user alphaplot alphaplot --no-gpg-verify
flatpak install --user alphaplot io.github.narunlifescience.AlphaPlot -y

I will make the pull request in the Flathub and keep informed here if everything goes well.

Not possible to use special characters as column ID/name in formulas

There is an error message when using a column ID that contains a special character (like Swedish wowels å, ä, ö) in the formula tab. See attached screenshot. The workaround is to use a instead of å, ä and o instead of o (but silly).

In the attached screenshot i try and use a column ID containing an "ä", in the word "magnetfält", and receive the error upon pressing "apply" in the formula tab.
AP-special characters

Impossible to set axis limits for small values (large exponents)

AP-Axis

As per example in the attached screenshot, it is impossible or at least unintuitive to set the axis limits to a small exponent. The value stated only shows 0,000000 (here I use the comma as a a decimal separator). Even when the significant digit is displayed, the decimal view is very cumbersome. It would be good if there is an intuitive syntax for negative and positive exponents (i.e. 3e-7 or 5-e10) for the axis.

Feature request: color in table

actually color of text in table is always black, it could be interesting if color depends of data : result of formula could be blue for example.

Does not work on ubuntu 18 04

Appimage out:
$ ./AlphaPlot-1.011-alpha-release-glibc2.29-x86_64.AppImage
alphaplot: /lib/x86_64-linux-gnu/libm.so.6: version GLIBC_2.29' not found (required by alphaplot) alphaplot: /lib/x86_64-linux-gnu/libm.so.6: version GLIBC_2.29' not found (required by /tmp/.mount_AlphaPH0y3oX/usr/lib/libgsl.so.25)
alphaplot: /lib/x86_64-linux-gnu/libm.so.6: version GLIBC_2.29' not found (required by /tmp/.mount_AlphaPH0y3oX/usr/lib/libQt5Widgets.so.5) alphaplot: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version GLIBCXX_3.4.26' not found (required by /tmp/.mount_AlphaPH0y3oX/usr/lib/libQt5Widgets.so.5)
alphaplot: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version GLIBCXX_3.4.28' not found (required by /tmp/.mount_AlphaPH0y3oX/usr/lib/libQt5Widgets.so.5) alphaplot: /lib/x86_64-linux-gnu/libm.so.6: version GLIBC_2.29' not found (required by /tmp/.mount_AlphaPH0y3oX/usr/lib/libQt5DataVisualization.so.5)
alphaplot: /lib/x86_64-linux-gnu/libm.so.6: version GLIBC_2.29' not found (required by /tmp/.mount_AlphaPH0y3oX/usr/lib/libQt5Gui.so.5) alphaplot: /lib/x86_64-linux-gnu/libm.so.6: version GLIBC_2.29' not found (required by /tmp/.mount_AlphaPH0y3oX/usr/lib/libQt5XmlPatterns.so.5)
alphaplot: /lib/x86_64-linux-gnu/libm.so.6: version GLIBC_2.29' not found (required by /tmp/.mount_AlphaPH0y3oX/usr/lib/libQt5Script.so.5) alphaplot: /lib/x86_64-linux-gnu/libm.so.6: version GLIBC_2.29' not found (required by /tmp/.mount_AlphaPH0y3oX/usr/lib/libQt5Core.so.5)
alphaplot: /lib/x86_64-linux-gnu/libc.so.6: version GLIBC_2.28' not found (required by /tmp/.mount_AlphaPH0y3oX/usr/lib/libQt5Core.so.5) alphaplot: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version GLIBCXX_3.4.26' not found (required by /tmp/.mount_AlphaPH0y3oX/usr/lib/libQt5Core.so.5)
alphaplot: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version GLIBCXX_3.4.28' not found (required by /tmp/.mount_AlphaPH0y3oX/usr/lib/libQt5Core.so.5) alphaplot: /lib/x86_64-linux-gnu/libm.so.6: version GLIBC_2.29' not found (required by /tmp/.mount_AlphaPH0y3oX/usr/lib/libicui18n.so.67)
alphaplot: /lib/x86_64-linux-gnu/libm.so.6: version `GLIBC_2.29' not found (required by /tmp/.mount_AlphaPH0y3oX/usr/lib/libicuuc.so.67)

make out:
$ make
cd alphaplot/ && ( test -e Makefile || /usr/lib/qt5/bin/qmake -o Makefile /mnt/Disk_738/Downloads/AlphaPlot/alphaplot/alphaplot.pro ) && make -f Makefile
Project MESSAGE: Build configuration: Linux all dynamic
Project ERROR: Unknown module(s) in QT: svg script scripttools datavisualization
Makefile:49: recipe for target 'sub-alphaplot-make_first-ordered' failed
make: *** [sub-alphaplot-make_first-ordered] Error 3

The appimage stunt seems surprising to me, but on the whole I have such an impression that the authors of this program practically do not test it in a clean Linux virtual machine.

Error building from source

When I run make (after qmake) I get the following error.

cd alphaplot/ && ( test -e Makefile || /usr/lib/qt5/bin/qmake -o Makefile /home/archisman/AlphaPlot/alphaplot/alphaplot.pro ) && make -f Makefile 
Project MESSAGE: Build configuration: Linux all dynamic
Project ERROR: Unknown module(s) in QT: datavisualization xmlpatterns
Makefile:51: recipe for target 'sub-alphaplot-make_first-ordered' failed
make: *** [sub-alphaplot-make_first-ordered] Error 3

I am using KDE Neon 5.19 (Ubuntu 18.04 base). I installed zlibc and gsl-bin packages.

Different decimal separators in formula tab and table mode

I will post all the things on my wishlist as separate issues. Tell me if you want them together in the future. I work in a science center, and we will start using your excellent software (albeit with some issues) in our classrooms from next semester. So I will likely report more stuff as we discover them.

A very confusing minor issue is that the "formula" and table views uses different decimal separators. In Sweden (and the nordic countries) and Germany, we for some reason use comma (,) as a decimal separator, in contrast to the rest of the world. Alphaplot correctly displays the decimal sepator of the OS in the table view, but needs a dot (.) as a decimal sepator in the formula section. I'm not sure what the comma does when put in the formula, but it still gives a (faulty) value. It took me a while to realize this. Not sure what the best solution is. Our students are used to using comma.

AP-separator

Feature request: Copy page and paste vectorized figure

Would it be possible that you can copy page in the AlphaPlot, and then paste the picture into a Word processor, as a vectorized figure, and not a bitmapped one? The AlphaPlot is high potential and i have recommended it to a multitude of Mac users.

What is the minimum version of QT required?

Hi.

I tried to build an application with Qt version 5.12.8 and got errors "'textActivated' is not a member of 'QComboBox'" for files alphaplot/src/PlotWizard.cpp and alphaplot/src/analysis/FFTDialog.cpp. The QComboBox::textActivated signal is available from Qt version 5.14, but the "INSTALL.md" specifies a minimum version of 4.3. Of course, the days of Qt4 are long gone, but version 5.12 is still relevant.

The changes that break the build were made in the e6d475d commit.

Migrate to cmake

Qmake can have many benefits.

But this build system is definitely not suitable for such a large project, if only because it is slow and complicated in terms of packaging.

P.S. qwt can be found with cmake.

Keep showing Error: cannot use this on ....

Hello,
I really like your app. How nice its GUI is.
I have just tested the newest ver. [1.0.11] and I found some issues.
(1) When I dragged the graph, modified some parameters, and added arrow/text in the 2D graph, the error keeps showing up.
(2) There is no option to delete or insert arbitrary cell(s) in the data sheet {like in EXCEL}. Thus, It is difficult to remove cells in one column but not delete others in the same row.
(3) The reference settings for graph types in EDIT/REFERENCES cannot be saved. It reset automatically after I clicked on Apply or OK. Therefore, adjusting graph display size is painful.

I hope that my report is helpful for the improvement of AlphaPlot.
If you need further information, feel free to contact me!
Have a great day!
LT. DUY

The results of the "combat" use of the program.

I am writing this because I want to draw attention to the really important points, software is still written not only in order to write it.

Backend

  • A serious glitch with approximation: going out of range leads to an incorrect result.

  • Crashes are observed when trying to edit the approximation result.

  • Gaussian peak approximation leaves much to be desired, and really works only in simple cases.

  • Charts in polar coordinates never appeared in the program. You can still be the first among free origin clones)

Frontend

  • The points of the approximation curve are not displayed in a separate table, and if they are, then it is difficult to understand that this is what you need.

  • There is no separate table with the results of the approximation itself, such as the correlation coefficient, you have to get it from the log.

  • Hotkeys don't always work as expected, but that's the lesser of the evils. I mostly miss alt+C (was in the original qtiplot) for a new column, and enter has to be pressed twice to move to the next line when manually typing.

GUI inconvenience

  • The application does not remember the layout of widgets.

  • The settings window in the old version was better, it's actually generally funny here. Everyone moves away from this view in their designs, you returned to it)

  • The table settings window generally justified itself, but it is much more difficult to work with the same for charts. For good, both need a redesign, the main complaint is too small elements. It is possible to make duplicate layers, which should not be.

  • No syntax highlighting in Approximation Wizard, parameters are not added automatically.

  • Sometimes the width of the last column is naughty, stretching to the end. In my opinion, it should be wider than some x and not wider than necessary.

Wishes

  • Tabs in tables as in origin pro.

  • Tabbed mode as in kde's labplot.

  • More human readable data format instead of xml. I would prefer to see there an ordinary archive with an internal structure, settings files and csv and other data files. Yes, it will weigh a lot, but not globally, for that people without a program will be able to figure it out.

  • A slight redesign of the project browser to better fit vertically would also help.

These are the results of the real application of the program in scientific work and education, and this list is more important than porting to cmake and qt6.

In my opinion, the tester needs the team.

It is worth noting that at the moment you have done the best among the open clones of Origin Pro.

Polar coordinates

Qti plot, labplot, Scidavis, all. Only Origin(of those similar programs that I know and have tried) can visualize data in polar coordinates(r(phi)).
Figure_1
These are real data (points) and their approximation (line).
I understand that I can just use python, which I did here, and in general, for more serious analysis, I would be better off using it, but sometimes I want a quick result.
In general, I would be interested to see a custom coordinate system, not just the fields.

How to set multiple X Y plot in one layer?

How to set multiple X Y plots in one layer?

I have one table with X1 Y1 and X2 Y2, I want to create one graph (plot) with both X and Y. How to do that.

P. S. I don't want to create new subplot and make 2 separated plots...?

QT5 port ?

Just wanna know if you're gonna work on this :)
If you need some help please tell ! I don't know a lot about Qt but that has to change someday.

CSV Import: cannot open files with commas as decimal point

Edit: I'm using Version 1.011A-alpha

Thanks for making a modern version of qtiPlot.
There's just one issue I'd like to point out: I'm unable to import files that use commas as decimal seperator which is a format used in some European languages.
This is the csv file:

$ cat test.csv
Zeit t / s;Spannung U_B1 / V;Spannung U_A1 / V
0;0,665;-0,375
0,1;0,77;-0,29
0,2;0,855;-0,225
0,3;0,905;-0,2
0,401;0,91;-0,205
0,501;0,89;-0,245
0,6;0,83;-0,32
0,7;0,74;-0,41
0,801;0,63;-0,515
0,9;0,505;-0,625
1;0,385;-0,73

This is how I'm importing it:
Screenshot from 2021-04-30 22-33-21
↑ Please note that I'm using the correct Decimal Seperators.
However the imported table consists mostly of zeros.
Screenshot from 2021-04-30 22-37-32
If I perform the exact same import in SciDAVis it is imported correctly:
Screenshot from 2021-04-30 22-41-09

porting to qt6

Just to let you know I ported alphaplot and the associated dependencies to Qt6. (this includes qtscript which is not normally present in Qt6; consider switching the code to the other script stuff qt provides.) (I only tested the windows build the other platforms might have other lib names for the dependencies which are not yet considered.)

If you know how to use vcpkg and overlay ports you can find all the stuff here:
https://github.com/Neumann-A/my-vcpkg-ports

or to be more precise here:
https://github.com/Neumann-A/my-vcpkg-ports/tree/master/alphaplot

My Main question would be:
Why do you need the propertyId and compare function in qpropertybrowser ? Is this really necessary?

Warnings from alphaplot.desktop

When building AlplaPlot from sources some warnings from *.desktop files are displayed. Being that two of them seem to require attention:

Running test: 35-desktop...usr/share/applications/alphaplot.desktop:
warning: value "" for key "Path" in group "Desktop Entry" does not
look like an absolute path
usr/share/applications/alphaplot.desktop: warning: key
"TerminalOptions" in group "Desktop Entry" is deprecated

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.