SourceForge logo
SourceForge logo
Menu

matplotlib-users — Discussion related to using matplotlib

You can subscribe to this list here.

2003 Jan
Feb
Mar
Apr
May
(3)
Jun
Jul
Aug
(12)
Sep
(12)
Oct
(56)
Nov
(65)
Dec
(37)
2004 Jan
(59)
Feb
(78)
Mar
(153)
Apr
(205)
May
(184)
Jun
(123)
Jul
(171)
Aug
(156)
Sep
(190)
Oct
(120)
Nov
(154)
Dec
(223)
2005 Jan
(184)
Feb
(267)
Mar
(214)
Apr
(286)
May
(320)
Jun
(299)
Jul
(348)
Aug
(283)
Sep
(355)
Oct
(293)
Nov
(232)
Dec
(203)
2006 Jan
(352)
Feb
(358)
Mar
(403)
Apr
(313)
May
(165)
Jun
(281)
Jul
(316)
Aug
(228)
Sep
(279)
Oct
(243)
Nov
(315)
Dec
(345)
2007 Jan
(260)
Feb
(323)
Mar
(340)
Apr
(319)
May
(290)
Jun
(296)
Jul
(221)
Aug
(292)
Sep
(242)
Oct
(248)
Nov
(242)
Dec
(332)
2008 Jan
(312)
Feb
(359)
Mar
(454)
Apr
(287)
May
(340)
Jun
(450)
Jul
(403)
Aug
(324)
Sep
(349)
Oct
(385)
Nov
(363)
Dec
(437)
2009 Jan
(500)
Feb
(301)
Mar
(409)
Apr
(486)
May
(545)
Jun
(391)
Jul
(518)
Aug
(497)
Sep
(492)
Oct
(429)
Nov
(357)
Dec
(310)
2010 Jan
(371)
Feb
(657)
Mar
(519)
Apr
(432)
May
(312)
Jun
(416)
Jul
(477)
Aug
(386)
Sep
(419)
Oct
(435)
Nov
(320)
Dec
(202)
2011 Jan
(321)
Feb
(413)
Mar
(299)
Apr
(215)
May
(284)
Jun
(203)
Jul
(207)
Aug
(314)
Sep
(321)
Oct
(259)
Nov
(347)
Dec
(209)
2012 Jan
(322)
Feb
(414)
Mar
(377)
Apr
(179)
May
(173)
Jun
(234)
Jul
(295)
Aug
(239)
Sep
(276)
Oct
(355)
Nov
(144)
Dec
(108)
2013 Jan
(170)
Feb
(89)
Mar
(204)
Apr
(133)
May
(142)
Jun
(89)
Jul
(160)
Aug
(180)
Sep
(69)
Oct
(136)
Nov
(83)
Dec
(32)
2014 Jan
(71)
Feb
(90)
Mar
(161)
Apr
(117)
May
(78)
Jun
(94)
Jul
(60)
Aug
(83)
Sep
(102)
Oct
(132)
Nov
(154)
Dec
(96)
2015 Jan
(45)
Feb
(138)
Mar
(176)
Apr
(132)
May
(119)
Jun
(124)
Jul
(77)
Aug
(31)
Sep
(34)
Oct
(22)
Nov
(23)
Dec
(9)
2016 Jan
(26)
Feb
(17)
Mar
(10)
Apr
(8)
May
(4)
Jun
(8)
Jul
(6)
Aug
(5)
Sep
(9)
Oct
(4)
Nov
Dec
2017 Jan
(5)
Feb
(7)
Mar
(1)
Apr
(5)
May
Jun
(3)
Jul
(6)
Aug
(1)
Sep
Oct
(2)
Nov
(1)
Dec
2018 Jan
Feb
Mar
Apr
(1)
May
Jun
Jul
Aug
Sep
Oct
Nov
Dec
2020 Jan
Feb
Mar
Apr
May
(1)
Jun
Jul
Aug
Sep
Oct
Nov
Dec
2025 Jan
(1)
Feb
Mar
Apr
May
Jun
Jul
Aug
Sep
Oct
Nov
Dec
S M T W T F S





1
(2)
2
(6)
3
4
(7)
5
(10)
6
(4)
7
(17)
8
(4)
9
(1)
10
(1)
11
(19)
12
(14)
13
(8)
14
(14)
15
(9)
16
(1)
17
18
19
(8)
20
(5)
21
(7)
22
(13)
23
(1)
24
25
(4)
26
(2)
27
(17)
28
(13)
29
(6)
30
(6)
31
(5)






Showing results of 204

