MathGroup Archive 2010

[Date Index] [Thread Index] [Author Index]

Search the Archive

How to combine Mathematica graphics and Python code?

I have been given the task of developing a data visualization system
for a large academic experimental biology lab.  In this lab they
generate a lot of specialized high-throughput data, and they need
a custom system for organizing, analyzing, and visualizing it.
(Many such systems already exist, of course, but for a wide variety
of reasons the lab's directors decided to go with a custom, home-grown

I have decided to develop the system primarily in Python, for a
couple of reasons.[1]  The big downside of Python, however, is that
it does not have, in my opinion, a sufficiently good support for
scientific graphics.[2]

In my experience Mathematica is the gold standard for scientific
graphics, and wondered if there was some way in which I could
combine Python code with Mathematica graphics.

The absolute ideal system would be something that looked likei a
(highly stripped down) Mathematica GUI, but receiving Python code
instead of Mathematica code.  I.e. basically a cross between the
standard Python interactive text-based interpreter and a Mathematica
graphics-enabled GUI.

A less attractive possibility (but still adequate) would be for
the Python system to generate the necessary Mathematica code on
the fly, and somehow get Mathematica to generate and display a
figure for it.

A third alternative would be to build a Python interpreter that
could be run within Mathematica, but this is pushing beyond my
level of expertise, both with Python and with Mathematica.

At this stage I'm interested in finding out of similar attempts to
use Mathematica's graphics capabilities in a non-Mathematica app,
and perhaps learn from their experience.

Technical issues aside, there are also thorny licensing issues.
If anyone has any experience with that, I would love to read your



[1] The choice of Python is motivated by two reasons: 1) the lab
already has a significant code base in Python that I can re-use
for this project; and 2) I expect that in certain special cases
not covered by the system's base functionality, its users (most of
whom have no programming experience at all) may need to write very
simple scripts, and I find Python is particularly easy to teach to
people with no programming background.

[2] The best Python for scientific graphics is matplotlib, which
is loosely based on another system.  matplotlib is adequate for relatively
simple graphics tasks, but it is not flexible enough for the type
of visualization that I think will be needed.  (I think this
inflexibility is the result of some pretty fundamental design flaws
in matplotlib.)

  • Prev by Date: Re: How to detect 'bad' characters in expressions in the notebook?
  • Next by Date: Re: How to "soft-code" a Block?
  • Previous by thread: Re: discrete points in 3D polar
  • Next by thread: Re: How to combine Mathematica graphics and Python code?