Giter Club home page Giter Club logo

galry's Introduction

Galry: high performance interactive visualization package in Python

This experimental project is now superseded by Vispy. Galry is no longer maintained.

Galry is a high performance interactive visualization package in Python based on OpenGL. It allows to interactively visualize very large plots (tens of millions of points) in real time, by using the graphics card as much as possible.

Galry's high-level interface is directly inspired by Matplotlib and Matlab. The low-level interface can be used to write complex interactive visualization GUIs with Qt that deal with large 2D/3D datasets.

Visualization capabilities of Galry are not restricted to plotting, and include textures, 3D meshes, graphs, shapes, etc. Custom shaders can also be written for advanced uses.

Click here to go to the FAQ.

Gallery

Multiple plots Multiple bar plots Dynamic fractal

Click here to see all screenshots and videos.

Installation

Installation procedure

  • Type in a terminal:

    $ pip install galry
    
  • In Python, type:

    from galry import *
    from numpy.random import randn
    plot(randn(3, 10000))
    show()
    
  • You should see three overlayed random signals. You can navigate with the mouse and the keyboard. Press H to see all available actions.

More details.

Requirements

  • Galry should work on any platform (Window/Linux/MacOS).

  • Mandatory dependencies include:

    • Python 2.7
    • Numpy
    • PyQt4 or PySide with the OpenGL bindings
    • PyOpenGL
    • matplotlib
  • Your graphics card drivers must be up-to-date and support OpenGL 2.1.

Galry is licensed under the BSD license.

Development version (expert users)

  • Clone the repository:

    git clone https://github.com/rossant/galry.git
    
  • Install Galry with pip so that external packages are automatically updated (like qtools which contains some Qt-related utility functions):

    pip install -r requirements.txt
    

Quick links

Bitdeli Badge

galry's People

Contributors

bitdeli-chef avatar jamessclarkiv avatar mcfletch avatar rossant avatar yarikoptic 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  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

galry's Issues

Galry on Mac 10.8.2 crashes Python with a Qt error

This could be my environment, but I thought I'd report this. Using Galry from github with Python 2.7.3 on OS X 10.8.2 I get this error:

Python 2.7.3 |Anaconda 1.4.0 (x86_64)| (default, Feb 25 2013, 18:45:56) 
Type "copyright", "credits" or "license" for more information.

IPython 1.0.dev -- An enhanced Interactive Python.
?         -> Introduction and overview of IPython's features.
%quickref -> Quick reference.
help      -> Python's own help system.
object?   -> Details about 'object', use 'object??' for extra details.

In [1]: from galry import *
In [2]: from numpy.random import randn
In [3]: plot(randn(3, 10000))
In [4]: show()

Qt internal error: qt_menu.nib could not be loaded. The .nib file should be placed in QtGui.framework/Versions/Current/Resources/  or in the resources directory of your application bundle.
Abort trap: 6

setup.py complains of missing paskage

setup.py specifies that a package called qtools should be present but does not exist in the distribution of Galry. Is it deprecated or just missing from the repository?

installation problem

Hi
first, thank you for the hard work on this amazing project.
I am having a bit problem with installation.
On a ubuntu system, I installed the dependencies, and tried to test it with
from galry import *
but I got the following error instead:
Traceback (most recent call last): File "<stdin>", line 1, in <module> File "galry/__init__.py", line 7, in <module> from qtools.qtpy import * File "/home/sun/anaconda2/lib/python2.7/site-packages/qtools/__init__.py", line 3, in <module> from tasks import * File "/home/sun/anaconda2/lib/python2.7/site-packages/qtools/tasks.py", line 137, in <module> class TasksBase(QObject): NameError: name 'QObject' is not defined
I have tried many things, including
sudo apt-get install python-opengl python-qt4 python-qt4-gl; sudo apt-get install mesa-utils
I also tried to git clone the whole repository and run setup.py.
none of this seemed to work. could anyone point to how I should proceed? thanks!

rendering issue in graph_visual.py

Hello,
I think there is an issue with graph_visual.py.
Running a known network, edges seem to be connecting to the wrong nodes.
As an example, here is a screen shot of a network using d3.js (its a twitter network):
screen shot 2013-05-31 at 11 45 42 am

Running using galry, I get:
screen shot 2013-05-31 at 11 54 49 am

If I comment out the lines (49,50) in graph_visual.py:
for i, u in enumerate(uedges):
edges[edges == u] = i
this resolves this issue:
screen shot 2013-05-31 at 11 48 42 am

