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
|
|
From: Pierre H. <pie...@cr...> - 2014-03-06 09:49:06
|
Le 05/03/2014 22:37, Asma Riyaz a écrit :
> img= mpimg.imread('/home/asmariyaz/Desktop/mytree.png')
> phyl_ax.imshow(img,interpolation='nearest')
Ok, so here you could try replace 'nearest' by 'bilinear' or 'bicubic'.
I believe those are the most common choices for image resampling
(because when you plot an image and then save it, there is a resampling
involved).
(http://matplotlib.org/api/pyplot_api.html#matplotlib.pyplot.imshow for
the other options)
Of course, it's also worth playing the dpi argument of savefig, as
suggested by Eric.
best,
Pierre
|
|
From: Asma R. <asm...@gm...> - 2014-03-05 22:02:10
|
I am sorry but I don't understand the meaning of anti-aliasing? Do you mean
on this line
---->fig.savefig('/home/asmariyaz/Desktop/heatmap/'+file_handle+'.pdf',bbox_inches='tight',dpi=100),
where I am giving it a new path+name? I made the following changes:
aspect='auto', interpolation='none' and I have attached the result
On Wed, Mar 5, 2014 at 4:49 PM, Eric Firing <ef...@ha...> wrote:
> On 2014/03/05 11:37 AM, Asma Riyaz wrote:
> > Sorry I somehow forgot to paste the imshow call to plot the .png
> > image(pasted the entire code again), I am trying the different
> > interpolation parameters in the mean time as suggested by Pierre
> >
> > data=np.array(full_len)
> > cmap = mpl.cm.hot
> > if outlier==0:
> > threshold=1
> > else:
> > threshold=outlier-0.01
> >
> > fig = plt.figure(figsize=(25,25))
> > plt.suptitle(file_handle.replace('.csv',''),fontsize=22)
> > cmap.set_over('green')
> > cmap.set_under('grey')
> > gs=gridspec.GridSpec(1, 2,height_ratios=[1,1,-2,2]
> > ,width_ratios=[1,1,-2,2])
> > gs.tight_layout(fig,)
> > phyl_ax=plt.subplot(gs[0]) ##,frameon=False)##
> > ht_ax=plt.subplot(gs[1],sharey=phyl_ax)
> > ##gs.tight_layout(fig, rect=[1,1,2,2])
> > ht_ax.set_xlim(0,35)
> > ht_ax.set_ylim(0,35)
> > ##ht_ax.grid(color='white',linestyle='-',linewidth=1)
> > ##fig.subplots_adjust(hspace=0)
> > cb_ax,kw =mpl.colorbar.make_axes(ht_ax, shrink=0.65)
> >
> > plt.setp(phyl_ax.get_xticklabels(),visible=False)
> > plt.setp(phyl_ax.get_yticklabels(),visible=False)
> > plt.setp(ht_ax.get_xticklabels(),visible=True)
> > plt.setp(ht_ax.get_yticklabels(),visible=True)
> > plt.setp(phyl_ax.get_xticklines(),visible=False)
> > plt.setp(phyl_ax.get_yticklines(),visible=False)
> > plt.setp(ht_ax.get_xticklines(),visible=True)
> > plt.setp(ht_ax.get_yticklines(),visible=True)
> >
> >
> > img = ht_ax.imshow(data, cmap=cmap,
> > interpolation='none',vmax=threshold)
> > cb = mpl.colorbar.ColorbarBase(ax=cb_ax,cmap=cmap,
> > extend='neither',**kw)
> > cb.cmap.set_over('green')
> > ##image_file =
> >
> cbook.get_sample_data('/home/asmariyaz/Desktop/mytree.png',asfileobj=False)
> > ##image = plt.imread(image_file)
> > img= mpimg.imread('/home/asmariyaz/Desktop/mytree.png')
> > phyl_ax.imshow(img,interpolation='nearest')
> >
> >
> heatmap_file=fig.savefig('/home/asmariyaz/Desktop/heatmap/'+file_handle+'.pdf',bbox_inches='tight')
>
> Try giving savefig a dpi kwarg to increase the resolution with which the
> image is saved in the pdf? Turn off anti-aliasing when you make the png?
>
> Eric
>
>
>
>
> ------------------------------------------------------------------------------
> Subversion Kills Productivity. Get off Subversion & Make the Move to
> Perforce.
> With Perforce, you get hassle-free workflows. Merge that actually works.
> Faster operations. Version large binaries. Built-in WAN optimization and
> the
> freedom to use Git, Perforce or both. Make the move to Perforce.
>
> http://pubads.g.doubleclick.net/gampad/clk?id=122218951&iu=/4140/ostg.clktrk
> _______________________________________________
> Matplotlib-users mailing list
> Mat...@li...
> https://lists.sourceforge.net/lists/listinfo/matplotlib-users
>
|
|
From: Eric F. <ef...@ha...> - 2014-03-05 21:49:15
|
On 2014/03/05 11:37 AM, Asma Riyaz wrote:
> Sorry I somehow forgot to paste the imshow call to plot the .png
> image(pasted the entire code again), I am trying the different
> interpolation parameters in the mean time as suggested by Pierre
>
> data=np.array(full_len)
> cmap = mpl.cm.hot
> if outlier==0:
> threshold=1
> else:
> threshold=outlier-0.01
>
> fig = plt.figure(figsize=(25,25))
> plt.suptitle(file_handle.replace('.csv',''),fontsize=22)
> cmap.set_over('green')
> cmap.set_under('grey')
> gs=gridspec.GridSpec(1, 2,height_ratios=[1,1,-2,2]
> ,width_ratios=[1,1,-2,2])
> gs.tight_layout(fig,)
> phyl_ax=plt.subplot(gs[0]) ##,frameon=False)##
> ht_ax=plt.subplot(gs[1],sharey=phyl_ax)
> ##gs.tight_layout(fig, rect=[1,1,2,2])
> ht_ax.set_xlim(0,35)
> ht_ax.set_ylim(0,35)
> ##ht_ax.grid(color='white',linestyle='-',linewidth=1)
> ##fig.subplots_adjust(hspace=0)
> cb_ax,kw =mpl.colorbar.make_axes(ht_ax, shrink=0.65)
>
> plt.setp(phyl_ax.get_xticklabels(),visible=False)
> plt.setp(phyl_ax.get_yticklabels(),visible=False)
> plt.setp(ht_ax.get_xticklabels(),visible=True)
> plt.setp(ht_ax.get_yticklabels(),visible=True)
> plt.setp(phyl_ax.get_xticklines(),visible=False)
> plt.setp(phyl_ax.get_yticklines(),visible=False)
> plt.setp(ht_ax.get_xticklines(),visible=True)
> plt.setp(ht_ax.get_yticklines(),visible=True)
>
>
> img = ht_ax.imshow(data, cmap=cmap,
> interpolation='none',vmax=threshold)
> cb = mpl.colorbar.ColorbarBase(ax=cb_ax,cmap=cmap,
> extend='neither',**kw)
> cb.cmap.set_over('green')
> ##image_file =
> cbook.get_sample_data('/home/asmariyaz/Desktop/mytree.png',asfileobj=False)
> ##image = plt.imread(image_file)
> img= mpimg.imread('/home/asmariyaz/Desktop/mytree.png')
> phyl_ax.imshow(img,interpolation='nearest')
>
> heatmap_file=fig.savefig('/home/asmariyaz/Desktop/heatmap/'+file_handle+'.pdf',bbox_inches='tight')
Try giving savefig a dpi kwarg to increase the resolution with which the
image is saved in the pdf? Turn off anti-aliasing when you make the png?
Eric
|
|
From: Asma R. <asm...@gm...> - 2014-03-05 21:37:16
|
Sorry I somehow forgot to paste the imshow call to plot the .png
image(pasted the entire code again), I am trying the different
interpolation parameters in the mean time as suggested by Pierre
data=np.array(full_len)
cmap = mpl.cm.hot
if outlier==0:
threshold=1
else:
threshold=outlier-0.01
fig = plt.figure(figsize=(25,25))
plt.suptitle(file_handle.replace('.csv',''),fontsize=22)
cmap.set_over('green')
cmap.set_under('grey')
gs=gridspec.GridSpec(1, 2,height_ratios=[1,1,-2,2]
,width_ratios=[1,1,-2,2])
gs.tight_layout(fig,)
phyl_ax=plt.subplot(gs[0]) ##,frameon=False)##
ht_ax=plt.subplot(gs[1],sharey=phyl_ax)
##gs.tight_layout(fig, rect=[1,1,2,2])
ht_ax.set_xlim(0,35)
ht_ax.set_ylim(0,35)
##ht_ax.grid(color='white',linestyle='-',linewidth=1)
##fig.subplots_adjust(hspace=0)
cb_ax,kw =mpl.colorbar.make_axes(ht_ax, shrink=0.65)
plt.setp(phyl_ax.get_xticklabels(),visible=False)
plt.setp(phyl_ax.get_yticklabels(),visible=False)
plt.setp(ht_ax.get_xticklabels(),visible=True)
plt.setp(ht_ax.get_yticklabels(),visible=True)
plt.setp(phyl_ax.get_xticklines(),visible=False)
plt.setp(phyl_ax.get_yticklines(),visible=False)
plt.setp(ht_ax.get_xticklines(),visible=True)
plt.setp(ht_ax.get_yticklines(),visible=True)
img = ht_ax.imshow(data, cmap=cmap, interpolation='none',vmax=threshold)
cb = mpl.colorbar.ColorbarBase(ax=cb_ax,cmap=cmap,
extend='neither',**kw)
cb.cmap.set_over('green')
##image_file =
cbook.get_sample_data('/home/asmariyaz/Desktop/mytree.png',asfileobj=False)
##image = plt.imread(image_file)
img= mpimg.imread('/home/asmariyaz/Desktop/mytree.png')
phyl_ax.imshow(img,interpolation='nearest')
heatmap_file=fig.savefig('/home/asmariyaz/Desktop/heatmap/'+file_handle+'.pdf',bbox_inches='tight')
On Wed, Mar 5, 2014 at 3:27 PM, Pierre Haessig <pie...@cr...>wrote:
> Hi Asma,
> Le 05/03/2014 21:19, Asma Riyaz a écrit :
>
> I am trying to merge a heat map(matplotlib) with a tree(.png), but the
> .png does not plot as needed or for that matter cannot be seen easily. Here
> is my code:
>
> ####### CODE
> [....]
>
> img = ht_ax.imshow(data, cmap=cmap, interpolation='none',vmax=threshold)
> [....]
>
> How can I make the resolution of the .png image better OR for that
> matter is there a better solution to merge these together?
>
> I see the imshow call to plot the matrix but not the one you use to
> plot the png image. Could it be that the poor image rendering is due to a
> bad choice for the interpolation param ?
>
> best,
> Pierre
>
>
> ------------------------------------------------------------------------------
> Subversion Kills Productivity. Get off Subversion & Make the Move to
> Perforce.
> With Perforce, you get hassle-free workflows. Merge that actually works.
> Faster operations. Version large binaries. Built-in WAN optimization and
> the
> freedom to use Git, Perforce or both. Make the move to Perforce.
>
> http://pubads.g.doubleclick.net/gampad/clk?id=122218951&iu=/4140/ostg.clktrk
> _______________________________________________
> Matplotlib-users mailing list
> Mat...@li...
> https://lists.sourceforge.net/lists/listinfo/matplotlib-users
>
>
|
|
From: Pierre H. <pie...@cr...> - 2014-03-05 21:28:04
|
Hi Asma, Le 05/03/2014 21:19, Asma Riyaz a écrit : > I am trying to merge a heat map(matplotlib) with a tree(.png), but the > .png does not plot as needed or for that matter cannot be seen easily. > Here is my code: > > ####### CODE > [....] > img = ht_ax.imshow(data, cmap=cmap, > interpolation='none',vmax=threshold) > [....] > > How can I make the resolution of the .png image better OR for that > matter is there a better solution to merge these together? > I see the imshow call to plot the matrix but not the one you use to plot the png image. Could it be that the poor image rendering is due to a bad choice for the interpolation param ? best, Pierre |
|
From: Asma R. <asm...@gm...> - 2014-03-05 20:51:21
|
Thank you for replying!! The tree I generate is not based on clustering of matrices but rather on sequence data and hence the tree generation is different in this case. I am still looking into the seaborn project if it can lead me anywhere. Thanks Asma On Wed, Mar 5, 2014 at 3:34 PM, Paul Hobson <pmh...@gm...> wrote: > Olga Botnivik is doing some work with these types of figures in her fork > of the seaborn project. > Example here: http://nbviewer.ipython.org/gist/olgabot/8341784 > Link to the PR in github: https://github.com/mwaskom/seaborn/pull/73 > > Those might be a good place to start. > > > > On Wed, Mar 5, 2014 at 12:19 PM, Asma Riyaz <asm...@gm...> wrote: > >> Hi >> I am trying to merge a heat map(matplotlib) with a tree(.png), but the >> .png does not plot as needed or for that matter cannot be seen easily. Here >> is my code: >> >> ####### CODE >> cmap = mpl.cm.hot >> if outlier==0: >> threshold=1 >> else: >> threshold=outlier-0.01 >> >> fig = plt.figure(figsize=(25,25)) >> plt.suptitle(file_handle.replace('.csv',''),fontsize=22) >> cmap.set_over('green') >> cmap.set_under('grey') >> gs=gridspec.GridSpec(1, 2,height_ratios=[1,1,-2,2] >> ,width_ratios=[1,1,-2,2]) >> phyl_ax=plt.subplot(gs[0],frameon=False) >> ht_ax=plt.subplot(gs[1]) >> ##gs.tight_layout(fig, rect=[1,1,2,2]) >> ht_ax.set_xlim(0,35) >> ht_ax.set_ylim(0,35) >> ##ht_ax.grid(color='white',linestyle='-',linewidth=1) >> fig.subplots_adjust(hspace=0) >> cb_ax,kw =mpl.colorbar.make_axes(ht_ax, shrink=0.65) >> >> >> plt.setp(phyl_ax.get_xticklabels(),visible=False) >> plt.setp(phyl_ax.get_yticklabels(),visible=False) >> plt.setp(ht_ax.get_xticklabels(),visible=True) >> plt.setp(ht_ax.get_yticklabels(),visible=True) >> plt.setp(phyl_ax.get_xticklines(),visible=False) >> plt.setp(phyl_ax.get_yticklines(),visible=False) >> plt.setp(ht_ax.get_xticklines(),visible=True) >> plt.setp(ht_ax.get_yticklines(),visible=True) >> >> >> img = ht_ax.imshow(data, cmap=cmap, >> interpolation='none',vmax=threshold) >> cb = mpl.colorbar.ColorbarBase(ax=cb_ax,cmap=cmap, >> extend='neither',**kw) >> cb.cmap.set_over('green') >> image_file = >> cbook.get_sample_data('/home/asmariyaz/Desktop/mytree.png',asfileobj=False) >> image = plt.imread(image_file) >> >> How can I make the resolution of the .png image better OR for that matter >> is there a better solution to merge these together? >> >> I am attaching the plot I am getting with this code- (WrongTree.pdf) >> >> Thanks >> Asma >> >> >> ------------------------------------------------------------------------------ >> Subversion Kills Productivity. Get off Subversion & Make the Move to >> Perforce. >> With Perforce, you get hassle-free workflows. Merge that actually works. >> Faster operations. Version large binaries. Built-in WAN optimization and >> the >> freedom to use Git, Perforce or both. Make the move to Perforce. >> >> http://pubads.g.doubleclick.net/gampad/clk?id=122218951&iu=/4140/ostg.clktrk >> _______________________________________________ >> Matplotlib-users mailing list >> Mat...@li... >> https://lists.sourceforge.net/lists/listinfo/matplotlib-users >> >> > |
|
From: Paul H. <pmh...@gm...> - 2014-03-05 20:35:07
|
Olga Botnivik is doing some work with these types of figures in her fork of the seaborn project. Example here: http://nbviewer.ipython.org/gist/olgabot/8341784 Link to the PR in github: https://github.com/mwaskom/seaborn/pull/73 Those might be a good place to start. On Wed, Mar 5, 2014 at 12:19 PM, Asma Riyaz <asm...@gm...> wrote: > Hi > I am trying to merge a heat map(matplotlib) with a tree(.png), but the > .png does not plot as needed or for that matter cannot be seen easily. Here > is my code: > > ####### CODE > cmap = mpl.cm.hot > if outlier==0: > threshold=1 > else: > threshold=outlier-0.01 > > fig = plt.figure(figsize=(25,25)) > plt.suptitle(file_handle.replace('.csv',''),fontsize=22) > cmap.set_over('green') > cmap.set_under('grey') > gs=gridspec.GridSpec(1, 2,height_ratios=[1,1,-2,2] > ,width_ratios=[1,1,-2,2]) > phyl_ax=plt.subplot(gs[0],frameon=False) > ht_ax=plt.subplot(gs[1]) > ##gs.tight_layout(fig, rect=[1,1,2,2]) > ht_ax.set_xlim(0,35) > ht_ax.set_ylim(0,35) > ##ht_ax.grid(color='white',linestyle='-',linewidth=1) > fig.subplots_adjust(hspace=0) > cb_ax,kw =mpl.colorbar.make_axes(ht_ax, shrink=0.65) > > > plt.setp(phyl_ax.get_xticklabels(),visible=False) > plt.setp(phyl_ax.get_yticklabels(),visible=False) > plt.setp(ht_ax.get_xticklabels(),visible=True) > plt.setp(ht_ax.get_yticklabels(),visible=True) > plt.setp(phyl_ax.get_xticklines(),visible=False) > plt.setp(phyl_ax.get_yticklines(),visible=False) > plt.setp(ht_ax.get_xticklines(),visible=True) > plt.setp(ht_ax.get_yticklines(),visible=True) > > > img = ht_ax.imshow(data, cmap=cmap, > interpolation='none',vmax=threshold) > cb = mpl.colorbar.ColorbarBase(ax=cb_ax,cmap=cmap, > extend='neither',**kw) > cb.cmap.set_over('green') > image_file = > cbook.get_sample_data('/home/asmariyaz/Desktop/mytree.png',asfileobj=False) > image = plt.imread(image_file) > > How can I make the resolution of the .png image better OR for that matter > is there a better solution to merge these together? > > I am attaching the plot I am getting with this code- (WrongTree.pdf) > > Thanks > Asma > > > ------------------------------------------------------------------------------ > Subversion Kills Productivity. Get off Subversion & Make the Move to > Perforce. > With Perforce, you get hassle-free workflows. Merge that actually works. > Faster operations. Version large binaries. Built-in WAN optimization and > the > freedom to use Git, Perforce or both. Make the move to Perforce. > > http://pubads.g.doubleclick.net/gampad/clk?id=122218951&iu=/4140/ostg.clktrk > _______________________________________________ > Matplotlib-users mailing list > Mat...@li... > https://lists.sourceforge.net/lists/listinfo/matplotlib-users > > |
|
From: Asma R. <asm...@gm...> - 2014-03-05 20:19:45
|
Hi
I am trying to merge a heat map(matplotlib) with a tree(.png), but the .png
does not plot as needed or for that matter cannot be seen easily. Here is
my code:
####### CODE
cmap = mpl.cm.hot
if outlier==0:
threshold=1
else:
threshold=outlier-0.01
fig = plt.figure(figsize=(25,25))
plt.suptitle(file_handle.replace('.csv',''),fontsize=22)
cmap.set_over('green')
cmap.set_under('grey')
gs=gridspec.GridSpec(1, 2,height_ratios=[1,1,-2,2]
,width_ratios=[1,1,-2,2])
phyl_ax=plt.subplot(gs[0],frameon=False)
ht_ax=plt.subplot(gs[1])
##gs.tight_layout(fig, rect=[1,1,2,2])
ht_ax.set_xlim(0,35)
ht_ax.set_ylim(0,35)
##ht_ax.grid(color='white',linestyle='-',linewidth=1)
fig.subplots_adjust(hspace=0)
cb_ax,kw =mpl.colorbar.make_axes(ht_ax, shrink=0.65)
plt.setp(phyl_ax.get_xticklabels(),visible=False)
plt.setp(phyl_ax.get_yticklabels(),visible=False)
plt.setp(ht_ax.get_xticklabels(),visible=True)
plt.setp(ht_ax.get_yticklabels(),visible=True)
plt.setp(phyl_ax.get_xticklines(),visible=False)
plt.setp(phyl_ax.get_yticklines(),visible=False)
plt.setp(ht_ax.get_xticklines(),visible=True)
plt.setp(ht_ax.get_yticklines(),visible=True)
img = ht_ax.imshow(data, cmap=cmap, interpolation='none',vmax=threshold)
cb = mpl.colorbar.ColorbarBase(ax=cb_ax,cmap=cmap,
extend='neither',**kw)
cb.cmap.set_over('green')
image_file =
cbook.get_sample_data('/home/asmariyaz/Desktop/mytree.png',asfileobj=False)
image = plt.imread(image_file)
How can I make the resolution of the .png image better OR for that matter
is there a better solution to merge these together?
I am attaching the plot I am getting with this code- (WrongTree.pdf)
Thanks
Asma
|
|
From: Adam H. <hug...@gm...> - 2014-03-05 20:13:47
|
Thanks Andreas. That is correct; however, I'd rather not make this change
global. I only want a subset of my plots to have this behavior. I feel
like changing the rcparams would change this globally and probably confuse
users who don't know this is being called.
I should have realized this before posting, but by putting this into a
function as I've shown above, the foo plot is destroyed, so it doesn't
actually appear in notebooks (which is why I was hesitant to use it in the
first place). Therefore, reseting the color cycle is not necessary and
this is all that is requried.
def show_colors_default():
axfoo = plt.subplots()[1]
c = axfoo._get_lines.color_cycle.next()
# Iterate until duplicate is found
while c not in clist:
clist.append(c)
return clist
My histogram would merely access this and be done with it.
On Wed, Mar 5, 2014 at 3:07 PM, Andreas Hilboll <li...@hi...> wrote:
> On 05.03.2014 20:56, Adam Hughes wrote:> Hi,
> >
> > I am making a stacked histogram where one must enter the desired colors
> > together in a list/array when the histogram is called. For certain
> > objects in my code, it's helpful to assign a color to them, so that they
> > are immediately identified across various plots. Therefore, I
> > essentially want to take the color cycle, swap out a few entries for
> > which colors have been assigned by the user, and otherwise keep the
> > cycle in tact. For example, if the first object is to be orange, but no
> > other colors are assigned, I want something like:
> >
> > colors= ['orange', default_cycle[1::]]
> >
> > However, according to some threads, the only way to access the color
> > cycle that I'm aware of is through a generator stored in:
> >
> > axes._get_lines.color_cycle()
>
> If I'm not mistaken, you should be able to set the appropriate rcParam,
> i.e.,
>
> mpl.rcParams['axes.color_cycle'] = ['orange', default_cycle[1::]]
>
> Cheers, Andreas.
>
>
> >
> > I don't like this approach because iterating through the color cycle
> > will cause the next plot to start at a different point in the cycle.
> > I'm sure I can hack something up that gets around this, but there seems
> > to be a canonical way to just list all of the default colors in a list
> > once and be done with it. Is this the case?
> >
> > Thanks.
> >
> >
> >
>
> ------------------------------------------------------------------------------
> > Subversion Kills Productivity. Get off Subversion & Make the Move to
> Perforce.
> > With Perforce, you get hassle-free workflows. Merge that actually works.
> > Faster operations. Version large binaries. Built-in WAN optimization
> and the
> > freedom to use Git, Perforce or both. Make the move to Perforce.
> >
>
> http://pubads.g.doubleclick.net/gampad/clk?id=122218951&iu=/4140/ostg.clktrk
> >
> >
> >
> > _______________________________________________
> > Matplotlib-users mailing list
> > Mat...@li...
> > https://lists.sourceforge.net/lists/listinfo/matplotlib-users
> >
>
>
> --
> -- Andreas.
>
>
> ------------------------------------------------------------------------------
> Subversion Kills Productivity. Get off Subversion & Make the Move to
> Perforce.
> With Perforce, you get hassle-free workflows. Merge that actually works.
> Faster operations. Version large binaries. Built-in WAN optimization and
> the
> freedom to use Git, Perforce or both. Make the move to Perforce.
>
> http://pubads.g.doubleclick.net/gampad/clk?id=122218951&iu=/4140/ostg.clktrk
> _______________________________________________
> Matplotlib-users mailing list
> Mat...@li...
> https://lists.sourceforge.net/lists/listinfo/matplotlib-users
>
|
|
From: Adam H. <hug...@gm...> - 2014-03-05 20:07:53
|
Well, the hack wasn't as messy as I thought. Still feel like there's a
better way...
def show_colors_default():
fig, axfoo = plt.subplots()
clist = []
c = axfoo._get_lines.color_cycle.next()
# Iterate until duplicate is found
while c not in clist:
clist.append(c)
c = axfoo._get_lines.color_cycle.next()
# Reset colorcycle
for i in range(len(clist) -1):
axfoo._get_lines.color_cycle.next()
return clist
On Wed, Mar 5, 2014 at 2:56 PM, Adam Hughes <hug...@gm...> wrote:
> Hi,
>
> I am making a stacked histogram where one must enter the desired colors
> together in a list/array when the histogram is called. For certain objects
> in my code, it's helpful to assign a color to them, so that they are
> immediately identified across various plots. Therefore, I essentially want
> to take the color cycle, swap out a few entries for which colors have been
> assigned by the user, and otherwise keep the cycle in tact. For example,
> if the first object is to be orange, but no other colors are assigned, I
> want something like:
>
> colors= ['orange', default_cycle[1::]]
>
> However, according to some threads, the only way to access the color cycle
> that I'm aware of is through a generator stored in:
>
> axes._get_lines.color_cycle()
>
> I don't like this approach because iterating through the color cycle will
> cause the next plot to start at a different point in the cycle. I'm sure I
> can hack something up that gets around this, but there seems to be a
> canonical way to just list all of the default colors in a list once and be
> done with it. Is this the case?
>
> Thanks.
>
|
|
From: Andreas H. <li...@hi...> - 2014-03-05 20:07:52
|
On 05.03.2014 20:56, Adam Hughes wrote:> Hi, > > I am making a stacked histogram where one must enter the desired colors > together in a list/array when the histogram is called. For certain > objects in my code, it's helpful to assign a color to them, so that they > are immediately identified across various plots. Therefore, I > essentially want to take the color cycle, swap out a few entries for > which colors have been assigned by the user, and otherwise keep the > cycle in tact. For example, if the first object is to be orange, but no > other colors are assigned, I want something like: > > colors= ['orange', default_cycle[1::]] > > However, according to some threads, the only way to access the color > cycle that I'm aware of is through a generator stored in: > > axes._get_lines.color_cycle() If I'm not mistaken, you should be able to set the appropriate rcParam, i.e., mpl.rcParams['axes.color_cycle'] = ['orange', default_cycle[1::]] Cheers, Andreas. > > I don't like this approach because iterating through the color cycle > will cause the next plot to start at a different point in the cycle. > I'm sure I can hack something up that gets around this, but there seems > to be a canonical way to just list all of the default colors in a list > once and be done with it. Is this the case? > > Thanks. > > > ------------------------------------------------------------------------------ > Subversion Kills Productivity. Get off Subversion & Make the Move to Perforce. > With Perforce, you get hassle-free workflows. Merge that actually works. > Faster operations. Version large binaries. Built-in WAN optimization and the > freedom to use Git, Perforce or both. Make the move to Perforce. > http://pubads.g.doubleclick.net/gampad/clk?id=122218951&iu=/4140/ostg.clktrk > > > > _______________________________________________ > Matplotlib-users mailing list > Mat...@li... > https://lists.sourceforge.net/lists/listinfo/matplotlib-users > -- -- Andreas. |
|
From: Adam H. <hug...@gm...> - 2014-03-05 19:56:52
|
Hi, I am making a stacked histogram where one must enter the desired colors together in a list/array when the histogram is called. For certain objects in my code, it's helpful to assign a color to them, so that they are immediately identified across various plots. Therefore, I essentially want to take the color cycle, swap out a few entries for which colors have been assigned by the user, and otherwise keep the cycle in tact. For example, if the first object is to be orange, but no other colors are assigned, I want something like: colors= ['orange', default_cycle[1::]] However, according to some threads, the only way to access the color cycle that I'm aware of is through a generator stored in: axes._get_lines.color_cycle() I don't like this approach because iterating through the color cycle will cause the next plot to start at a different point in the cycle. I'm sure I can hack something up that gets around this, but there seems to be a canonical way to just list all of the default colors in a list once and be done with it. Is this the case? Thanks. |
|
From: Fadzil M. <fad...@gm...> - 2014-03-05 17:39:22
|
Hi all,
Signel, yeah, I should have post it on stackoverflow. Will do that next
time.
Benjamin, I've been using GrADS for the last 3 years, and just recently
using python for more functionality (which came with a price,of
course-learning curve).
Seems like I 've found the solution. I should have declared the 'level'
early , as suggested by Alex, for eg:
---
*...*
*....*
*f = nc.Dataset('D:/data/omega.mon.mean.nc
<http://omega.mon.mean.nc/>','r')*
*omg = f.variables['omega'][2,5,:,:] # the dimension is -
levels,time,lon,lat*
*...*
*....*
*---------*
Thanks
Postgraduate Student Room 1U09 - Dept of Meteorology University of Reading,
Earley Gate Reading RG6 6BB, UK
On Wed, Mar 5, 2014 at 3:36 PM, Benjamin Root <ben...@ou...> wrote:
> The issue I see is one of ensuring that your inputs into contourf() are of
> the expected shapes. If you want a generalized script, then you will need
> to do various steps that can prepare 3d data into a 2d by assuming a
> particular level. The fun part of all of this is that different data
> sources organize their data differently. You might have data defined as
> (time, lat, lon, z), or you might have (lon, lat, time), or maybe (z, lat,
> lon). If your data sources are CF-compliant, then you might be able to take
> advantage of tools such as ncview that tries to be very intelligent about
> all of these fun issues.
>
> Cheers!
> Ben Root
>
>
>
> On Tue, Mar 4, 2014 at 10:22 PM, Fadzil Mnor <fad...@gm...>wrote:
>
>> Hi all,
>> I've been looking for solution on this for days, and seems like nothing
>> works.
>> I wrote this code to read TRMM data and it works, but somehow not
>> working when I use the same script to read NCEP reanalysis data...which
>> later I found out it worked for netCDF files with only 1 'level'
>> (Zsize=1), not multiple 'levels' (Zsize more than 1).
>> I'm stuck at where went wrong, and I tried everything and lost of track
>> what the error massages were.
>> This is what I wrote to read and plot NCEP reanalysis data. (this omega
>> data has Xsize=144, Ysize=73, Zsize=12, Tsize=792, Esize=1)
>>
>> -------------------------------------------------------------------------------------------------------------------------------------------
>> *import netCDF4 as nc*
>> *import matplotlib.pyplot as plt*
>> *from mpl_toolkits.basemap import Basemap*
>> *import numpy as np*
>>
>> *f = nc.Dataset('D:/data/omega.mon.mean.nc
>> <http://omega.mon.mean.nc>','r')*
>> *omg = f.variables['omega'][0]*
>> *lon = f.variables['lon'][:]*
>> *lat = f.variables['lat'][:]*
>> *times = f.variables['time'][:]*
>>
>> *# Set up a map *
>> *map =
>> Basemap(projection='cyl',llcrnrlat=0.,urcrnrlat=10.,llcrnrlon=97.,urcrnrlon=110.,resolution='i')*
>> *x,y=map(*np.meshgrid(lon,lat))*
>> *map.drawcoastlines()*
>> *map.drawcountries()*
>> *map.drawparallels(np.arange(-90.,90.,3),labels=[1,0,0,0],fontsize=10)*
>> *map.drawmeridians(np.arange(-180.,180.,3),labels=[0,0,0,1],fontsize=10)*
>>
>> *#contour data*
>> *clevs=np.arange(0.,1.,0.1) # contour interval*
>> *cs = map.contourf(x,y,pcpr,clevs,extent='both')*
>> *cb = map.colorbar(cs,'bottom',size='2%',pad="5%") #plot the colorbar *
>>
>> *cb.set_label('m/s')*
>> *plt.title('Omega-test')*
>>
>> *plt.show()*
>>
>> *f.close()*
>>
>> -----------------------------------------------------------------------------------------------------------------------------------------
>>
>> Above code gave error: Input z must be a 2D array....
>> (that's at *cs = map.contourf(x,y,pcpr,clevs,extent='both')*...)
>>
>> Hopefully anyone can help.
>> Thanks for your time reading this.
>>
>> Fadzil
>>
>>
>>
>>
>> ------------------------------------------------------------------------------
>> Subversion Kills Productivity. Get off Subversion & Make the Move to
>> Perforce.
>> With Perforce, you get hassle-free workflows. Merge that actually works.
>> Faster operations. Version large binaries. Built-in WAN optimization and
>> the
>> freedom to use Git, Perforce or both. Make the move to Perforce.
>>
>> http://pubads.g.doubleclick.net/gampad/clk?id=122218951&iu=/4140/ostg.clktrk
>> _______________________________________________
>> Matplotlib-users mailing list
>> Mat...@li...
>> https://lists.sourceforge.net/lists/listinfo/matplotlib-users
>>
>>
>
|
|
From: Benjamin R. <ben...@ou...> - 2014-03-05 15:36:57
|
The issue I see is one of ensuring that your inputs into contourf() are of
the expected shapes. If you want a generalized script, then you will need
to do various steps that can prepare 3d data into a 2d by assuming a
particular level. The fun part of all of this is that different data
sources organize their data differently. You might have data defined as
(time, lat, lon, z), or you might have (lon, lat, time), or maybe (z, lat,
lon). If your data sources are CF-compliant, then you might be able to take
advantage of tools such as ncview that tries to be very intelligent about
all of these fun issues.
Cheers!
Ben Root
On Tue, Mar 4, 2014 at 10:22 PM, Fadzil Mnor <fad...@gm...> wrote:
> Hi all,
> I've been looking for solution on this for days, and seems like nothing
> works.
> I wrote this code to read TRMM data and it works, but somehow not working
> when I use the same script to read NCEP reanalysis data...which later I
> found out it worked for netCDF files with only 1 'level' (Zsize=1), not
> multiple 'levels' (Zsize more than 1).
> I'm stuck at where went wrong, and I tried everything and lost of track
> what the error massages were.
> This is what I wrote to read and plot NCEP reanalysis data. (this omega
> data has Xsize=144, Ysize=73, Zsize=12, Tsize=792, Esize=1)
>
> -------------------------------------------------------------------------------------------------------------------------------------------
> *import netCDF4 as nc*
> *import matplotlib.pyplot as plt*
> *from mpl_toolkits.basemap import Basemap*
> *import numpy as np*
>
> *f = nc.Dataset('D:/data/omega.mon.mean.nc
> <http://omega.mon.mean.nc>','r')*
> *omg = f.variables['omega'][0]*
> *lon = f.variables['lon'][:]*
> *lat = f.variables['lat'][:]*
> *times = f.variables['time'][:]*
>
> *# Set up a map *
> *map =
> Basemap(projection='cyl',llcrnrlat=0.,urcrnrlat=10.,llcrnrlon=97.,urcrnrlon=110.,resolution='i')*
> *x,y=map(*np.meshgrid(lon,lat))*
> *map.drawcoastlines()*
> *map.drawcountries()*
> *map.drawparallels(np.arange(-90.,90.,3),labels=[1,0,0,0],fontsize=10)*
> *map.drawmeridians(np.arange(-180.,180.,3),labels=[0,0,0,1],fontsize=10)*
>
> *#contour data*
> *clevs=np.arange(0.,1.,0.1) # contour interval*
> *cs = map.contourf(x,y,pcpr,clevs,extent='both')*
> *cb = map.colorbar(cs,'bottom',size='2%',pad="5%") #plot the colorbar *
>
> *cb.set_label('m/s')*
> *plt.title('Omega-test')*
>
> *plt.show()*
>
> *f.close()*
>
> -----------------------------------------------------------------------------------------------------------------------------------------
>
> Above code gave error: Input z must be a 2D array....
> (that's at *cs = map.contourf(x,y,pcpr,clevs,extent='both')*...)
>
> Hopefully anyone can help.
> Thanks for your time reading this.
>
> Fadzil
>
>
>
>
> ------------------------------------------------------------------------------
> Subversion Kills Productivity. Get off Subversion & Make the Move to
> Perforce.
> With Perforce, you get hassle-free workflows. Merge that actually works.
> Faster operations. Version large binaries. Built-in WAN optimization and
> the
> freedom to use Git, Perforce or both. Make the move to Perforce.
>
> http://pubads.g.doubleclick.net/gampad/clk?id=122218951&iu=/4140/ostg.clktrk
> _______________________________________________
> Matplotlib-users mailing list
> Mat...@li...
> https://lists.sourceforge.net/lists/listinfo/matplotlib-users
>
>
|
|
From: Signell, R. <rsi...@us...> - 2014-03-05 12:53:07
|
Fadzil,
Questions like this that involve code are great to ask on
stackoverflow, tagging with "netcdf", "matplotlib" and "python".
-Rich
On Wed, Mar 5, 2014 at 6:57 AM, Fadzil Mnor <fad...@gm...> wrote:
> Hi all, thanks for your time.
> Paul, yes, it should be 'omg', I did some copy-and-paste error while writing
> the email and test the code at the same time.
> Alex, yes, that's the problem that i wasn't sure how to do. But thanks, I'll
> try to figure it out how and try in a bit.
>
> Cheers,
>
>
> Postgraduate Student Room 1U09 - Dept of Meteorology University of Reading,
> Earley Gate Reading RG6 6BB, UK
>
>
> On Wed, Mar 5, 2014 at 3:40 AM, Alex Goodman <ale...@co...>
> wrote:
>>
>> Hi Fadzil,
>>
>> I am not sure if I fully understand your question. Are you simply trying
>> to write a general script that plots contours for atmospheric netcdf data?
>> At the very least, your error message has a very simple explanation in that
>> the third argument of contourf (in this case, pcpr or omg?) must be a 2D
>> array with shape (Xsize, Ysize). For data with one vertical level, it would
>> be reasonable to expect the script to work, but if you have multiple
>> vertical levels and don't select a specific one in your code, then you can't
>> use contourf, simple as that.
>>
>> Does that help at all?
>> Alex
>>
>>
>>
>> On Tue, Mar 4, 2014 at 8:22 PM, Fadzil Mnor <fad...@gm...>
>> wrote:
>>>
>>> Hi all,
>>> I've been looking for solution on this for days, and seems like nothing
>>> works.
>>> I wrote this code to read TRMM data and it works, but somehow not working
>>> when I use the same script to read NCEP reanalysis data...which later I
>>> found out it worked for netCDF files with only 1 'level' (Zsize=1), not
>>> multiple 'levels' (Zsize more than 1).
>>> I'm stuck at where went wrong, and I tried everything and lost of track
>>> what the error massages were.
>>> This is what I wrote to read and plot NCEP reanalysis data. (this omega
>>> data has Xsize=144, Ysize=73, Zsize=12, Tsize=792, Esize=1)
>>>
>>> -------------------------------------------------------------------------------------------------------------------------------------------
>>> import netCDF4 as nc
>>> import matplotlib.pyplot as plt
>>> from mpl_toolkits.basemap import Basemap
>>> import numpy as np
>>>
>>> f = nc.Dataset('D:/data/omega.mon.mean.nc','r')
>>> omg = f.variables['omega'][0]
>>> lon = f.variables['lon'][:]
>>> lat = f.variables['lat'][:]
>>> times = f.variables['time'][:]
>>>
>>> # Set up a map
>>> map =
>>> Basemap(projection='cyl',llcrnrlat=0.,urcrnrlat=10.,llcrnrlon=97.,urcrnrlon=110.,resolution='i')
>>> x,y=map(*np.meshgrid(lon,lat))
>>> map.drawcoastlines()
>>> map.drawcountries()
>>> map.drawparallels(np.arange(-90.,90.,3),labels=[1,0,0,0],fontsize=10)
>>> map.drawmeridians(np.arange(-180.,180.,3),labels=[0,0,0,1],fontsize=10)
>>>
>>> #contour data
>>> clevs=np.arange(0.,1.,0.1) # contour interval
>>> cs = map.contourf(x,y,pcpr,clevs,extent='both')
>>> cb = map.colorbar(cs,'bottom',size='2%',pad="5%") #plot the colorbar
>>>
>>> cb.set_label('m/s')
>>> plt.title('Omega-test')
>>>
>>> plt.show()
>>>
>>> f.close()
>>>
>>> -----------------------------------------------------------------------------------------------------------------------------------------
>>>
>>> Above code gave error: Input z must be a 2D array....
>>> (that's at cs = map.contourf(x,y,pcpr,clevs,extent='both')...)
>>>
>>> Hopefully anyone can help.
>>> Thanks for your time reading this.
>>>
>>> Fadzil
>>>
>>>
>>>
>>>
>>> ------------------------------------------------------------------------------
>>> Subversion Kills Productivity. Get off Subversion & Make the Move to
>>> Perforce.
>>> With Perforce, you get hassle-free workflows. Merge that actually works.
>>> Faster operations. Version large binaries. Built-in WAN optimization and
>>> the
>>> freedom to use Git, Perforce or both. Make the move to Perforce.
>>>
>>> http://pubads.g.doubleclick.net/gampad/clk?id=122218951&iu=/4140/ostg.clktrk
>>> _______________________________________________
>>> Matplotlib-users mailing list
>>> Mat...@li...
>>> https://lists.sourceforge.net/lists/listinfo/matplotlib-users
>>>
>>
>>
>>
>> --
>> Alex Goodman
>> Graduate Research Assistant
>> Department of Atmospheric Science
>> Colorado State University
>
>
>
> ------------------------------------------------------------------------------
> Subversion Kills Productivity. Get off Subversion & Make the Move to
> Perforce.
> With Perforce, you get hassle-free workflows. Merge that actually works.
> Faster operations. Version large binaries. Built-in WAN optimization and
> the
> freedom to use Git, Perforce or both. Make the move to Perforce.
> http://pubads.g.doubleclick.net/gampad/clk?id=122218951&iu=/4140/ostg.clktrk
> _______________________________________________
> Matplotlib-users mailing list
> Mat...@li...
> https://lists.sourceforge.net/lists/listinfo/matplotlib-users
>
--
Dr. Richard P. Signell (508) 457-2229
USGS, 384 Woods Hole Rd.
Woods Hole, MA 02543-1598
|
|
From: Fadzil M. <fad...@gm...> - 2014-03-05 11:57:48
|
Hi all, thanks for your time.
Paul, yes, it should be 'omg', I did some copy-and-paste error while
writing the email and test the code at the same time.
Alex, yes, that's the problem that i wasn't sure how to do. But thanks,
I'll try to figure it out how and try in a bit.
Cheers,
Postgraduate Student Room 1U09 - Dept of Meteorology University of Reading,
Earley Gate Reading RG6 6BB, UK
On Wed, Mar 5, 2014 at 3:40 AM, Alex Goodman <ale...@co...>wrote:
> Hi Fadzil,
>
> I am not sure if I fully understand your question. Are you simply trying
> to write a general script that plots contours for atmospheric netcdf data?
> At the very least, your error message has a very simple explanation in that
> the third argument of contourf (in this case, pcpr or omg?) must be a 2D
> array with shape (Xsize, Ysize). For data with one vertical level, it would
> be reasonable to expect the script to work, but if you have multiple
> vertical levels and don't select a specific one in your code, then you
> can't use contourf, simple as that.
>
> Does that help at all?
> Alex
>
>
>
> On Tue, Mar 4, 2014 at 8:22 PM, Fadzil Mnor <fad...@gm...>wrote:
>
>> Hi all,
>> I've been looking for solution on this for days, and seems like nothing
>> works.
>> I wrote this code to read TRMM data and it works, but somehow not
>> working when I use the same script to read NCEP reanalysis data...which
>> later I found out it worked for netCDF files with only 1 'level'
>> (Zsize=1), not multiple 'levels' (Zsize more than 1).
>> I'm stuck at where went wrong, and I tried everything and lost of track
>> what the error massages were.
>> This is what I wrote to read and plot NCEP reanalysis data. (this omega
>> data has Xsize=144, Ysize=73, Zsize=12, Tsize=792, Esize=1)
>>
>> -------------------------------------------------------------------------------------------------------------------------------------------
>> *import netCDF4 as nc*
>> *import matplotlib.pyplot as plt*
>> *from mpl_toolkits.basemap import Basemap*
>> *import numpy as np*
>>
>> *f = nc.Dataset('D:/data/omega.mon.mean.nc
>> <http://omega.mon.mean.nc>','r')*
>> *omg = f.variables['omega'][0]*
>> *lon = f.variables['lon'][:]*
>> *lat = f.variables['lat'][:]*
>> *times = f.variables['time'][:]*
>>
>> *# Set up a map *
>> *map =
>> Basemap(projection='cyl',llcrnrlat=0.,urcrnrlat=10.,llcrnrlon=97.,urcrnrlon=110.,resolution='i')*
>> *x,y=map(*np.meshgrid(lon,lat))*
>> *map.drawcoastlines()*
>> *map.drawcountries()*
>> *map.drawparallels(np.arange(-90.,90.,3),labels=[1,0,0,0],fontsize=10)*
>> *map.drawmeridians(np.arange(-180.,180.,3),labels=[0,0,0,1],fontsize=10)*
>>
>> *#contour data*
>> *clevs=np.arange(0.,1.,0.1) # contour interval*
>> *cs = map.contourf(x,y,pcpr,clevs,extent='both')*
>> *cb = map.colorbar(cs,'bottom',size='2%',pad="5%") #plot the colorbar *
>>
>> *cb.set_label('m/s')*
>> *plt.title('Omega-test')*
>>
>> *plt.show()*
>>
>> *f.close()*
>>
>> -----------------------------------------------------------------------------------------------------------------------------------------
>>
>> Above code gave error: Input z must be a 2D array....
>> (that's at *cs = map.contourf(x,y,pcpr,clevs,extent='both')*...)
>>
>> Hopefully anyone can help.
>> Thanks for your time reading this.
>>
>> Fadzil
>>
>>
>>
>>
>> ------------------------------------------------------------------------------
>> Subversion Kills Productivity. Get off Subversion & Make the Move to
>> Perforce.
>> With Perforce, you get hassle-free workflows. Merge that actually works.
>> Faster operations. Version large binaries. Built-in WAN optimization and
>> the
>> freedom to use Git, Perforce or both. Make the move to Perforce.
>>
>> http://pubads.g.doubleclick.net/gampad/clk?id=122218951&iu=/4140/ostg.clktrk
>> _______________________________________________
>> Matplotlib-users mailing list
>> Mat...@li...
>> https://lists.sourceforge.net/lists/listinfo/matplotlib-users
>>
>>
>
>
> --
> Alex Goodman
> Graduate Research Assistant
> Department of Atmospheric Science
> Colorado State University
>
|
|
From: Alex G. <ale...@co...> - 2014-03-05 03:40:09
|
Hi Fadzil,
I am not sure if I fully understand your question. Are you simply trying to
write a general script that plots contours for atmospheric netcdf data? At
the very least, your error message has a very simple explanation in that
the third argument of contourf (in this case, pcpr or omg?) must be a 2D
array with shape (Xsize, Ysize). For data with one vertical level, it would
be reasonable to expect the script to work, but if you have multiple
vertical levels and don't select a specific one in your code, then you
can't use contourf, simple as that.
Does that help at all?
Alex
On Tue, Mar 4, 2014 at 8:22 PM, Fadzil Mnor <fad...@gm...> wrote:
> Hi all,
> I've been looking for solution on this for days, and seems like nothing
> works.
> I wrote this code to read TRMM data and it works, but somehow not working
> when I use the same script to read NCEP reanalysis data...which later I
> found out it worked for netCDF files with only 1 'level' (Zsize=1), not
> multiple 'levels' (Zsize more than 1).
> I'm stuck at where went wrong, and I tried everything and lost of track
> what the error massages were.
> This is what I wrote to read and plot NCEP reanalysis data. (this omega
> data has Xsize=144, Ysize=73, Zsize=12, Tsize=792, Esize=1)
>
> -------------------------------------------------------------------------------------------------------------------------------------------
> *import netCDF4 as nc*
> *import matplotlib.pyplot as plt*
> *from mpl_toolkits.basemap import Basemap*
> *import numpy as np*
>
> *f = nc.Dataset('D:/data/omega.mon.mean.nc
> <http://omega.mon.mean.nc>','r')*
> *omg = f.variables['omega'][0]*
> *lon = f.variables['lon'][:]*
> *lat = f.variables['lat'][:]*
> *times = f.variables['time'][:]*
>
> *# Set up a map *
> *map =
> Basemap(projection='cyl',llcrnrlat=0.,urcrnrlat=10.,llcrnrlon=97.,urcrnrlon=110.,resolution='i')*
> *x,y=map(*np.meshgrid(lon,lat))*
> *map.drawcoastlines()*
> *map.drawcountries()*
> *map.drawparallels(np.arange(-90.,90.,3),labels=[1,0,0,0],fontsize=10)*
> *map.drawmeridians(np.arange(-180.,180.,3),labels=[0,0,0,1],fontsize=10)*
>
> *#contour data*
> *clevs=np.arange(0.,1.,0.1) # contour interval*
> *cs = map.contourf(x,y,pcpr,clevs,extent='both')*
> *cb = map.colorbar(cs,'bottom',size='2%',pad="5%") #plot the colorbar *
>
> *cb.set_label('m/s')*
> *plt.title('Omega-test')*
>
> *plt.show()*
>
> *f.close()*
>
> -----------------------------------------------------------------------------------------------------------------------------------------
>
> Above code gave error: Input z must be a 2D array....
> (that's at *cs = map.contourf(x,y,pcpr,clevs,extent='both')*...)
>
> Hopefully anyone can help.
> Thanks for your time reading this.
>
> Fadzil
>
>
>
>
> ------------------------------------------------------------------------------
> Subversion Kills Productivity. Get off Subversion & Make the Move to
> Perforce.
> With Perforce, you get hassle-free workflows. Merge that actually works.
> Faster operations. Version large binaries. Built-in WAN optimization and
> the
> freedom to use Git, Perforce or both. Make the move to Perforce.
>
> http://pubads.g.doubleclick.net/gampad/clk?id=122218951&iu=/4140/ostg.clktrk
> _______________________________________________
> Matplotlib-users mailing list
> Mat...@li...
> https://lists.sourceforge.net/lists/listinfo/matplotlib-users
>
>
--
Alex Goodman
Graduate Research Assistant
Department of Atmospheric Science
Colorado State University
|
|
From: Fadzil M. <fad...@gm...> - 2014-03-05 03:22:54
|
Hi all,
I've been looking for solution on this for days, and seems like nothing
works.
I wrote this code to read TRMM data and it works, but somehow not working
when I use the same script to read NCEP reanalysis data...which later I
found out it worked for netCDF files with only 1 'level' (Zsize=1), not
multiple 'levels' (Zsize more than 1).
I'm stuck at where went wrong, and I tried everything and lost of track
what the error massages were.
This is what I wrote to read and plot NCEP reanalysis data. (this omega
data has Xsize=144, Ysize=73, Zsize=12, Tsize=792, Esize=1)
-------------------------------------------------------------------------------------------------------------------------------------------
*import netCDF4 as nc*
*import matplotlib.pyplot as plt*
*from mpl_toolkits.basemap import Basemap*
*import numpy as np*
*f = nc.Dataset('D:/data/omega.mon.mean.nc <http://omega.mon.mean.nc>','r')*
*omg = f.variables['omega'][0]*
*lon = f.variables['lon'][:]*
*lat = f.variables['lat'][:]*
*times = f.variables['time'][:]*
*# Set up a map *
*map =
Basemap(projection='cyl',llcrnrlat=0.,urcrnrlat=10.,llcrnrlon=97.,urcrnrlon=110.,resolution='i')*
*x,y=map(*np.meshgrid(lon,lat))*
*map.drawcoastlines()*
*map.drawcountries()*
*map.drawparallels(np.arange(-90.,90.,3),labels=[1,0,0,0],fontsize=10)*
*map.drawmeridians(np.arange(-180.,180.,3),labels=[0,0,0,1],fontsize=10)*
*#contour data*
*clevs=np.arange(0.,1.,0.1) # contour interval*
*cs = map.contourf(x,y,pcpr,clevs,extent='both')*
*cb = map.colorbar(cs,'bottom',size='2%',pad="5%") #plot the colorbar *
*cb.set_label('m/s')*
*plt.title('Omega-test')*
*plt.show()*
*f.close()*
-----------------------------------------------------------------------------------------------------------------------------------------
Above code gave error: Input z must be a 2D array....
(that's at *cs = map.contourf(x,y,pcpr,clevs,extent='both')*...)
Hopefully anyone can help.
Thanks for your time reading this.
Fadzil
|
|
From: Eric F. <ef...@ha...> - 2014-03-05 01:31:24
|
On 2014/03/04 12:56 PM, Stuart Mentzer wrote:
> Hi,
>
> I'm seeing odd behavior with the relim() and autoscale_view() call
> sequence with matplotlib 1.3.1. In some cases I am ending up with axis
> ranges of [-0.05,0.05] instead of the actual data ranges. This happens
> with scatter plots and sometimes with contour plots.
Why are you trying to use relim() here? It does not support
collections, and scatter produces a collection. It doesn't find any
Artists that it knows about, so it assumes nothing has been added to the
plot, and it yields a generic set of limits.
Eric
>
> The modified version of the scatter_demo2 below displays the problem. I
> think this used to work for scatter plots with earlier versions of
> matplotlib. Is this supposed to work or is there another way to do it
> correctly (other than doing our own limit setting)?
>
> Thanks,
> Stuart
>
> """
> Demo of scatter plot with varying marker colors and sizes.
> """
> import numpy as np
> import matplotlib.pyplot as plt
> import matplotlib.cbook as cbook
>
> # Load a numpy record array from yahoo csv data with fields date,
> # open, close, volume, adj_close from the mpl-data/example directory.
> # The record array stores python datetime.date as an object array in
> # the date column
> datafile = cbook.get_sample_data('goog.npy')
> price_data = np.load(datafile).view(np.recarray)
> price_data = price_data[-250:] # get the most recent 250 trading days
>
> delta1 = np.diff(price_data.adj_close)/price_data.adj_close[:-1]
>
> # Marker size in units of points^2
> volume = (15 * price_data.volume[:-2] / price_data.volume[0])**2
> close = 0.003 * price_data.close[:-2] / 0.003 * price_data.open[:-2]
>
> fig, ax = plt.subplots()
> ax.scatter(delta1[:-1], delta1[1:], c=close, s=volume, alpha=0.5)
>
> # These cause ranges to be set incorrectly to [-0.055,0.055] !!!!!!!!!!
> ax.relim()
> ax.autoscale_view( tight = True )
>
> ax.set_xlabel(r'$\Delta_i$', fontsize=20)
> ax.set_ylabel(r'$\Delta_{i+1}$', fontsize=20)
> ax.set_title('Volume and percent change')
>
> ax.grid(True)
>
> fig.tight_layout()
>
> plt.show()
>
>
> ------------------------------------------------------------------------------
> Subversion Kills Productivity. Get off Subversion & Make the Move to Perforce.
> With Perforce, you get hassle-free workflows. Merge that actually works.
> Faster operations. Version large binaries. Built-in WAN optimization and the
> freedom to use Git, Perforce or both. Make the move to Perforce.
> http://pubads.g.doubleclick.net/gampad/clk?id=122218951&iu=/4140/ostg.clktrk
>
>
>
> _______________________________________________
> Matplotlib-users mailing list
> Mat...@li...
> https://lists.sourceforge.net/lists/listinfo/matplotlib-users
>
|
|
From: Stuart M. <Stu...@ob...> - 2014-03-05 01:21:44
|
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
</head>
<body bgcolor="#FFFFFF" text="#000000">
Hi,<br>
<br>
I'm seeing odd behavior with the relim() and autoscale_view() call
sequence with matplotlib 1.3.1. In some cases I am ending up with
axis ranges of [-0.05,0.05] instead of the actual data ranges. This
happens with scatter plots and sometimes with contour plots.<br>
<br>
The modified version of the scatter_demo2 below displays the
problem. I think this used to work for scatter plots with earlier
versions of matplotlib. Is this supposed to work or is there another
way to do it correctly (other than doing our own limit setting)?<br>
<br>
Thanks,<br>
Stuart<br>
<br>
"""<br>
Demo of scatter plot with varying marker colors and sizes.<br>
"""<br>
import numpy as np<br>
import matplotlib.pyplot as plt<br>
import matplotlib.cbook as cbook<br>
<br>
# Load a numpy record array from yahoo csv data with fields date,<br>
# open, close, volume, adj_close from the mpl-data/example
directory.<br>
# The record array stores python datetime.date as an object array in<br>
# the date column<br>
datafile = cbook.get_sample_data('goog.npy')<br>
price_data = np.load(datafile).view(np.recarray)<br>
price_data = price_data[-250:] # get the most recent 250 trading
days<br>
<br>
delta1 = np.diff(price_data.adj_close)/price_data.adj_close[:-1]<br>
<br>
# Marker size in units of points^2<br>
volume = (15 * price_data.volume[:-2] / price_data.volume[0])**2<br>
close = 0.003 * price_data.close[:-2] / 0.003 * price_data.open[:-2]<br>
<br>
fig, ax = plt.subplots()<br>
ax.scatter(delta1[:-1], delta1[1:], c=close, s=volume, alpha=0.5)<br>
<br>
# These cause ranges to be set incorrectly to [-0.055,0.055]
!!!!!!!!!!<br>
ax.relim()<br>
ax.autoscale_view( tight = True )<br>
<br>
ax.set_xlabel(r'$\Delta_i$', fontsize=20)<br>
ax.set_ylabel(r'$\Delta_{i+1}$', fontsize=20)<br>
ax.set_title('Volume and percent change')<br>
<br>
ax.grid(True)<br>
<br>
fig.tight_layout()<br>
<br>
plt.show()<font face="Verdana, Arial, Helvetica, sans-serif"
size="1"><br>
</font>
</body>
</html>
|
|
From: Dmitrey <tm...@uk...> - 2014-03-04 10:46:29
|
hi all, I intend to create a real-time graphic like cpu load or RAM consumption, constantly shifting from right to left, as new data is received; does matplotlib have appropriate function for it? (Probably I could make it via plot() but I guess redrawing will eat lot of cpu) |
|
From: Eric F. <ef...@ha...> - 2014-03-03 21:59:59
|
On 2014/03/03 11:40 AM, Ying Liu wrote: > Hi, > > I want to know how to set the scientific ticker format in pylab. I know > that I can set it to the form of 1e21, but what I want is something like > x10^21, as follows: > > Inline image 1 -----> Inline image 2 > > > Can anybody tell me how to do this? I searched on this for a long time, > but still I did not find the answer. Execute this before plotting: rcParams['axes.formatter.use_mathtext'] = True or set it in your matplotlibrc file. Eric > > Sorry to bother those who are not interested. > > Best regards > > |
|
From: Ying L. <ube...@gm...> - 2014-03-03 21:40:25
|
Hi, I want to know how to set the scientific ticker format in pylab. I know that I can set it to the form of 1e21, but what I want is something like x10^21, as follows: [image: Inline image 1] -----> [image: Inline image 2] Can anybody tell me how to do this? I searched on this for a long time, but still I did not find the answer. Sorry to bother those who are not interested. Best regards |
|
From: Martin M. <mmo...@fo...> - 2014-03-03 18:41:32
|
Maybe I understand what he means. How can a user override some value in a colormap? Lets say, in general user wants to inherit some ready made colormap but in addition wants to force certain colors to some data items. M. Eric Firing wrote: > On 2014/03/02 1:02 AM, ChaoYue wrote: >> Dear Eric, >> >> This solved part of my problem. thanks a lot. >> I think I will revisit this issue when I have time (not promised). >> do you think this could be some feature desirable? > > I don't understand what feature you are referring to; evidently I don't > understand what the problem is, so I don't know what part remains unsolved. > > Eric > > >> >> Cheers, >> >> Chao >> >> >> On Sat, Mar 1, 2014 at 10:39 PM, Eric Firing [via matplotlib] <[hidden >> email] </user/SendEmail.jtp?type=node&node=42956&i=0>> wrote: >> >> On 2014/03/01 11:03 AM, ChaoYue wrote: >> > The most correct way might be to design a new colormap with white >> color >> > exactly in the middle, however this is very tedious, especially if I >> > want to try >> > different colormaps. so the alternative approach would be to set >> the values >> > falling in (-1,1) as being masked, so they will be the same as >> the axes >> > background color as you mentioned (in our case it's white). My >> question is, >> > how can I put this background color (which shows maksed data) in the >> > colorbar, >> > by avoiding design a new colormap? >> >> It's not the answer you want to hear, but I think the correct answer is >> that you should do this via the colormap, and not by masking the low >> values. It doesn't have to be painful. If, in contourf, you use a >> diverging colormap with white already in the middle >> (http://matplotlib.org/examples/color/colormaps_reference.html) and a >> norm with symmetric limits (vmin and vmax; you can let them be set >> automatically after you specify your symmetric set of contour >> boundaries >> appropriately) then it will be done for you. >> >> e.g., >> >> z = 10 * np.random.randn(20, 30) >> clevs = [-10, -5, -2, -1, 1, 2, 5, 10] >> cs = plt.contourf(z, levels=clevs, cmap=plt.get_cmap('PRGn'), >> extend='both') >> cbar = plt.colorbar(cs, spacing='uniform') >> >> Eric >> >> ------------------------------------------------------------------------------ > > > ------------------------------------------------------------------------------ > Flow-based real-time traffic analytics software. Cisco certified tool. > Monitor traffic, SLAs, QoS, Medianet, WAAS etc. with NetFlow Analyzer > Customize your own dashboards, set traffic alerts and generate reports. > Network behavioral analysis & security monitoring. All-in-one tool. > http://pubads.g.doubleclick.net/gampad/clk?id=126839071&iu=/4140/ostg.clktrk > _______________________________________________ > Matplotlib-users mailing list > Mat...@li... > https://lists.sourceforge.net/lists/listinfo/matplotlib-users > |
|
From: Michael D. <md...@st...> - 2014-03-03 03:10:33
|
Thanks. I'd definitely consider this a bug this. Would you mind creating an issue or pull request on github.com/matplotlib/matplotlib so it doesn't get lost? Mike On 03/01/2014 05:42 PM, Jon Roadley-Battin wrote: > >On 02/27/2014 06:58 PM, Jon Roadley-Battin wrote: > >> Good evening, > >> > >> I am at present migrating an application of mine from py27+pygtk (with > >> mpl) to py33+pygobject (gtk3) > >> > >> Unfortunately I am unable to use > >> > >> from matplotlib.backends.backend_gtk3agg import > FigureCanvasGTK3Agg as FigureCanvas > >> from matplotlib.backends.backend_gtk3 import > NavigationToolbar2GTK3 as NavigationToolbar > >> > >> Which is is on the examples ( > >> > http://matplotlib.org/examples/user_interfaces/embedding_in_gtk3_panzoom.html > >> ) but is also the logical translation from what I presently have. > >> This falls fowl of the cairo issue > >> > >> What I am having to use is backend_gtk3cairo. However this is being > >> triggered > >> > >> raise ValueError("The Cairo backend can not draw paths longer than > >> 18980 points.") > >> > >> I am generally plotting 7 x-y plots with upto 30,000 points. > >> Now for now I have commented this out from my local install, is there > >> a better/preferred/recommended alternative? > > > >This was put in there because cairo had (at least at the time) a hard > >coded limit on path size, and getting a Python exception was IMHO > >preferable to segfaulting and having the process go away. Are you > >saying that when you comment it out, it's currently working? It may be > >that cairo has fixed this limit in the intervening years. Can you > >provide a simple, standalone example that reproduces the error? > > > Using python33 & pygi-aio-3.10.2-win32_rev18 (to provide pygobject for > windows:) > Using: > http://matplotlib.org/examples/user_interfaces/embedding_in_gtk3_panzoom.html > as the baseline provides the following error: > > < File > "c:\Python33\lib\site-packages\matplotlib\backends\backend_gtk3agg.py", line > 52, in on_draw_event > buf, cairo.FORMAT_ARGB32, width, height) > NotImplementedError: Surface.create_for_data: Not Implemented yet. > > > This has been mentioned a few times across the ml > > Modifying the example to use backend_gtk3cairo > > from matplotlib.backends.backend_gtk3cairo import > FigureCanvasGTK3Cairo as FigureCanvas > from matplotlib.backends.backend_gtk3 import NavigationToolbar2GTK3 as > NavigationToolbar > > > Now the example runs and plots a nice sinewave (as expected). Modify > the script to plot 7 waveforms, 100pts > > ############################################################################################################## > #!/usr/bin/env python3 > """ > demonstrate NavigationToolbar with GTK3 accessed via pygobject > """ > > from gi.repository import Gtk > > from matplotlib.figure import Figure > import numpy as np > from matplotlib.backends.backend_gtk3cairo import > FigureCanvasGTK3Cairo as FigureCanvas > from matplotlib.backends.backend_gtk3 import NavigationToolbar2GTK3 as > NavigationToolbar > > > win = Gtk.Window() > win.connect("delete-event", Gtk.main_quit ) > win.set_default_size(400,300) > win.set_title("Embedding in GTK") > > fig = Figure(figsize=(5,4), dpi=100) > plt = fig.add_subplot(1,1,1) > > t = np.arange(0,2*np.pi,2*np.pi/100) > a = np.sin(t + 0*(2*np.pi/7)) > b = np.sin(t + 1*(2*np.pi/7)) > c = np.sin(t + 2*(2*np.pi/7)) > d = np.sin(t + 3*(2*np.pi/7)) > e = np.sin(t + 4*(2*np.pi/7)) > f = np.sin(t + 5*(2*np.pi/7)) > g = np.sin(t + 6*(2*np.pi/7)) > plt.plot(t,a) > plt.plot(t,b) > plt.plot(t,c) > plt.plot(t,d) > plt.plot(t,e) > plt.plot(t,f) > plt.plot(t,g) > > vbox = Gtk.VBox() > win.add(vbox) > > # Add canvas to vbox > canvas = FigureCanvas(fig) # a Gtk.DrawingArea > vbox.pack_start(canvas, True, True, 0) > > # Create toolbar > toolbar = NavigationToolbar(canvas, win) > vbox.pack_start(toolbar, False, False, 0) > > win.show_all() > Gtk.main() > #################################################################################################################### > > This works, its only 100pts for 7 scatters so nothing unexpected. > Modify the arange to create a time array of 30,000 pts. > > t = np.arange(0,2*np.pi,2*np.pi/30000) > > > File > "c:\Python33\lib\site-packages\matplotlib\backends\backend_cairo.py", > line 143, in draw_path > raise ValueError("The Cairo backend can not draw paths longer than > 18980 points.") > ValueError: The Cairo backend can not draw paths longer than 18980 points. > > > The already mentioned raise to protect against a segfault. > Edit backend_cairo to comment out the check: > > > def draw_path(self, gc, path, transform, rgbFace=None): > #if len(path.vertices) > 18980: > # raise ValueError("The Cairo backend can not draw paths > longer than 18980 points.") > > ctx = gc.ctx > > > > 7channel, 30,000 pts each is plotted just fine. Zoom rectangle is slow > to render, but this is true for 100pts (so more a gtk3 thing than a > cairo and multiple points thing) > > Final script: > > > > ####################################################################################################################### > #!/usr/bin/env python3 > """ > demonstrate NavigationToolbar with GTK3 accessed via pygobject > """ > > from gi.repository import Gtk > > from matplotlib.figure import Figure > import numpy as np > from matplotlib.backends.backend_gtk3cairo import > FigureCanvasGTK3Cairo as FigureCanvas #changed to use gtk3cairo > from matplotlib.backends.backend_gtk3 import NavigationToolbar2GTK3 as > NavigationToolbar > > > win = Gtk.Window() > win.connect("delete-event", Gtk.main_quit ) > win.set_default_size(400,300) > win.set_title("Embedding in GTK") > > fig = Figure(figsize=(5,4), dpi=100) > plt = fig.add_subplot(1,1,1) > > t = np.arange(0,2*np.pi,2*np.pi/30000) # 30,000 pt time > array for 7 signals > a = np.sin(t + 0*(2*np.pi/7)) > b = np.sin(t + 1*(2*np.pi/7)) > c = np.sin(t + 2*(2*np.pi/7)) > d = np.sin(t + 3*(2*np.pi/7)) > e = np.sin(t + 4*(2*np.pi/7)) > f = np.sin(t + 5*(2*np.pi/7)) > g = np.sin(t + 6*(2*np.pi/7)) > plt.plot(t,a) > plt.plot(t,b) > plt.plot(t,c) > plt.plot(t,d) > plt.plot(t,e) > plt.plot(t,f) > plt.plot(t,g) > > vbox = Gtk.VBox() > win.add(vbox) > > # Add canvas to vbox > canvas = FigureCanvas(fig) # a Gtk.DrawingArea > vbox.pack_start(canvas, True, True, 0) > > # Create toolbar > toolbar = NavigationToolbar(canvas, win) > vbox.pack_start(toolbar, False, False, 0) > > win.show_all() > Gtk.main() > ###################################################################################################################### > > > > Hope this helps. or is useful > > JonRB > > > > ------------------------------------------------------------------------------ > Flow-based real-time traffic analytics software. Cisco certified tool. > Monitor traffic, SLAs, QoS, Medianet, WAAS etc. with NetFlow Analyzer > Customize your own dashboards, set traffic alerts and generate reports. > Network behavioral analysis & security monitoring. All-in-one tool. > http://pubads.g.doubleclick.net/gampad/clk?id=126839071&iu=/4140/ostg.clktrk > > > _______________________________________________ > Matplotlib-users mailing list > Mat...@li... > https://lists.sourceforge.net/lists/listinfo/matplotlib-users -- _ |\/|o _|_ _. _ | | \.__ __|__|_|_ _ _ ._ _ | ||(_| |(_|(/_| |_/|(_)(/_|_ |_|_)(_)(_)| | | http://www.droettboom.com |