On Wed, Apr 17, 2013 at 11:54 AM, Alexa <alexa7...@gmail.com> wrote:
> Hello All!
>
> I searched for my problem and while I found similar questions this seemed
> to
> be a unique problem.
>
> I am creating an image that is six vertically stacked subplots and I want
> only the axis of the bottom subplot to be labelled. However, as you can see
> from the image I attached it's picking the wrong subplot to label. It's as
> if the program is not understanding that there is one more plot. If I just
> plot five plots than everything works. I'm not sure what is going wrong
> with
> me code. It would be extremely helpful if someone could take a look.
>
> xlabel = ["",5000,5500,6000,6500,7000,""]
> plt.figure()
>
> night = (glob.glob('*_sci.txt'))
> for i in range(0,len(night)):
> # Read in data for each night
> wave = np.loadtxt(night[i], usecols=[0])
> flux = np.loadtxt(night[i], usecols=[1])
> # Create subplots
> temp = 610 +i
> spect = plt.subplot(temp,sharex=True)
> # Draw plot
> plt.plot(wave, flux, color="green")
> plt.subplots_adjust(hspace = 0.001)
> spect.set_autoscaley_on(False)
> pylab.ylim([0,0.5e-13])
> # Make y tick makers
> temp = tic.MaxNLocator(3)
> plt.gca().yaxis.set_major_locator(tic.MaxNLocator(prune='lower'))
> plt.gca().yaxis.set_major_locator(tic.MaxNLocator(prune='upper'))
> spect.yaxis.set_major_locator(temp)
> # Get rid of redundant x tick labels
> if i < len(night)-1:
> plt.setp(spect.get_xticklabels(), visible=False)
>
>
> spect.set_xticklabels(xlabel, minor=False)
> plt.xlabel("Observed Wavelength $(\AA)$",fontsize=16)
>
>
> <http://matplotlib.1069221.n5.nabble.com/file/n40916/Example.png>
>
>
>
plt.subplot() uses 1-based indexing. So, the first plot you make is "610"
because i == 0 in the first iteration. This corresponds to the *last"
subplot you actually want (i.e., the bottom one). If you just have a 611 +
i, the problem would be fixed. Btw, there is an ax.label_outer() function
that would make the code easier to read.
Ben Root
------------------------------------------------------------------------------
Precog is a next-generation analytics platform capable of advanced
analytics on semi-structured data. The platform includes APIs for building
apps and a phenomenal toolset for data science. Developers can use
our toolset for easy data analysis & visualization. Get a free account!
http://www2.precog.com/precogplatform/slashdotnewsletter
_______________________________________________
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users