[Matplotlib-users] Grid problem?
When I try to turn on the grid for just one axis, seemingly in perfect accordance with the documentation at http://matplotlib.sourceforge.net/api/axes_api.html#matplotlib.axes.Axes.grid it seems like there is a problem. My commands are pasted below. Am I doing this wrong? I am doing the best I can to follow the documentation exactly. Thanks for any help! import matplotlib matplotlib.use('MacOSX') import matplotlib.pyplot as plt fig=plt.figure() ax=fig.add_subplot(111) ax.plot([1,2,3]) ax.set_xlabel('Hi there') ax.grid(True, axis='x') bombayduck:~$ python Python 2.6.5 (r265:79359, Mar 24 2010, 01:32:55) [GCC 4.0.1 (Apple Inc. build 5493)] on darwin Type help, copyright, credits or license for more information. import matplotlib matplotlib.use('MacOSX') import matplotlib.pyplot as plt fig=plt.figure() ax=fig.add_subplot(111) ax.plot([1,2,3]) [matplotlib.lines.Line2D object at 0x1a27e30] ax.set_xlabel('Hi there') matplotlib.text.Text object at 0x1a58030 ax.grid(True, axis='x') Traceback (most recent call last): File stdin, line 1, in module File /Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/matplotlib/axes.py, line 1823, in grid self.xaxis.grid(b, **kwargs) File /Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/matplotlib/axis.py, line 965, in grid if len(kwargs): artist.setp(tick.gridline,**kwargs) File /Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/matplotlib/artist.py, line 1169, in setp func = getattr(o,funcName) AttributeError: 'Line2D' object has no attribute 'set_axis' -dave-- A neuroscientist is at the video arcade, when someone makes him a $1000 bet on Pac-Man. He smiles, gets out his screwdriver and takes apart the Pac-Man game. Everyone says What are you doing? The neuroscientist says Well, since we all know that Pac-Man is based on electric signals traveling through these circuits, obviously I can understand it better than the other guy by going straight to the source! -- Keep Your Developer Skills Current with LearnDevNow! The most comprehensive online learning library for Microsoft developers is just $99.99! Visual Studio, SharePoint, SQL - plus HTML5, CSS3, MVC3, Metro Style Apps, more. Free future releases when you subscribe now! http://p.sf.net/sfu/learndevnow-d2d ___ Matplotlib-users mailing list Matplotlib-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/matplotlib-users
[Matplotlib-users] Grid problem?
When I try to turn on the grid for just one axis, seemingly in perfect accordance with the documentation at http://matplotlib.sourceforge.net/api/axes_api.html#matplotlib.axes.Axes.grid it seems like there is a problem. I am able to make a graph, but trying to turn on the grid for just one axis causes an error. My commands are pasted below. Am I doing this wrong? I am doing the best I can to follow the documentation exactly. Thanks for any help! import matplotlib matplotlib.use('MacOSX') import matplotlib.pyplot as plt fig=plt.figure() ax=fig.add_subplot(111) ax.plot([1,2,3]) ax.set_xlabel('Hi there') ax.grid(True, axis='x') bombayduck:~$ python Python 2.6.5 (r265:79359, Mar 24 2010, 01:32:55) [GCC 4.0.1 (Apple Inc. build 5493)] on darwin Type help, copyright, credits or license for more information. import matplotlib matplotlib.use('MacOSX') import matplotlib.pyplot as plt fig=plt.figure() ax=fig.add_subplot(111) ax.plot([1,2,3]) [matplotlib.lines.Line2D object at 0x1a27e30] ax.set_xlabel('Hi there') matplotlib.text.Text object at 0x1a58030 ax.grid(True, axis='x') Traceback (most recent call last): File stdin, line 1, in module File /Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/matplotlib/axes.py, line 1823, in grid self.xaxis.grid(b, **kwargs) File /Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/matplotlib/axis.py, line 965, in grid if len(kwargs): artist.setp(tick.gridline,**kwargs) File /Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/matplotlib/artist.py, line 1169, in setp func = getattr(o,funcName) AttributeError: 'Line2D' object has no attribute 'set_axis' -dave-- A neuroscientist is at the video arcade, when someone makes him a $1000 bet on Pac-Man. He smiles, gets out his screwdriver and takes apart the Pac-Man game. Everyone says What are you doing? The neuroscientist says Well, since we all know that Pac-Man is based on electric signals traveling through these circuits, obviously I can understand it better than the other guy by going straight to the source! -- Ridiculously easy VDI. With Citrix VDI-in-a-Box, you don't need a complex infrastructure or vast IT resources to deliver seamless, secure access to virtual desktops. With this all-in-one solution, easily deploy virtual desktops for less than the cost of PCs and save 60% on VDI infrastructure costs. Try it free! http://p.sf.net/sfu/Citrix-VDIinabox ___ Matplotlib-users mailing list Matplotlib-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/matplotlib-users
[Matplotlib-users] Plot to display or file in the same script?
I'm trying to make a simple utility for doing a quick check of some data (electrophysiology recordings from our fMRI scanner lab). I want it to be foolproof as much as possible, so I was trying to figure out how to write a script that would try to plot to the display, then if that didn't work, to save it to a file instead (preferably as pdf, but I could live with png if that was the only option.) I've been searching the documentation and code examples for a while, and all I can find seems to suggest that the choice of display vs. file is predetermined at the very beginning by the choice of backend. I suppose that would mean I'd have to put the whole thing inside a try block, then if that didn't work, start over from scratch with a different backend and build the plot again. I was hoping to find a way to build the plot, then just try to show it or something like that, and if that failed, then save it instead. But so far I have not been able to figure out such a thing. So I would appreciate any help! Thanks very much! -- -dave Pseudo-colored pictures of a person's brain lighting up are undoubtedly more persuasive than a pattern of squiggles produced by a polygraph. That could be a big problem if the goal is to get to the truth. -Dr. Steven Hyman, Harvard -- Special Offer-- Download ArcSight Logger for FREE (a $49 USD value)! Finally, a world-class log management solution at an even better price-free! Download using promo code Free_Logger_4_Dev2Dev. Offer expires February 28th, so secure your free ArcSight Logger TODAY! http://p.sf.net/sfu/arcsight-sfd2d ___ Matplotlib-users mailing list Matplotlib-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/matplotlib-users
Re: [Matplotlib-users] Plot to display or file in the same script?
The problem is that if no display is available, the error gets raised on the point where I try to create a new figure, long before getting to show(), so I can't do anything at all. Here's what it looks like when I log in without a display available: import matplotlib.pyplot as plt plt.figure() Traceback (most recent call last): File stdin, line 1, in module File /usr/local/Python/Versions/2.6.5/lib/python2.6/site-packages/matplotlib/pyplot.py, line 270, in figure **kwargs) File /usr/local/Python/Versions/2.6.5/lib/python2.6/site-packages/matplotlib/backends/backend_tkagg.py, line 83, in new_figure_manager window = Tk.Tk() File /usr/local/Python/Versions/2.6.5/lib/python2.6/lib-tk/Tkinter.py, line 1643, in __init__ self.tk = _tkinter.create(screenName, baseName, className, interactive, wantobjects, useTk, sync, use) _tkinter.TclError: no display name and no $DISPLAY environment variable I can do this, which is widely recommended: import matplotlib matplotlib.use('Agg') import matplotlib.pyplot as plt fig=plt.figure() fig.save_fig('test.png') But as far as I can tell from searching, once you do this, there is no way to display to the screen. Unless there is a very clever trick that I don't know about... which I am asking for here... :-) On Jan 26, 2011, at 11:16 PM, Benjamin Root wrote: On Wednesday, January 26, 2011, David Perlman dperl...@wisc.edu wrote: I'm trying to make a simple utility for doing a quick check of some data (electrophysiology recordings from our fMRI scanner lab). I want it to be foolproof as much as possible, so I was trying to figure out how to write a script that would try to plot to the display, then if that didn't work, to save it to a file instead (preferably as pdf, but I could live with png if that was the only option.) I've been searching the documentation and code examples for a while, and all I can find seems to suggest that the choice of display vs. file is predetermined at the very beginning by the choice of backend. I suppose that would mean I'd have to put the whole thing inside a try block, then if that didn't work, start over from scratch with a different backend and build the plot again. I was hoping to find a way to build the plot, then just try to show it or something like that, and if that failed, then save it instead. But so far I have not been able to figure out such a thing. So I would appreciate any help! Thanks very much! You can always put the show call in a try block and do a savefig if the show fails. I don't know where you get the idea that you have to do one or the other... Unless you are talking about the issue where the closing of a figure window would cause you to lose the figure data? In which case, you should be fine catching the show and doing the savefigg because the close event never occurred. However, you might get messy this way with a blank figure window... To be foolproof I would just always save first and then attempt to show. If the show was successful, you can delete the saved figure. Sorry for the rambling, but those are my thoughts on it. Ben Root -- -dave Pseudo-colored pictures of a person's brain lighting up are undoubtedly more persuasive than a pattern of squiggles produced by a polygraph. That could be a big problem if the goal is to get to the truth. -Dr. Steven Hyman, Harvard -- Special Offer-- Download ArcSight Logger for FREE (a $49 USD value)! Finally, a world-class log management solution at an even better price-free! Download using promo code Free_Logger_4_Dev2Dev. Offer expires February 28th, so secure your free ArcSight Logger TODAY! http://p.sf.net/sfu/arcsight-sfd2d ___ Matplotlib-users mailing list Matplotlib-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/matplotlib-users