<< < 1 .. 6 7 8 9 > >> (Page 8 of 9)
From: Paul H. <pmh...@gm...> - 2013年03月06日 22:18:02
On Wed, Mar 6, 2013 at 2:00 PM, Clifford Lyon <cli...@gm...>wrote:
> I wish to make a boxplot with data in this format:
>
> Value, Frequency
> 0, 128329
> 1, 20390
> 2, 230
> 3, 32
> 4, 3
>
> etc. Rather than expand this into a flat array, is there some way to pass
> in weights for values? Some of the frequencies I'm working with are very
> large, and so the resulting arrays would be huge. AFAIK, all the summary
> statistics I need for the plot can be computed from data in this form.
>
>
Boxplot, as it currently stands, wants the raw data. Some recently added
features allow you to manually specify the median and it's confidence
intervals, but nothing else.
I've been meaning to submit a PR for boxplot where it's split into the
public method and private drawing function that just takes a dictionary of
the values (R does this, IIRC). That wouldn't directly help you in this
situation, but you'd be one step closer.
-paul
From: Clifford L. <cli...@gm...> - 2013年03月06日 22:01:12
I wish to make a boxplot with data in this format:
Value, Frequency
0, 128329
1, 20390
2, 230
3, 32
4, 3
etc. Rather than expand this into a flat array, is there some way to pass
in weights for values? Some of the frequencies I'm working with are very
large, and so the resulting arrays would be huge. AFAIK, all the summary
statistics I need for the plot can be computed from data in this form.
Thanks!
From: Wayne H. <Way...@df...> - 2013年03月06日 20:00:28
I am trying to use stacked and normed at the same time. I have thought
about it - and I think it does make sense for what I want to do.
Below is some code and a figure that demonstrate the problem. There are two
histograms. Both use teh same data. Both are stacked. The top histogram
uses normed=False. The bottom uses normed =True. Ideally, the histograms
would be identical except for scaling on the y-axis.
The histogram with normed=False looks OK. 
The left-half of the normed=True histogram looks OK. About half-way through
the second distribution moves from the top of the bars to the bottom. At
least that's the way it looks from eyeballing. 
Does anybody have a suggestion about how to get around this problem? Should
I be reporting a bug somewhere?
Thanks,
Wayne Hajas
==================
from numpy.random import normal,seed
import matplotlib.pyplot as plt
seed(100)
x=normal(loc=0,scale=1,size=1000)
y=normal(loc=1,scale=1,size=1000)
bins=map(lambda i:-2.+5.*float(i)/float(50),range(51))
plt.close()
plt.subplot(211)
plt.hist([x,y],bins=bins,alpha=0.5, stacked=True,normed=False)
plt.subplot(212)
plt.hist([x,y],bins=bins,alpha=0.5, stacked=True,normed=True)
plt.show()
<http://matplotlib.1069221.n5.nabble.com/file/n40552/StackedProblem.png> 
--
View this message in context: http://matplotlib.1069221.n5.nabble.com/conflict-between-stacked-and-normed-in-hist-tp40552.html
Sent from the matplotlib - users mailing list archive at Nabble.com.
From: Benjamin R. <ben...@ou...> - 2013年03月06日 14:38:49
On Tue, Mar 5, 2013 at 5:33 PM, Mahe <mah...@gm...> wrote:
>
> Benjamin Root <ben.root@...> writes:
>
> >
> > On Tue, Feb 1, 2011 at 11:09 AM, Francesco Benincasa
> <francesco.benincasa-
> DuY...@pu...> wrote:
> >
> > Hi all,
> > I'm using pygrads for plotting maps from netcdf files.
> > I use the contourf method, but I'm not able to fill the region where
> there are
> > no value (there is the missing value -999) with a color. It seems to
> ignore
> > the set_bad method that I used to make the colormap.
> > Any suggestions?
> > Thank you very much in advance.
> > --
> > | Francesco Benincasa
> >
> >
> > Most likely, the issue is that set_bad is more for setting the color when
> encountering masked values (through masked arrays). As a quick and dirty
> way to
> deal with it, try setting that color through the set_under() method.The
> correct
> way to do this is to use set_bad, but convert your numpy array that you
> are
> displaying into a masked array like so:z_ma = np.ma.masked_array(z,
> mask=(z ==
> -999))and use contourf on z_ma.Let us know how that works for you.Ben Root
> >
> >
> >
> >
> ------------------------------------------------------------------------------
> > 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@...
> > https://lists.sourceforge.net/lists/listinfo/matplotlib-users
> >
>
> Hi !
> I have had the same issue (set_bad not taking effect with nans), and
> transformed
> the data into a masked array. But it does not seem to work...
> Here a minimal example:
>
> import matplotlib.pyplot as plt
> import numpy as np
>
> plt.clf()
> x = np.linspace(-180,180,100)
> y = np.linspace(-90,90,100)
> x, y = np.meshgrid(x,y)
> data = np.cos(x/180*np.pi) + np.sin(y/180*np.pi)
> data[(y<50)&(y>30)&(x<50)&(x>30)] = np.nan
> data = np.ma.masked_array(data, mask = np.isnan(data)) # has no effect
> ncol = 20
> cbar = [-1,1]
> palette = plt.cm.Blues
> palette.set_bad('green')
> palette.set_over('red')
> palette.set_under('black')
> cs = plt.contourf(x,y,data,np.linspace(cbar[0],cbar[1],ncol), cmap=palette,
> extend='both')
> plt.colorbar()
> cs.set_clim(cbar) # need that for set_upper and set_lower to take effect
> plt.show()
>
> There is already that small bug where one needs to call set_clim for
> set_upper
> and set_lower, maybe something similar is needed for set_bad?
> Any idea?
>
> Many thanks,
> Mahe
>
>
Your problem is very, very subtle, and we probably should handle this
better. The issue is, I think, that because of the way contourf works, the
colormap is applied to the list of polygon (or patch) collections, each
having a value for its level. Because there wouldn't be a "nan" level,
there is no polygon or patch at all for that spot. Indeed, if you change
the background color of the plot, the white patch becomes whatever color
the background is.
I hope this clears it up for you.
Ben Root
From: Mahe <mah...@gm...> - 2013年03月05日 23:09:52
Benjamin Root <ben.root@...> writes:
> 
> On Tue, Feb 1, 2011 at 11:09 AM, Francesco Benincasa <francesco.benincasa-
DuY...@pu...> wrote:
> 
> Hi all,
> I'm using pygrads for plotting maps from netcdf files.
> I use the contourf method, but I'm not able to fill the region where there are
> no value (there is the missing value -999) with a color. It seems to ignore
> the set_bad method that I used to make the colormap.
> Any suggestions?
> Thank you very much in advance.
> --
> | Francesco Benincasa
> 
> 
> Most likely, the issue is that set_bad is more for setting the color when 
encountering masked values (through masked arrays). As a quick and dirty way to 
deal with it, try setting that color through the set_under() method.The correct 
way to do this is to use set_bad, but convert your numpy array that you are 
displaying into a masked array like so:z_ma = np.ma.masked_array(z, mask=(z == 
-999))and use contourf on z_ma.Let us know how that works for you.Ben Root
> 
> 
> 
> ------------------------------------------------------------------------------
> 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@...
> https://lists.sourceforge.net/lists/listinfo/matplotlib-users
> 
Hi !
I have had the same issue (set_bad not taking effect with nans), and transformed 
the data into a masked array. But it does not seem to work...
Here a minimal example:
import matplotlib.pyplot as plt
import numpy as np
plt.clf()
x = np.linspace(-180,180,100)
y = np.linspace(-90,90,100)
x, y = np.meshgrid(x,y)
data = np.cos(x/180*np.pi) + np.sin(y/180*np.pi)
data[(y<50)&(y>30)&(x<50)&(x>30)] = np.nan
data = np.ma.masked_array(data, mask = np.isnan(data)) # has no effect
ncol = 20
cbar = [-1,1]
palette = plt.cm.Blues
palette.set_bad('green')
palette.set_over('red')
palette.set_under('black')
cs = plt.contourf(x,y,data,np.linspace(cbar[0],cbar[1],ncol), cmap=palette, 
extend='both')
plt.colorbar()
cs.set_clim(cbar) # need that for set_upper and set_lower to take effect
plt.show()
There is already that small bug where one needs to call set_clim for set_upper 
and set_lower, maybe something similar is needed for set_bad?
Any idea?
Many thanks,
Mahe
From: Sterling S. <sm...@fu...> - 2013年03月05日 18:54:58
Vineeth,
I think that you are looking for
from matplotlib.ticker import MaxNLocator
-Sterling
On Mar 3, 2013, at 5:38PM, vineeth wrote:
> Hello,
> 
> I have attached the histogram that I generated. When specifying large numbers like 1000 or more, the xticks tend to overlap and it gives a clumsy impression. Is there a way to avoid this?. What can be done to give gaps between the ticks?. Say in my case just show 3 to 4 ticks in x axis rather than specifying all the ticks. The following is my code:
> 
> def plotHistogram(veh_no, value, vehicle_no, fig_no):
> 
> font = {'family' : 'serif',
> 'weight' : 'normal',
> 'size' : 10}
> rc('font', **font)
> count = 1
> legends = []
> print veh_no
> plt.figure(num=fig_no,dpi=105)
> for i in range(len(value)):
> ax = plt.subplot(2,2,i+1)
> n, bins, patches = plt.hist(value[i],100,label=veh_no[i])
> plt.ylabel('frequency',position=(0.5,0.5))
> plt.xlabel('x valuels')
> plt.grid()
> min_val = int(round(min(value[i]),0))
> max_val = int(round(max(value[i]),0))
> ax.set_xlim(min_val-2,max_val+2)
> locs,labels = plt.xticks()
> plt.xticks(locs, map(lambda x: "%g" % x, locs))
> plt.savefig('figurename.eps',dpi=70)
> count += 1
> 
> Thank You
> Vineeth
> <test_hist.eps>------------------------------------------------------------------------------
> Everyone hates slow websites. So do we.
> Make your web apps faster with AppDynamics
> Download AppDynamics Lite for free today:
> http://p.sf.net/sfu/appdyn_d2d_feb_______________________________________________
> Matplotlib-users mailing list
> Mat...@li...
> https://lists.sourceforge.net/lists/listinfo/matplotlib-users
From: Sterling S. <sm...@fu...> - 2013年03月05日 18:54:44
Matplotlib User (I'm not sure how to address you),
I think that you are looking for either text() or annotate().
-Sterling
On Mar 5, 2013, at 4:12AM, nittopuran natya wrote:
> Hi, 
> 
> I have this script which gives output the image attached here. What I want is to give all the peak a number on top of the peak like 1 for first peak, 2 for second, 3 for third and so on. Could someone pls help me how to do that in python. 
> 
> The code:
> 
> 
> from pylab import*
> 
> # Read the file. 
> f2 = open('d012_SAXS-recomb.txt', 'r')
> # read the whole file into a single variable, which is a list of every row of the file.
> lines = f2.readlines()[2:-100]
> f2.close()
> 
> # initialize some variable to be lists:
> x1 = []
> y1 = []
> 
> # scan the rows of the file stored in lines, and put the values into some variables:
> for line in lines:
> p = line.split()
> x1.append(float(p[0]))
> y1.append(float(p[1]))
> 
> x = np.array(x1)
> y = np.array(y1)
> 
> xlim(0.0,4.0)
> 
> # now, plot the data:
> #subplot(211)
> plt.plot(x, y, color='orange',linewidth=2.0, linestyle='-', label='Arabic - LPP''\nRoman - SPP''\nAsterisk - CHOL')
> legend(loc='upper right')
> xlabel('q')
> ylabel('Intensity')
> title('Cer2.Chol.Ffa7 (1.1.1)')
> plt.show()
> 
> 
> 
> /Tatiana
> <d012_SAXS-recomb.txt><image.png>------------------------------------------------------------------------------
> Everyone hates slow websites. So do we.
> Make your web apps faster with AppDynamics
> Download AppDynamics Lite for free today:
> http://p.sf.net/sfu/appdyn_d2d_feb_______________________________________________
> Matplotlib-users mailing list
> Mat...@li...
> https://lists.sourceforge.net/lists/listinfo/matplotlib-users
From: Vineeth R. <vin...@gm...> - 2013年03月05日 17:53:52
Sterling,
Thank you, ya I got it working using MaxNLocator
On Tue, Mar 5, 2013 at 12:49 PM, Sterling Smith <sm...@fu...>wrote:
> Vineeth,
>
> I think that you are looking for
> from matplotlib.ticker import MaxNLocator
>
> -Sterling
>
> On Mar 3, 2013, at 5:38PM, vineeth wrote:
>
> > Hello,
> >
> > I have attached the histogram that I generated. When specifying large
> numbers like 1000 or more, the xticks tend to overlap and it gives a clumsy
> impression. Is there a way to avoid this?. What can be done to give gaps
> between the ticks?. Say in my case just show 3 to 4 ticks in x axis rather
> than specifying all the ticks. The following is my code:
> >
> > def plotHistogram(veh_no, value, vehicle_no, fig_no):
> >
> > font = {'family' : 'serif',
> > 'weight' : 'normal',
> > 'size' : 10}
> > rc('font', **font)
> > count = 1
> > legends = []
> > print veh_no
> > plt.figure(num=fig_no,dpi=105)
> > for i in range(len(value)):
> > ax = plt.subplot(2,2,i+1)
> > n, bins, patches = plt.hist(value[i],100,label=veh_no[i])
> > plt.ylabel('frequency',position=(0.5,0.5))
> > plt.xlabel('x valuels')
> > plt.grid()
> > min_val = int(round(min(value[i]),0))
> > max_val = int(round(max(value[i]),0))
> > ax.set_xlim(min_val-2,max_val+2)
> > locs,labels = plt.xticks()
> > plt.xticks(locs, map(lambda x: "%g" % x, locs))
> > plt.savefig('figurename.eps',dpi=70)
> > count += 1
> >
> > Thank You
> > Vineeth
> >
> <test_hist.eps>------------------------------------------------------------------------------
> > Everyone hates slow websites. So do we.
> > Make your web apps faster with AppDynamics
> > Download AppDynamics Lite for free today:
> >
> http://p.sf.net/sfu/appdyn_d2d_feb_______________________________________________
> > Matplotlib-users mailing list
> > Mat...@li...
> > https://lists.sourceforge.net/lists/listinfo/matplotlib-users
>
>
-- 
Don't tell GOD how Big your storm is...TELL THE STORM HOW BIG YOUR GOD
IS!!!
From: Mathew T. <mat...@ed...> - 2013年03月05日 17:05:11
The University of Edinburgh is a charitable body, registered in
Scotland, with registration number SC005336.
From: Sudheer J. <sud...@ya...> - 2013年03月05日 15:42:09
Thank you,
>
>1) There is a wide gap between label and the contours ie it appears like ------   2.4   ......... is there a way to reduce this gap?
Try inline=False for the clabel call, but that might over-do it.
 
