Hello, Is it just me who thinks that matplotlib is ugly and a pain to use? So far I haven't found a decent alternative usable from within python. (I haven't tried all the packages out there.) I'm mostly interested in 2d plots. Who is happy enough with a numpy-compatible plotting package to recommend it? Thanks, Christoph A few things I can't stand about matplotlib: * It works as a state machine. (There is an OO-API, too, but it's ugly and cumbersome to use, and most examples use the state machine mode or, even worse, a mixture of OO and global state.) * It uses inches by default. (I propose to switch to nails: 1 nail = 3 digits = 2 1/4 inches = 1/16 yard.) * subplot(211) (ugh!) * Concepts are named in a confusing way. ("ax = subplot(112)" anyone?)
Have a look at Chaco: http://code.enthought.com/chaco/ If you're wanting a more pythonic api, it's a good choice. Personally, I still prefer matplotlib. You don't every need to touch the state machine interface. The OO interface is slighly un-pythonic, but it's hardly clunky. I think you're referring to one of the webpage examples of it which avoids _any_ convenience functions. You can still use the convenience functions without having to rely on the state machine in any way. E.g.: import matplotlib.pyplot as plt fig, axes = plt.subplots(ncols=4) for ax in axes: ax.plot(range(10)) plt.show() All in all, matplotlib deliberately tries to mimic matlab for a lot of the conventions. This is mostly to make it easier to switch if you're already familiar with matlab. To each his own, but for better or worse, matplotlib is the most widely used plotting library for python. It's worth getting a bit more familiar with, if nothing else just to see past some of the rough edges. -Joe On Thu, Oct 13, 2011 at 1:58 PM, Christoph Groth <cwg@falma.de> wrote:
Hello,
Is it just me who thinks that matplotlib is ugly and a pain to use? So far I haven't found a decent alternative usable from within python. (I haven't tried all the packages out there.) I'm mostly interested in 2d plots. Who is happy enough with a numpy-compatible plotting package to recommend it?
Thanks,
Christoph
A few things I can't stand about matplotlib:
* It works as a state machine. (There is an OO-API, too, but it's ugly and cumbersome to use, and most examples use the state machine mode or, even worse, a mixture of OO and global state.)
* It uses inches by default. (I propose to switch to nails: 1 nail = 3 digits = 2 1/4 inches = 1/16 yard.)
* subplot(211) (ugh!)
* Concepts are named in a confusing way. ("ax = subplot(112)" anyone?)
_______________________________________________ NumPy-Discussion mailing list NumPy-Discussion@scipy.org http://mail.scipy.org/mailman/listinfo/numpy-discussion
I keep meaning to use matplotlib as well, but every time I try I also get really turned off by the matlabish interface in the examples. I get that it's a selling point for matlab refugees, but I find it counterintuitive in the same way Christoph seems to. I'm glad to hear the OO interface isn't as clunky as it looks on some of the doc pages, though. This is good news. Can anyone point out any good tutorials/docs on using matplotlib idiomatically via its OO interface? Zach On Oct 13, 2011, at 3:21 PM, Joe Kington wrote:
Have a look at Chaco: http://code.enthought.com/chaco/ If you're wanting a more pythonic api, it's a good choice.
Personally, I still prefer matplotlib.
You don't every need to touch the state machine interface.
The OO interface is slighly un-pythonic, but it's hardly clunky. I think you're referring to one of the webpage examples of it which avoids _any_ convenience functions. You can still use the convenience functions without having to rely on the state machine in any way. E.g.:
import matplotlib.pyplot as plt
fig, axes = plt.subplots(ncols=4)
for ax in axes: ax.plot(range(10))
plt.show()
All in all, matplotlib deliberately tries to mimic matlab for a lot of the conventions. This is mostly to make it easier to switch if you're already familiar with matlab.
To each his own, but for better or worse, matplotlib is the most widely used plotting library for python. It's worth getting a bit more familiar with, if nothing else just to see past some of the rough edges.
-Joe
On Thu, Oct 13, 2011 at 1:58 PM, Christoph Groth <cwg@falma.de> wrote: Hello,
Is it just me who thinks that matplotlib is ugly and a pain to use? So far I haven't found a decent alternative usable from within python. (I haven't tried all the packages out there.) I'm mostly interested in 2d plots. Who is happy enough with a numpy-compatible plotting package to recommend it?
Thanks,
Christoph
A few things I can't stand about matplotlib:
* It works as a state machine. (There is an OO-API, too, but it's ugly and cumbersome to use, and most examples use the state machine mode or, even worse, a mixture of OO and global state.)
* It uses inches by default. (I propose to switch to nails: 1 nail = 3 digits = 2 1/4 inches = 1/16 yard.)
* subplot(211) (ugh!)
* Concepts are named in a confusing way. ("ax = subplot(112)" anyone?)
_______________________________________________ NumPy-Discussion mailing list NumPy-Discussion@scipy.org http://mail.scipy.org/mailman/listinfo/numpy-discussion
_______________________________________________ NumPy-Discussion mailing list NumPy-Discussion@scipy.org http://mail.scipy.org/mailman/listinfo/numpy-discussion
I second that request. On Thu, Oct 13, 2011 at 2:21 PM, Zachary Pincus <zachary.pincus@yale.edu>wrote:
I keep meaning to use matplotlib as well, but every time I try I also get really turned off by the matlabish interface in the examples. I get that it's a selling point for matlab refugees, but I find it counterintuitive in the same way Christoph seems to.
I'm glad to hear the OO interface isn't as clunky as it looks on some of the doc pages, though. This is good news. Can anyone point out any good tutorials/docs on using matplotlib idiomatically via its OO interface?
Zach
On Oct 13, 2011, at 3:21 PM, Joe Kington wrote:
Have a look at Chaco: http://code.enthought.com/chaco/ If you're wanting a more pythonic api, it's a good choice.
Personally, I still prefer matplotlib.
You don't every need to touch the state machine interface.
The OO interface is slighly un-pythonic, but it's hardly clunky. I think you're referring to one of the webpage examples of it which avoids _any_ convenience functions. You can still use the convenience functions without having to rely on the state machine in any way. E.g.:
import matplotlib.pyplot as plt
fig, axes = plt.subplots(ncols=4)
for ax in axes: ax.plot(range(10))
plt.show()
All in all, matplotlib deliberately tries to mimic matlab for a lot of the conventions. This is mostly to make it easier to switch if you're already familiar with matlab.
To each his own, but for better or worse, matplotlib is the most widely used plotting library for python. It's worth getting a bit more familiar with, if nothing else just to see past some of the rough edges.
-Joe
On Thu, Oct 13, 2011 at 1:58 PM, Christoph Groth <cwg@falma.de> wrote: Hello,
Is it just me who thinks that matplotlib is ugly and a pain to use? So far I haven't found a decent alternative usable from within python. (I haven't tried all the packages out there.) I'm mostly interested in 2d plots. Who is happy enough with a numpy-compatible plotting package to recommend it?
Thanks,
Christoph
A few things I can't stand about matplotlib:
* It works as a state machine. (There is an OO-API, too, but it's ugly and cumbersome to use, and most examples use the state machine mode or, even worse, a mixture of OO and global state.)
* It uses inches by default. (I propose to switch to nails: 1 nail = 3 digits = 2 1/4 inches = 1/16 yard.)
* subplot(211) (ugh!)
* Concepts are named in a confusing way. ("ax = subplot(112)" anyone?)
_______________________________________________ NumPy-Discussion mailing list NumPy-Discussion@scipy.org http://mail.scipy.org/mailman/listinfo/numpy-discussion
_______________________________________________ NumPy-Discussion mailing list NumPy-Discussion@scipy.org http://mail.scipy.org/mailman/listinfo/numpy-discussion
_______________________________________________ NumPy-Discussion mailing list NumPy-Discussion@scipy.org http://mail.scipy.org/mailman/listinfo/numpy-discussion
On Oct 13, 2011, at 4:21 PM, Zachary Pincus <zachary.pincus@yale.edu> wrote:
I keep meaning to use matplotlib as well, but every time I try I also get really turned off by the matlabish interface in the examples. I get that it's a selling point for matlab refugees, but I find it counterintuitive in the same way Christoph seems to.
I'm glad to hear the OO interface isn't as clunky as it looks on some of the doc pages, though. This is good news. Can anyone point out any good tutorials/docs on using matplotlib idiomatically via its OO interface?
I would start with these examples http://matplotlib.sourceforge.net/examples/api/index.html These examples use pyplot only for figure generation, mostly because this is the easiest way to get a Figure instance correctly wired across user interface toolkits, but use the API for everything else. And this tutorial, which explains the central object hierarchy: http://matplotlib.sourceforge.net/users/artists.html For a deeper dive, these tutorials may be of interest too: http://matplotlib.sourceforge.net/users/transforms_tutorial.html http://matplotlib.sourceforge.net/users/path_tutorial.html http://matplotlib.sourceforge.net/users/event_handling.html
Thank you John, those are looking useful. On Thu, Oct 13, 2011 at 2:39 PM, John Hunter <jdh2358@gmail.com> wrote:
On Oct 13, 2011, at 4:21 PM, Zachary Pincus <zachary.pincus@yale.edu> wrote:
I keep meaning to use matplotlib as well, but every time I try I also get really turned off by the matlabish interface in the examples. I get that it's a selling point for matlab refugees, but I find it counterintuitive in the same way Christoph seems to.
I'm glad to hear the OO interface isn't as clunky as it looks on some of the doc pages, though. This is good news. Can anyone point out any good tutorials/docs on using matplotlib idiomatically via its OO interface?
I would start with these examples
http://matplotlib.sourceforge.net/examples/api/index.html
These examples use pyplot only for figure generation, mostly because this is the easiest way to get a Figure instance correctly wired across user interface toolkits, but use the API for everything else.
And this tutorial, which explains the central object hierarchy:
http://matplotlib.sourceforge.net/users/artists.html
For a deeper dive, these tutorials may be of interest too:
http://matplotlib.sourceforge.net/users/transforms_tutorial.html
http://matplotlib.sourceforge.net/users/path_tutorial.html
http://matplotlib.sourceforge.net/users/event_handling.html
_______________________________________________ NumPy-Discussion mailing list NumPy-Discussion@scipy.org http://mail.scipy.org/mailman/listinfo/numpy-discussion
On Thursday, October 13, 2011, John Salvatier <jsalvati@u.washington.edu> wrote:
Thank you John, those are looking useful.
I have been working to improve the docs. One of the frustrating things about the docs is the information overload in some places and the lack of information elsewhere. Further, the rigidity of the docs have not been helpful. The docs really present itself in 2 ways: the gallery/examples and the APIs. The latter is geared for the devs while the former is geared for helping users with the question "how do I make a plot look like this?". Myself and other developers would greatly appreciate help from the community to point out which examples are too confusing or out of date. We would also greatly welcome all critiques, suggestions, and comments on the docs. Of course, what would be welcomed even more are patches! Cheers! Ben Root
On Thu, Oct 13, 2011 at 4:15 PM, Benjamin Root <ben.root@ou.edu> wrote:
Myself and other developers would greatly appreciate help from the community to point out which examples are too confusing or out of date. We
It would be nice to have a social interface for the mpl gallery like the one similar to the R-gallery [ http://www.r-bloggers.com/the-r-graph-gallery-goes-social/] -- Gökhan
On Thu, Oct 13, 2011 at 6:22 PM, Gökhan Sever <gokhansever@gmail.com> wrote:
On Thu, Oct 13, 2011 at 4:15 PM, Benjamin Root <ben.root@ou.edu> wrote:
Myself and other developers would greatly appreciate help from the community to point out which examples are too confusing or out of date. We
It would be nice to have a social interface for the mpl gallery like the one similar to the R-gallery [http://www.r-bloggers.com/the-r-graph-gallery-goes-social/]
Big +1. Just yesterday I wanted to add some cool "notes to self" plots. IIRC there was a lightning talk at SciPy conference two summers ago about starting a web site just like this. Don't know what happened though. Skipper
On 10/13/2011 12:22 PM, Gökhan Sever wrote:
On Thu, Oct 13, 2011 at 4:15 PM, Benjamin Root <ben.root@ou.edu <mailto:ben.root@ou.edu>> wrote:
Myself and other developers would greatly appreciate help from the community to point out which examples are too confusing or out of date. We
It would be nice to have a social interface for the mpl gallery like the one similar to the R-gallery [http://www.r-bloggers.com/the-r-graph-gallery-goes-social/]
I think that the priority should go towards massive pruning, organization, and cleanup of the gallery. This would be a great project for a new contributor to mpl. Eric
-- Gökhan
On Thu, Oct 13, 2011 at 5:36 PM, Eric Firing <efiring@hawaii.edu> wrote:
It would be nice to have a social interface for the mpl gallery like the one similar to the R-gallery [http://www.r-bloggers.com/the-r-graph-gallery-goes-social/]
I think that the priority should go towards massive pruning, organization, and cleanup of the gallery. This would be a great project for a new contributor to mpl.
So as to not hijack poor Christoph's thread, who after all is looking for mpl alternatives, and not to abuse numpy-discussion's bandwidth with mpl issues, I have opened and issue on the github tracker as an "open thread" to register gripes and suggestions for mpl doc and gallery improvements, particularly as it regards API usage https://github.com/matplotlib/matplotlib/issues/524 JDH
On Thu, Oct 13, 2011 at 6:42 PM, John Hunter <jdh2358@gmail.com> wrote:
On Thu, Oct 13, 2011 at 5:36 PM, Eric Firing <efiring@hawaii.edu> wrote:
It would be nice to have a social interface for the mpl gallery like the one similar to the R-gallery [http://www.r-bloggers.com/the-r-graph-gallery-goes-social/]
I think that the priority should go towards massive pruning, organization, and cleanup of the gallery. This would be a great project for a new contributor to mpl.
So as to not hijack poor Christoph's thread, who after all is looking for mpl alternatives, and not to abuse numpy-discussion's bandwidth with mpl issues, I have opened and issue on the github tracker as an "open thread" to register gripes and suggestions for mpl doc and gallery improvements, particularly as it regards API usage
I started, but I would like to mention that I'm very happy with the pyplot interface (even if sometimes it takes a bit of time to figure out which options to use). Josef
JDH _______________________________________________ NumPy-Discussion mailing list NumPy-Discussion@scipy.org http://mail.scipy.org/mailman/listinfo/numpy-discussion
On Thu, Oct 13, 2011 at 3:21 PM, Zachary Pincus <zachary.pincus@yale.edu>wrote:
I keep meaning to use matplotlib as well, but every time I try I also get really turned off by the matlabish interface in the examples. I get that it's a selling point for matlab refugees, but I find it counterintuitive in the same way Christoph seems to.
I'm glad to hear the OO interface isn't as clunky as it looks on some of the doc pages, though. This is good news. Can anyone point out any good tutorials/docs on using matplotlib idiomatically via its OO interface?
Zach
I think, IPython is great for interaction with the OO interface of the matlab. Just starting simple with: fig=plt.figure() ax=plt.gca() and keep tabbing ax.<tab>, fig.<tab> or any object you create on the canvas .tab to get its methods and attributes. Another approach is start with the pylab interface and query detailed help/code with ?? in IPython (e.g. plt.xlabel??) -- Gökhan
On Thu, Oct 13, 2011 at 4:03 PM, Gökhan Sever <gokhansever@gmail.com> wrote:
I think, IPython is great for interaction with the OO interface of the matlab. Just starting simple with:
fig=plt.figure() ax=plt.gca() and keep tabbing ax.<tab>, fig.<tab> or any object you create on the canvas .tab to get its methods and attributes. Another approach is start with the pylab interface and query detailed help/code with ?? in IPython (e.g. plt.xlabel??)
Sorry s/matlab/matplotlib. I am not sure if matlab has IPython like interface to introspect objects. Definitely IDL doesn't. -- Gökhan
In article <8739ew90ry.fsf@falma.de>, Christoph Groth <cwg@falma.de> wrote:
Hello,
Is it just me who thinks that matplotlib is ugly and a pain to use? So far I haven't found a decent alternative usable from within python. (I haven't tried all the packages out there.) I'm mostly interested in 2d plots. Who is happy enough with a numpy-compatible plotting package to recommend it?
I know folks who like HippoDraw and use it instead of matplotlib due to its speed. Veusz sounds promising. Both use Qt as a back end. I've not used either because I need Tcl/TK as a back end for much of my work. -- Russell
participants (11)
-
Benjamin Root -
Christoph Groth -
Eric Firing -
Gökhan Sever -
Joe Kington -
John Hunter -
John Salvatier -
josef.pktd@gmail.com -
Russell E. Owen -
Skipper Seabold -
Zachary Pincus