[GRASS-dev] d.histogram: x axis ticks labels fixed
Glynn Clements
glynn at gclements.plus.com
Wed Jan 30 10:19:15 EST 2008
Moritz Lennert wrote:
> > Understood. These python utilities draw to Python canvases, and so
> > normally need the GUI to run. It may be possible for them to output to a
> > graphic file too. But they are designed to work in a GUI environment
> > rather than a command line environment.
>
> http://matplotlib.sourceforge.net/faq.html#BATCHMODE
>
>
> > I don't advocate ditching d.histogram. In fact, the *easiest* thing from
> > my standpoint, would be to have a sophisticated and slick C-graphing
> > module that I just had to call as a command and presto it creates a
> > graphic file that I can pop into a canvas. But I have some understand of
> > the complexity of writing this in C or anything else. That's why to use
> > high level graphing tools to do this.
>
> We do have some C-code which exists. It's just a question of whether we
> think that someone will take the time for updating that, or whether we
> should profit of the efforts done for the GUI to just have the same
> functions also available on the command line (with the additional
> advantage of consistency). If python is a required dependency anyhow, I
> don't have any religion about a module absolutely having to be in C if
> the python version is just as good.
The issue isn't one of C versus Python. It's one of being able to run
a command to generate a PNG/PS/PDF/etc file on a server versus only
being able to generate graphics on a desktop system which is capable
of running a GUI.
It should be possible to use GRASS in a web application (whether CGI
or AJAX or whatever), i.e. in a context where "import wx" is going to
fail because there are no X libraries and/or no X display to connect
to.
IOW, using Python is fine; using libraries which require X (or
Windows' GDI etc) isn't.
IMHO, it's okay to use cairo, as the dependence upon X libraries is a
build-time dependency (you can compile a version which only supports
the PNG/PS/PDF file backends), and dependence upon an X display is a
run-time dependency (it only needs a display to create an X drawing
"surface").
OTOH, wxWidgets won't run without a display (AFAICT), even if you only
wanted to render into an image then save it to a file.
--
Glynn Clements <glynn at gclements.plus.com>
More information about the grass-dev
mailing list