I tried this but it totally removes the space, the inline_space=n do not appear to take the given value and it works always with default value..
2) The labels are appearing cluttered at about 100m depth though they culd have spread apart at each level. Is there a way to control their placing to avoid cluttering?
This has been a long-standing issue with matplotlib. There has been improvements, but it still isn't perfect. I am not familiar with some of the newer tricks that are available.
Hope some one tried those will respond!
 
3) Is there a way to make the longitude as in case of maps ie can the x axis labels be 50E 60E ... 90E
You can set the tick formatter. Here is one example of how to do it.
http://matplotlib.org/examples/pylab_examples/custom_ticker1.html
Thank you
I hope that helps!
Ben Root
From: Benjamin R. <ben...@ou...> - 2013年03月05日 14:03:17
On Mon, Mar 4, 2013 at 8:26 PM, Sudheer Joseph <sud...@ya...>wrote:
> Thanks to all Matplotlib experts for extending help,
> With the suggestions I could make the script work and I am close to the
> target I had in mind,
> Below script produces as depth longitude contou-filled plot.
> However I have below concerns,
> 1) There is a wide gap between label and the contours ie it appears like
> ------ 2.4 ......... is there a way to reduce this gap?
>
Try inline=False for the clabel call, but that might over-do it.
> 2) The labels are appearing cluttered at about 100m depth though they culd
> have spread apart at each level. Is there a way to control their placing to
> avoid cluttering?
>
This has been a long-standing issue with matplotlib. There has been
improvements, but it still isn't perfect. I am not familiar with some of
the newer tricks that are available.
> 3) Is there a way to make the longitude as in case of maps ie can the x
> axis labels be 50E 60E ... 90E
>
You can set the tick formatter. Here is one example of how to do it.
http://matplotlib.org/examples/pylab_examples/custom_ticker1.html
I hope that helps!
Ben Root
From: nittopuran n. <nit...@gm...> - 2013年03月05日 12:12:12
Hi,
I have this script which gives output the image attached here. What I want
is to give all the peak a number on top of the peak like 1 for first peak,
2 for second, 3 for third and so on. Could someone pls help me how to do
that in python.
The code:
from pylab import*
# Read the file.
f2 = open('d012_SAXS-recomb.txt', 'r')
# read the whole file into a single variable, which is a list of every row
of the file.
lines = f2.readlines()[2:-100]
f2.close()
# initialize some variable to be lists:
x1 = []
y1 = []
# scan the rows of the file stored in lines, and put the values into some
variables:
for line in lines:
 p = line.split()
 x1.append(float(p[0]))
 y1.append(float(p[1]))