thank you for developing this package!
Patrick

galry, matplotlib and QString

I've experienced some strange bug. When I run the following code everything works fine:

from galry import pyplot as glplt
from matplotlib import pyplot as plt
import numpy

glplt.plot(numpy.array([1,2,3,4,5,6]), numpy.array([0,45,13,123,23,2]))
glplt.show()

But when I remove the matplotlib import, the plot window shows up, but without any data. I also get this error message:

Traceback (most recent call last):
  File "/usr/lib/python2.7/site-packages/galry-0.1.0.dev-py2.7.egg/galry/galrywidget.py", line 250, in initializeGL
    self.paint_manager.initializeGL()
  File "/usr/lib/python2.7/site-packages/galry-0.1.0.dev-py2.7.egg/galry/paintmanager.py", line 209, in initializeGL
    self.initialize_default()
  File "/usr/lib/python2.7/site-packages/galry-0.1.0.dev-py2.7.egg/galry/managers/plot_manager.py", line 11, in initialize_default
    super(PlotPaintManager, self).initialize_default()
  File "/usr/lib/python2.7/site-packages/galry-0.1.0.dev-py2.7.egg/galry/managers/default_manager.py", line 22, in initialize_default
    text='', name='help', visible=False)
  File "/usr/lib/python2.7/site-packages/galry-0.1.0.dev-py2.7.egg/galry/paintmanager.py", line 164, in add_visual
    self.scene_creator.add_visual(visual_class, *args, **kwargs)
  File "/usr/lib/python2.7/site-packages/galry-0.1.0.dev-py2.7.egg/galry/scene.py", line 106, in add_visual
    visual = visual_class(self.scene, *args, **kwargs)
  File "/usr/lib/python2.7/site-packages/galry-0.1.0.dev-py2.7.egg/galry/visuals/visual.py", line 572, in __init__
    self.initialize(*args, **kwargs)
  File "/usr/lib/python2.7/site-packages/galry-0.1.0.dev-py2.7.egg/galry/visuals/text_visual.py", line 169, in initialize
    self.initialize_font(font, fontsize)
  File "/usr/lib/python2.7/site-packages/galry-0.1.0.dev-py2.7.egg/galry/visuals/text_visual.py", line 148, in initialize_font
    self.texture, self.matrix, self.get_map = load_font(font, fontsize)
  File "/usr/lib/python2.7/site-packages/galry-0.1.0.dev-py2.7.egg/galry/visuals/fontmaps/tools.py", line 102, in load_font
    tex = load_png(png)
  File "/usr/lib/python2.7/site-packages/galry-0.1.0.dev-py2.7.egg/galry/visuals/fontmaps/tools.py", line 54, in load_png
    import matplotlib.pyplot as plt
  File "/usr/lib64/python2.7/site-packages/matplotlib/pyplot.py", line 95, in <module>
    new_figure_manager, draw_if_interactive, show = pylab_setup()
  File "/usr/lib64/python2.7/site-packages/matplotlib/backends/__init__.py", line 25, in pylab_setup
    globals(),locals(),[backend_name])
  File "/usr/lib64/python2.7/site-packages/matplotlib/backends/backend_qt4agg.py", line 12, in <module>
    from backend_qt4 import QtCore, QtGui, FigureManagerQT, FigureCanvasQT,\
  File "/usr/lib64/python2.7/site-packages/matplotlib/backends/backend_qt4.py", line 18, in <module>
    import matplotlib.backends.qt4_editor.figureoptions as figureoptions
  File "/usr/lib64/python2.7/site-packages/matplotlib/backends/qt4_editor/figureoptions.py", line 11, in <module>
    import matplotlib.backends.qt4_editor.formlayout as formlayout
  File "/usr/lib64/python2.7/site-packages/matplotlib/backends/qt4_editor/formlayout.py", line 59, in <module>
    from PyQt4.QtCore import (Qt, SIGNAL, SLOT, QSize, QString,
ImportError: cannot import name QString

How does galry depend on matplotlib? Or is this just a coincidence?

Runtime Error

Hi, first of all thanks for all the hard work.

When I run the example code in the Readme, y get this error:

RuntimeError: Could not set API version (API 'QDate' has already been set to version 1): did you import PyQt4 directly?

(I'm pretty sure I'm not importing PyQt beforehand)

Any clues ?

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.