x = np.array(x1)
y = np.array(y1)
xlim(0.0,4.0)
# now, plot the data:
#subplot(211)
plt.plot(x, y, color='orange',linewidth=2.0, linestyle='-', label='Arabic -
LPP''\nRoman - SPP''\nAsterisk - CHOL')
legend(loc='upper right')
xlabel('q')
ylabel('Intensity')
title('Cer2.Chol.Ffa7 (1.1.1)')
plt.show()
/Tatiana
From: Phil E. <pel...@gm...> - 2013年03月05日 10:19:43
Sounds like a nice feature if it doesn't already exist. At first glance,
I'd say this was a good candidate for the "low-hanging fruit" label (
https://github.com/matplotlib/matplotlib/issues?labels=low+hanging+fruit&page=1&state=open)
for which we have tickets which have a low matplotlib contribution
experience barrier and a relatively good return on investment (in terms of
time spent).
Please feel free to create an issue on the github tracker & if you're keen,
I'd encourage you to have a go at implementing it.
Cheers,
On 4 March 2013 19:34, Paul Hobson <pmh...@gm...> wrote:
>
> On Mon, Mar 4, 2013 at 11:23 AM, William Furnass <wi...@th...>wrote:
>
>> Several backends will show you the x and y float values that
>> correspond to the current cursor position in a plot() but are there
>> backends that show the _datetime_ corresponding to the x position if
>> the plotted data is a time series (e.g. a pandas.Series object with a
>> DatetimeIndex)?
>>
>> Regards,
>>
>> Will
>>
>
> Will,
>
> You can use the `format_coord` method of the axes objects to do just this.
> -paul
>
>
> ------------------------------------------------------------------------------
> Everyone hates slow websites. So do we.
> Make your web apps faster with AppDynamics
> Download AppDynamics Lite for free today:
> http://p.sf.net/sfu/appdyn_d2d_feb
> _______________________________________________
> Matplotlib-users mailing list
> Mat...@li...
> https://lists.sourceforge.net/lists/listinfo/matplotlib-users
>
>
From: Sudheer J. <sud...@ya...> - 2013年03月05日 01:26:11
Thanks to all Matplotlib experts for extending help,
 With the suggestions I could make the script work and I am close to the target I had in mind, 
Below script produces as depth longitude contou-filled plot.
However I have below concerns,
1) There is a wide gap between label and the contours ie it appears like ------   2.4   ......... is there a way to reduce this gap?
2) The labels are appearing cluttered at about 100m depth though they culd have spread apart at each level. Is there a way to control their placing to avoid cluttering?
3) Is there a way to make the longitude as in case of maps ie can the x axis labels be 50E 60E ... 90E
I am not sure if I am too much ambitious with regard to matplotlib, but I was using ferret where it takes care of the labeling.
with best regards,
Sudheer 
from matplotlib import pyplot as plt
from netCDF4 import Dataset
import numpy as np
url='http://www.marine.csiro.au/dods/nph-dods/dods-data/climatology-netcdf/levitus_monthly_temp_98.nc'
ds = Dataset(url)
temp = ds.variables['TEMP']
lats = ds.variables['lat']
lons = ds.variables['lon']
depths = ds.variables['z']
# filter depths
dmin = np.where(depths[:] == 0.)[0][0]
dmax = np.where(depths[:] == 1000)[0][0]
# filter all but one latitude
lat_index = np.where(lats[:] == 0.5)[0][0]
lats = lats[lat_index]
# filter a range of longitudes
lon_lower_index = np.where(lons[:] == 44.5)[0][0]
lon_upper_index = np.where(lons[:] == 95.5)[0][0]
lons = lons[lon_lower_index:lon_upper_index]
depths=depths[dmin:dmax]
temp = temp[0,dmin:dmax, lat_index, lon_lower_index:lon_upper_index]
#plt.pcolormesh(lons,depths, temp)
nx,ny=np.meshgrid(lons,depths)
clevs=np.arange(temp.min(),temp.max()+2,temp.std()/5)
norm = plt.cm.colors.Normalize(vmax=abs(temp).max(), vmin=-abs(temp).max())
cmap = plt.cm.gist_rainbow_r 
plt.figure()
cs1=plt.contourf(nx,ny,temp, clevs,cmap=plt.cm.get_cmap(cmap, len(clevs)-1))
cs2=plt.contour(nx,ny,temp, cs1.levels,colors = 'k',linewidth=2,hold='on')
plt.clabel(cs2,inline=True, fmt='%1.1f', fontsize=18)
cb = plt.colorbar(cs1,pad=.02) #(location='right')#,size="5%", pad='2%')
plt.gca().invert_yaxis()
plt.show()
 
***************************************************************
Sudheer Joseph 
Indian National Centre for Ocean Information Services
Ministry of Earth Sciences, Govt. of India
POST BOX NO: 21, IDA Jeedeemetla P.O.
Via Pragathi Nagar,Kukatpally, Hyderabad; Pin:5000 55
Tel:+91-40-23886047(O),Fax:+91-40-23895011(O),
Tel:+91-40-23044600(R),Tel:+91-40-9440832534(Mobile)
E-mail:sjo...@gm...;sud...@ya...
Web- http://oppamthadathil.tripod.com
***************************************************************
________________________________
 From: Jody Klymak <jk...@uv...>
To: Sudheer Joseph <sud...@ya...> 
Cc: "Mat...@li..." <mat...@li...> 
Sent: Tuesday, 5 March 2013 2:10 AM
Subject: Re: [Matplotlib-users] depth longitude plot
 
Hi Sudheer,
You want contourf.
http://matplotlib.org/examples/pylab_examples/contour_image.html
Cheers, Jody
On Mar 4, 2013, at 9:04 AM, Sudheer Joseph <sud...@ya...> wrote:
Hi Benamin,
>I was looking for a plot similar to the attached one named ferret.gif. But from matplot lib I get flat fill and contours which are not aligned to the levels ( named figure_1.png , it looks like matplotlib has just flat surfaces as it used pcolor.
>
>
>with best regards,
>Sudheer
>
>
>From:Sudheer Joseph <sud...@ya...>
>
>To: Benjamin Root <ben...@ou...> 
>Cc: "Mat...@li..." <mat...@li...> 
>Sent: Monday, 4 March 2013 8:19 PM
>Subject: Re: [Matplotlib-users] depth longitude plot
> 
>
>Thank you,
>            I just posted this question in numpy lists thinking that it is possible after regriding the data to new axes. 
>Thanks for the help.
>with best regards,
>Sudheer
> 
>***************************************************************
>Sudheer Joseph 
>Indian National Centre for Ocean Information Services
>Ministry of Earth Sciences, Govt. of India
>POST BOX NO: 21, IDA Jeedeemetla P.O.
>Via Pragathi Nagar,Kukatpally, Hyderabad; Pin:5000
 55
>Tel:+91-40-23886047(O),Fax:+91-40-23895011(O),
>Tel:+91-40-23044600(R),Tel:+91-40-9440832534(Mobile)
>E-mail:sjo...@gm...;sud...@ya...
>Web- http://oppamthadathil.tripod.com
>***************************************************************
>
>
>________________________________
> From: Benjamin Root <ben...@ou...>
>To: Sudheer Joseph <sud...@ya...> 
>Cc: Phil Elson <pel...@gm...>; "Mat...@li..." <mat...@li...> 
>Sent: Monday, 4 March 2013 7:53 PM
>Subject: Re: [Matplotlib-users] depth longitude plot
> 
>
>
>
>
>On Sat, Mar 2, 2013 at 6:35 AM, Sudheer Joseph <sud...@ya...> wrote:
>
>Hi Phil,
>>
>>
>>Though iris looked to be promising it needed many other libraries, so I chose the below suggestion. But is there a way to overlay contours on this ? also is it possible to specify the levels?
>>In [23]: plt.pcolormesh?? did not give much help
>>
>>with best regards,
>>Sudheer
>
>You can overlay contours on the pcolormesh image by simply using the plt.contour() function after the pcolormesh() call. It allows you to control which levels to contour and you can specify the attributes of those contours like the color or thickness. Note that unlike Matlab, you don't have to call "hold on" between plots. By default, matplotlib will hold.
>
>I hope that helps!
>Ben Root
>
>
>
>------------------------------------------------------------------------------
>Everyone hates slow websites. So do we.
>Make your web apps faster with AppDynamics
>Download AppDynamics Lite for free today:
>http://p.sf.net/sfu/appdyn_d2d_feb
>_______________________________________________
>Matplotlib-users mailing list
>Mat...@li...
>https://lists.sourceforge.net/lists/listinfo/matplotlib-users
>
>
><ferret.gif><figure_1.png>------------------------------------------------------------------------------
>Everyone hates slow websites. So do we.
>Make your web apps faster with AppDynamics
>Download AppDynamics Lite for free today:
>http://p.sf.net/sfu/appdyn_d2d_feb_______________________________________________
>Matplotlib-users mailing list
>Mat...@li...
>https://lists.sourceforge.net/lists/listinfo/matplotlib-users
>
--
Jody Klymak  
http://web.uvic.ca/~jklymak/ 
From: Jody K. <jk...@uv...> - 2013年03月04日 20:54:40
Hi Sudheer,
You want contourf.
http://matplotlib.org/examples/pylab_examples/contour_image.html
Cheers, Jody
On Mar 4, 2013, at 9:04 AM, Sudheer Joseph <sud...@ya...> wrote:
> Hi Benamin,
> I was looking for a plot similar to the attached one named ferret.gif. But from matplot lib I get flat fill and contours which are not aligned to the levels ( named figure_1.png , it looks like matplotlib has just flat surfaces as it used pcolor.
> 
> with best regards,
> Sudheer
> 
> From: Sudheer Joseph <sud...@ya...>
> To: Benjamin Root <ben...@ou...> 
> Cc: "Mat...@li..." <mat...@li...> 
> Sent: Monday, 4 March 2013 8:19 PM
> Subject: Re: [Matplotlib-users] depth longitude plot
> 
> Thank you,
> I just posted this question in numpy lists thinking that it is possible after regriding the data to new axes. 
> Thanks for the help.
> with best regards,
> Sudheer
> 
> ***************************************************************
> Sudheer Joseph 
> Indian National Centre for Ocean Information Services
> Ministry of Earth Sciences, Govt. of India
> POST BOX NO: 21, IDA Jeedeemetla P.O.
> Via Pragathi Nagar,Kukatpally, Hyderabad; Pin:5000 55
> Tel:+91-40-23886047(O),Fax:+91-40-23895011(O),
> Tel:+91-40-23044600(R),Tel:+91-40-9440832534(Mobile)
> E-mail:sjo...@gm...;sud...@ya...
> Web- http://oppamthadathil.tripod.com
> ***************************************************************
> From: Benjamin Root <ben...@ou...>
> To: Sudheer Joseph <sud...@ya...> 
> Cc: Phil Elson <pel...@gm...>; "Mat...@li..." <mat...@li...> 
> Sent: Monday, 4 March 2013 7:53 PM
> Subject: Re: [Matplotlib-users] depth longitude plot
> 
> 
> 
> On Sat, Mar 2, 2013 at 6:35 AM, Sudheer Joseph <sud...@ya...> wrote:
> Hi Phil,
> 
> Though iris looked to be promising it needed many other libraries, so I chose the below suggestion. But is there a way to overlay contours on this ? also is it possible to specify the levels?
> In [23]: plt.pcolormesh?? did not give much help
> with best regards,
> Sudheer
> 
> You can overlay contours on the pcolormesh image by simply using the plt.contour() function after the pcolormesh() call. It allows you to control which levels to contour and you can specify the attributes of those contours like the color or thickness. Note that unlike Matlab, you don't have to call "hold on" between plots. By default, matplotlib will hold.
> 
> I hope that helps!
> Ben Root
> 
> 
> 
> ------------------------------------------------------------------------------
> Everyone hates slow websites. So do we.
> Make your web apps faster with AppDynamics
> Download AppDynamics Lite for free today:
> http://p.sf.net/sfu/appdyn_d2d_feb
> _______________________________________________
> Matplotlib-users mailing list
> Mat...@li...
> https://lists.sourceforge.net/lists/listinfo/matplotlib-users
> 
> 
> <ferret.gif><figure_1.png>------------------------------------------------------------------------------
> Everyone hates slow websites. So do we.
> Make your web apps faster with AppDynamics
> Download AppDynamics Lite for free today:
> http://p.sf.net/sfu/appdyn_d2d_feb_______________________________________________
> Matplotlib-users mailing list
> Mat...@li...
> https://lists.sourceforge.net/lists/listinfo/matplotlib-users
--
Jody Klymak 
http://web.uvic.ca/~jklymak/
From: Paul H. <pmh...@gm...> - 2013年03月04日 19:34:30
On Mon, Mar 4, 2013 at 11:23 AM, William Furnass <wi...@th...>wrote:
> Several backends will show you the x and y float values that
> correspond to the current cursor position in a plot() but are there
> backends that show the _datetime_ corresponding to the x position if
> the plotted data is a time series (e.g. a pandas.Series object with a
> DatetimeIndex)?
>
> Regards,
>
> Will
>
Will,
You can use the `format_coord` method of the axes objects to do just this.
-paul
From: William F. <wi...@th...> - 2013年03月04日 19:23:35
Several backends will show you the x and y float values that
correspond to the current cursor position in a plot() but are there
backends that show the _datetime_ corresponding to the x position if
the plotted data is a time series (e.g. a pandas.Series object with a
DatetimeIndex)?
Regards,
Will
From: Sudheer J. <sud...@ya...> - 2013年03月04日 17:05:10
Attachments: ferret.gif figure_1.png
Hi Benamin,
I was looking for a plot similar to the attached one named ferret.gif. But from matplot lib I get flat fill and contours which are not aligned to the levels ( named figure_1.png , it looks like matplotlib has just flat surfaces as it used pcolor.
with best regards,
Sudheer
From:Sudheer Joseph <sud...@ya...>
To: Benjamin Root <ben...@ou...> 
Cc: "Mat...@li..." <mat...@li...> 
Sent: Monday, 4 March 2013 8:19 PM
Subject: Re: [Matplotlib-users] depth longitude plot
 
Thank you,
            I just posted this question in numpy lists thinking that it is possible after regriding the data to new axes. 
Thanks for the help.
with best regards,
Sudheer
 
***************************************************************
Sudheer Joseph 
Indian National Centre for Ocean Information Services
Ministry of Earth Sciences, Govt. of India
POST BOX NO: 21, IDA Jeedeemetla P.O.
Via Pragathi Nagar,Kukatpally, Hyderabad; Pin:5000
 55
Tel:+91-40-23886047(O),Fax:+91-40-23895011(O),
Tel:+91-40-23044600(R),Tel:+91-40-9440832534(Mobile)
E-mail:sjo...@gm...;sud...@ya...
Web- http://oppamthadathil.tripod.com
***************************************************************
________________________________
 From: Benjamin Root <ben...@ou...>
To: Sudheer Joseph <sud...@ya...> 
Cc: Phil Elson <pel...@gm...>; "Mat...@li..." <mat...@li...> 
Sent: Monday, 4 March 2013 7:53 PM
Subject: Re: [Matplotlib-users] depth longitude plot
 
On Sat, Mar 2, 2013 at 6:35 AM, Sudheer Joseph <sud...@ya...> wrote:
Hi Phil,
>
>
>Though iris looked to be promising it needed many other libraries, so I chose the below suggestion. But is there a way to overlay contours on this ? also is it possible to specify the levels?
>In [23]: plt.pcolormesh?? did not give much help
>
>with best regards,
>Sudheer
You can overlay contours on the pcolormesh image by simply using the plt.contour() function after the pcolormesh() call. It allows you to control which levels to contour and you can specify the attributes of those contours like the color or thickness. Note that unlike Matlab, you don't have to call "hold on" between plots. By default, matplotlib will hold.
I hope that helps!
Ben Root
------------------------------------------------------------------------------
Everyone hates slow websites. So do we.
Make your web apps faster with AppDynamics
Download AppDynamics Lite for free today:
http://p.sf.net/sfu/appdyn_d2d_feb
_______________________________________________
Matplotlib-users mailing list
Mat...@li...
https://lists.sourceforge.net/lists/listinfo/matplotlib-users 
From: Sudheer J. <sud...@ya...> - 2013年03月04日 14:49:30
Thank you,
            I just posted this question in numpy lists thinking that it is possible after regriding the data to new axes. 
Thanks for the help.
with best regards,
Sudheer
 
***************************************************************
Sudheer Joseph 
Indian National Centre for Ocean Information Services
Ministry of Earth Sciences, Govt. of India
POST BOX NO: 21, IDA Jeedeemetla P.O.
Via Pragathi Nagar,Kukatpally, Hyderabad; Pin:5000 55
Tel:+91-40-23886047(O),Fax:+91-40-23895011(O),
Tel:+91-40-23044600(R),Tel:+91-40-9440832534(Mobile)
E-mail:sjo...@gm...;sud...@ya...
Web- http://oppamthadathil.tripod.com
***************************************************************
________________________________
 From: Benjamin Root <ben...@ou...>
To: Sudheer Joseph <sud...@ya...> 
Cc: Phil Elson <pel...@gm...>; "Mat...@li..." <mat...@li...> 
Sent: Monday, 4 March 2013 7:53 PM
Subject: Re: [Matplotlib-users] depth longitude plot
 
On Sat, Mar 2, 2013 at 6:35 AM, Sudheer Joseph <sud...@ya...> wrote:
Hi Phil,
>
>
>Though iris looked to be promising it needed many other libraries, so I chose the below suggestion. But is there a way to overlay contours on this ? also is it possible to specify the levels?
>In [23]: plt.pcolormesh?? did not give much help
>
>with best regards,
>Sudheer
You can overlay contours on the pcolormesh image by simply using the plt.contour() function after the pcolormesh() call. It allows you to control which levels to contour and you can specify the attributes of those contours like the color or thickness. Note that unlike Matlab, you don't have to call "hold on" between plots. By default, matplotlib will hold.
I hope that helps!
Ben Root
From: Benjamin R. <ben...@ou...> - 2013年03月04日 14:24:18
On Sat, Mar 2, 2013 at 6:35 AM, Sudheer Joseph <sud...@ya...>wrote:
> Hi Phil,
>
> Though iris looked to be promising it needed many other libraries, so I
> chose the below suggestion. But is there a way to overlay contours on this
> ? also is it possible to specify the levels?
> In [23]: plt.pcolormesh?? did not give much help
> with best regards,
> Sudheer
>
You can overlay contours on the pcolormesh image by simply using the
plt.contour() function after the pcolormesh() call. It allows you to
control which levels to contour and you can specify the attributes of those
contours like the color or thickness. Note that unlike Matlab, you don't
have to call "hold on" between plots. By default, matplotlib will hold.
I hope that helps!
Ben Root
From: vineeth <vin...@gm...> - 2013年03月04日 01:38:45
Attachments: test_hist.eps
Hello,
I have attached the histogram that I generated. When specifying large 
numbers like 1000 or more, the xticks tend to overlap and it gives a 
clumsy impression. Is there a way to avoid this?. What can be done to 
give gaps between the ticks?. Say in my case just show 3 to 4 ticks in x 
axis rather than specifying all the ticks. The following is my code:
def plotHistogram(veh_no, value, vehicle_no, fig_no):
 font = {'family' : 'serif',
 'weight' : 'normal',
 'size' : 10}
 rc('font', **font)
 count = 1
 legends = []
 print veh_no
 plt.figure(num=fig_no,dpi=105)
 for i in range(len(value)):
 ax = plt.subplot(2,2,i+1)
 n, bins, patches = plt.hist(value[i],100,label=veh_no[i])
 plt.ylabel('frequency',position=(0.5,0.5))
 plt.xlabel('x valuels')
 plt.grid()
 min_val = int(round(min(value[i]),0))
 max_val = int(round(max(value[i]),0))
 ax.set_xlim(min_val-2,max_val+2)
 locs,labels = plt.xticks()
 plt.xticks(locs, map(lambda x: "%g" % x, locs))
 plt.savefig('figurename.eps',dpi=70)
 count += 1
Thank You
Vineeth
From: Sudheer J. <sud...@ya...> - 2013年03月02日 11:35:44
Hi Phil,
Though iris looked to be promising it needed many other libraries, so I chose the below suggestion. But is there a way to overlay contours on this ? also is it possible to specify the levels?
In [23]: plt.pcolormesh?? did not give much help
with best regards,
Sudheer
________________________________
 From: Phil Elson <pel...@gm...>
To: "Mat...@li..." <mat...@li...> 
Sent: Saturday, 2 March 2013 3:40 PM
Subject: Re: [Matplotlib-users] depth longitude plot
 
Incidentally, if you wanted to do this a little more expressively than indexing, you could look into using iris (http://scitools.org.uk/iris/docs/latest/index.html). It doesn't currently support DAP, but if you had the NetCDF file (from http://www.marine.csiro.au/dods-data/climatology-netcdf/levitus_monthly_temp_98.nc) you would do:
importiris
import iris.quickplot as qplt
import matplotlib.pyplot as plt
temp_cube = iris.load_cube('levitus_monthly_temp_98.nc')
# Sort out some of the bad metadata. Firstly, set the unit,
# secondly rename the dimension 1 coordinate to 'depth'.
temp_cube.unit = 'C'
temp_cube.coord(dimensions=1, dim_coords=True).rename('depth')
# Extract a spatial sub-domain.
sub_temp_cube = temp_cube.extract(iris.Constraint(latitude=0.5,
               longitude=lambda v: 45 < v < 100))
# Iterate over all the depth-longitude sections (in this case it
# iterates over time)
for cross_sect_cube in sub_temp_cube.slices(['depth', 'longitude']):
  qplt.pcolormesh(cross_sect_cube)
  plt.gca().invert_yaxis()
  plt.show()
  break
Hope that helps!
Phil
On 2 March 2013 09:37, Phil Elson <pel...@gm...> wrote:
Perhaps something like:
>
>
>
>
>from matplotlib import pyplot as plt
>from netCDF4 import Dataset
>import numpy as np
>
>
>
>
>url='http://www.marine.csiro.au/dods/nph-dods/dods-data/climatology-netcdf/levitus_monthly_temp_98.nc'
>ds = Dataset(url)
>
>
>
>
>temp = ds.variables['TEMP']
>lats = ds.variables['lat']
>lons = ds.variables['lon']
>depths = ds.variables['z']
>
>
>
>
># filter all but one latitude
>lat_index = np.where(lats[:] == 0.5)[0][0]
>lats = lats[lat_index]
>
>
># filter a range of longitudes
>lon_lower_index = np.where(lons[:] == 44.5)[0][0]
>lon_upper_index = np.where(lons[:] == 100.5)[0][0]
>lons = lons[lon_lower_index:lon_upper_index]
>
>
>temp = temp[0, :, lat_index, lon_lower_index:lon_upper_index]
>
>
>
>
>plt.pcolormesh(lons, depths[:], temp)
>plt.gca().invert_yaxis()
>
>
>plt.show()
>
>
>
>
>
>
>
>
>The indexing approach used here is quite flakey, so I certainly wouldn't use this in anything operational.
>
>Hope this helps,
>
>Phil
>
>
------------------------------------------------------------------------------
Everyone hates slow websites. So do we.
Make your web apps faster with AppDynamics
Download AppDynamics Lite for free today:
http://p.sf.net/sfu/appdyn_d2d_feb
_______________________________________________
Matplotlib-users mailing list
Mat...@li...
https://lists.sourceforge.net/lists/listinfo/matplotlib-users 
From: Sudheer J. <sud...@ya...> - 2013年03月02日 10:53:49
Tank you very much for both solutions Phil,
with best regards,
Sudheer 
***************************************************************
Sudheer Joseph 
Indian National Centre for Ocean Information Services
Ministry of Earth Sciences, Govt. of India
POST BOX NO: 21, IDA Jeedeemetla P.O.
Via Pragathi Nagar,Kukatpally, Hyderabad; Pin:5000 55
Tel:+91-40-23886047(O),Fax:+91-40-23895011(O),
Tel:+91-40-23044600(R),Tel:+91-40-9440832534(Mobile)
E-mail:sjo...@gm...;sud...@ya...
Web- http://oppamthadathil.tripod.com
***************************************************************
________________________________
 From: Phil Elson <pel...@gm...>
To: "Mat...@li..." <mat...@li...> 
Sent: Saturday, 2 March 2013 3:07 PM
Subject: Re: [Matplotlib-users] depth longitude plot
 
Perhaps something like:
from matplotlib import pyplot as plt
from netCDF4 import Dataset
import numpy as np
url='http://www.marine.csiro.au/dods/nph-dods/dods-data/climatology-netcdf/levitus_monthly_temp_98.nc'
ds = Dataset(url)
temp = ds.variables['TEMP']
lats = ds.variables['lat']
lons = ds.variables['lon']
depths = ds.variables['z']
# filter all but one latitude
lat_index = np.where(lats[:] == 0.5)[0][0]
lats = lats[lat_index]
# filter a range of longitudes
lon_lower_index = np.where(lons[:] == 44.5)[0][0]
lon_upper_index = np.where(lons[:] == 100.5)[0][0]
lons = lons[lon_lower_index:lon_upper_index]
temp = temp[0, :, lat_index, lon_lower_index:lon_upper_index]
plt.pcolormesh(lons, depths[:], temp)
plt.gca().invert_yaxis()
plt.show()
The indexing approach used here is quite flakey, so I certainly wouldn't use this in anything operational.
Hope this helps,
Phil
------------------------------------------------------------------------------
Everyone hates slow websites. So do we.
Make your web apps faster with AppDynamics
Download AppDynamics Lite for free today:
http://p.sf.net/sfu/appdyn_d2d_feb
_______________________________________________
Matplotlib-users mailing list
Mat...@li...
https://lists.sourceforge.net/lists/listinfo/matplotlib-users 
From: Phil E. <pel...@gm...> - 2013年03月02日 10:10:19
Attachments: figure_1.png
Incidentally, if you wanted to do this a little more expressively than
indexing, you could look into using iris (
http://scitools.org.uk/iris/docs/latest/index.html). It doesn't currently
support DAP, but if you had the NetCDF file (from *
http://www.marine.csiro.au/dods-data/climatology-netcdf/levitus_monthly_temp_98.nc
*) you would do:
import iris
import iris.quickplot as qplt
import matplotlib.pyplot as plt
temp_cube = iris.load_cube(*'levitus_monthly_temp_98.**nc**'*)
# Sort out some of the bad metadata. Firstly, set the unit,
# secondly rename the dimension 1 coordinate to 'depth'.
temp_cube.unit = *'C'*
temp_cube.coord(dimensions=1, dim_coords=True).rename(*'depth'*)
# Extract a spatial sub-domain.
sub_temp_cube = temp_cube.extract(iris.Constraint(latitude=0.5,
 longitude=lambda v: 45 < v < 100))
# Iterate over all the depth-longitude sections (in this case it
# iterates over time)
for cross_sect_cube in sub_temp_cube.slices([*'depth'*, *'longitude'*]):
 qplt.pcolormesh(cross_sect_cube)
 plt.gca().invert_yaxis()
 plt.show()
 break
[image: Inline images 1]
Hope that helps!
Phil
On 2 March 2013 09:37, Phil Elson <pel...@gm...> wrote:
> Perhaps something like:
>
>
> from matplotlib import pyplot as plt
>
> from netCDF4 import Dataset
>
> import numpy as np
>
>
>
> url=*'
> http://www.marine.csiro.au/dods/nph-dods/dods-data/climatology-netcdf/levitus_monthly_temp_98.nc
> '*
>
> ds = Dataset(url)
>
>
>
> temp = ds.variables[*'TEMP'*]
>
> lats = ds.variables[*'**lat**'*]
>
> lons = ds.variables[*'**lon**'*]
>
> depths = ds.variables[*'z'*]
>
>
>
> # filter all but one latitude
>
> lat_index = np.where(lats[:] == 0.5)[0][0]
>
> lats = lats[lat_index]
>
>
> # filter a range of longitudes
>
> lon_lower_index = np.where(lons[:] == 44.5)[0][0]
>
> lon_upper_index = np.where(lons[:] == 100.5)[0][0]
>
> lons = lons[lon_lower_index:lon_upper_index]
>
>
> temp = temp[0, :, lat_index, lon_lower_index:lon_upper_index]
>
>
>
> plt.pcolormesh(lons, depths[:], temp)
>
> plt.gca().invert_yaxis()
>
>
> plt.show()
>
>
>
>
>
>
> The indexing approach used here is quite flakey, so I certainly wouldn't
> use this in anything operational.
>
> Hope this helps,
>
> Phil
>
>
>
From: Phil E. <pel...@gm...> - 2013年03月02日 09:37:27
Attachments: figure_1.png
Perhaps something like:
from matplotlib import pyplot as plt
from netCDF4 import Dataset
import numpy as np
url=*'
http://www.marine.csiro.au/dods/nph-dods/dods-data/climatology-netcdf/levitus_monthly_temp_98.nc
'*
ds = Dataset(url)
temp = ds.variables[*'TEMP'*]
lats = ds.variables[*'**lat**'*]
lons = ds.variables[*'**lon**'*]
depths = ds.variables[*'z'*]
# filter all but one latitude
lat_index = np.where(lats[:] == 0.5)[0][0]
lats = lats[lat_index]
# filter a range of longitudes
lon_lower_index = np.where(lons[:] == 44.5)[0][0]
lon_upper_index = np.where(lons[:] == 100.5)[0][0]
lons = lons[lon_lower_index:lon_upper_index]
temp = temp[0, :, lat_index, lon_lower_index:lon_upper_index]
plt.pcolormesh(lons, depths[:], temp)
plt.gca().invert_yaxis()
plt.show()
The indexing approach used here is quite flakey, so I certainly wouldn't
use this in anything operational.
Hope this helps,
Phil

Showing results of 204

<< < 1 .. 6 7 8 9 > >> (Page 8 of 9)
Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.
Thanks for helping keep SourceForge clean.
X





Briefly describe the problem (required):
Upload screenshot of ad (required):
Select a file, or drag & drop file here.
Screenshot instructions:

Click URL instructions:
Right-click on the ad, choose "Copy Link", then paste here →
(This may not be possible with some types of ads)

More information about our ad policies

Ad destination/click URL:

AltStyle によって変換されたページ (->オリジナル) /