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
(3) |
3
|
4
(3) |
5
(11) |
6
(3) |
7
(2) |
8
(6) |
9
(6) |
10
(8) |
11
(3) |
12
(7) |
13
(8) |
14
(5) |
15
(11) |
16
(11) |
17
(3) |
18
(2) |
19
(7) |
20
(11) |
21
(6) |
22
(5) |
23
(1) |
24
|
25
|
26
(6) |
27
(3) |
28
(8) |
29
(2) |
30
(1) |
|
Hi When running the testsuite for matplotlib-1.2.0 i.e. $ nosetests -exe matplotlib I'm getting a lot of errors of the form: ====================================================================== ERROR: matplotlib.tests.test_dates.test_empty_date_with_year_formatter.test ---------------------------------------------------------------------- Traceback (most recent call last): File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/nose/case.py", line 197, in runTest self.test(*self.arg) File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/matplotlib/testing/decorators.py", line 72, in test self._func() File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/matplotlib/testing/decorators.py", line 47, in failer raise KnownFailureTest(msg) # An error here when running nose means that you don't have the matplotlib.testing.noseclasses:KnownFailure plugin in use. KnownFailureTest: Test known to fail ---------------------------------------------------------------------- I would expect that these known tests should fail quietly. Shouldn't they? Cheers Adam PS: I'm using python-2.7.3, nose-1.2.1 on Mac OS X 10.8.2 compiled from MacPorts.
Hi Russell, On Friday 16 November 2012 at 2:25 PM, Russell Owen wrote: > Unfortunately pip cannot install binaries, so any user that tried to > install matplotlib using pip would have to have a C compiler. > > Unfortunately many users do not have a compiler on MacOS and Windows. This is true, and an important advantage of the binary installer [1]. However, I would venture that most scientific users will have installed a compiler (at least on the Mac) - even accidentally, due to all the complicated installation procedures for many scientific software packages :-) > In addition, matplotlib has some important dependencies that may not be > available on all systems. MacOS now includes all necessary libraries. I > don't think that is true for most flavors linux (though there is > probably an easy way to get all missing packages). I have no idea about > Windows. > > (Does it even work with matplotlib? I've never tried it.) Pip works beautifully on the Mac since Lion, once you install pkg-config. This allows matplotlib to pick up the dependencies from the system (i.e. libpng, libfreetype and zlib). My shortest suggested route to Matplotlib on Lion is (assuming you have Homebrew installed): brew install pkg-config sudo pip install matplotlib The problem with pip / easy_install is that a lot of people assume that this is the standard way to install Python packages. I don't blame them - in fact, I would want all packages to be compatible with pip. It's not the greatest tool, given the pretty sorry state of Python packaging, but it is pretty much the simplest option from the command line. Best regards, Ludwig [1] For me the only downside of the installer is the use of Python.org Python instead of the default "system" Python, as the latter makes more sense to me for a standard installation (and avoids having multiple Pythons on your system, which is a Good Thing). Python.org Python used to be a mandatory install on older Mac systems such as Tiger / 10.3, but this is no longer a compelling argument for me on newer systems.
2012年11月14日 Skipper Seabold <jss...@gm...>: > Hi All, > > Hoping someone can help me get a definitive answer to this question. > Is draw_if_interactive bad to have in library plotting code? I think the only issue here is the overhead of importing the whole pyplot stuff and checking every now and then for interactive mode in code which is not mainly designed for interactive use. Something that I often do is writing non interactive plotting functions or methods and then wrappers for interactive use which call draw_if_interactive ant do other fancy things. Goyo > > Based on this thread [1], we've been working under the assumption that > calling draw_if_interactive in plotting code is bad. Though I'm > skeptical that this is the takeaway that we should have. I also asked > this question on the IPython mailing list [2] since the recommendation > comes from their type of usage, but I'm still not clear. > > I'll repeat the gist of the question here. > > We have plotting functions that are designed to update a given axes. I > often work in interactive mode, and I'd like it if these functions > updated my axes in the way that I expect (and an R user doing plotting > in Python would expect). But now I'm forced to litter my user scripts > with draw_if_interactive after I call a function I expect to update a > plot - say updating a scatter plot with a regression line. Would be > harmful to just include these draw_if_interactive calls in our plot > functions. To be clear, I never have to call show or draw because I'm > working in interactive mode, so the recommendation to just call show() > at the end of a script is not what I want. > > My understanding of the pitfalls is 1) there's a performance hit to > calling draw instead of just making one call. This is moot because > we're only calling draw_if_interactive - so we assume the user is > working interactively and actually wants to do the drawing and doesn't > care about the performance hit. And 2) we are assuming that the user > has imported and is using pyplot and there are possible side effects. > A user wouldn't be using pyplot in a GUI or in some sort of embedded > plotting framework. However, my intuition says that if this is the > case, draw_if_interactive won't do anything because interactive will > be False in these cases. > > Can someone please help clear this up? Thanks, > > Skipper > > > [1] https://groups.google.com/forum/#!msg/pystatsmodels/biNlCvJPNNY/BT7bQJmOa1cJ > [2] http://python.6.n6.nabble.com/IPython-User-using-matplotlib-draw-if-interactive-in-library-code-td4991275.html > > ------------------------------------------------------------------------------ > Monitor your physical, virtual and cloud infrastructure from a single > web console. Get in-depth insight into apps, servers, databases, vmware, > SAP, cloud infrastructure, etc. Download 30-day Free Trial. > Pricing starts from 795ドル for 25 servers or applications! > http://p.sf.net/sfu/zoho_dev2dev_nov > _______________________________________________ > Matplotlib-users mailing list > Mat...@li... > https://lists.sourceforge.net/lists/listinfo/matplotlib-users
On 16 November 2012 15:38, Bror Jonsson <bro...@gm...> wrote: > > Oh, I left out a line in the code, very sorry for that. Here is a full > example: > > import numpy as np > import pylab as pl > > #Generate a matrix populated with 1's > fld = np.ones((4,4)) > #Set one corner of the matrix to NaN > fld[:2,:2] = np.nan > #Plot the contourf plot of the matrix > pl.contourf(arange(4),arange(4),fld,colors='b') > #Create a mask where the NaN's are reversed. > mask = np.isnan(fld).astype(np.float) > mask[mask==0] = np.nan > #Plot the contourf of the mask > contourf(arange(4),arange(4),mask,colors='r') > > The cells with values in mask covers the cells with nan's in fld exactly: > > In [102]: print fld > Out[102]: > array([[ nan, nan, 1., 1.], > [ nan, nan, 1., 1.], > [ 1., 1., 1., 1.], > [ 1., 1., 1., 1.]]) > > > In [101]: print mask > Out[101]: > array([[ 1., 1., nan, nan], > [ 1., 1., nan, nan], > [ nan, nan, nan, nan], > [ nan, nan, nan, nan]]) > > > There are, however, a gap between the red and the blue areas in the > figure. Is there a way to make contourf plot mask so that the red patch > extends to 2,2 and covers all cells with 1's in mask? > > Many thanks! > > :-)Bror > Bror, The key to understanding this behaviour is to realise that your fld and mask values are defined at grid points, whereas contour deals with the quads that connect these grid points. If a single grid point is masked out, all 4 quads that the point is a corner of are masked out as far as contour is concerned as you cannot contour a quad that doesn't have all 4 points defined. You could solve your problem using contour but you would have to expand the mask so that each masked point [j,i] was expanded to [j-1:j+1, i-1:i+1]. I cannot think of a cunning numpy way of doing this whilst handling all the edge cases and would have to resort to explicit looping over the indices. There is a better way. From the point mask create a quad mask which is one smaller in each direction. Then use pcolor rather than contour as pcolor takes a quad-centric view of the world. Also, when dealing with masks I use numpy.ma rather than having to handle NaNs. Here is the simplest modification of your code that I can come up with to do what you want: import numpy as np import pylab as pl #Generate a matrix populated with 1's fld = np.ones((4,4)) #Set one corner of the matrix to NaN fld[:2,:2] = np.nan #Create a mask. mask = np.isnan(fld) #Expand mask so that it is a quad mask. mask = 1 - (mask[:-1,:-1] | mask[:-1,1:] | mask[1:,:-1] | mask[1:,1:]) #Create masked array. maskedArray = np.ma.array(np.zeros_like(mask), mask=mask) #Note mask is one smaller than fld in each direction. print 'fld.shape', fld.shape, 'mask.shape', mask.shape pl.contourf(np.arange(4), np.arange(4), fld, colors='b') #pcolor does what you want. Any colormap is chosen that has red as its first color. pl.pcolor(np.arange(4), np.arange(4), maskedArray, cmap='autumn') pl.show() Ian
Hi Sterling, Thanks for the help. Now we have a complete script that works as what we want: ****labels parallel with the colorbar with colorbar seperated **** By the way, is it possible to put in the gallery? from pylab import * a = np.arange(100).reshape(10,10) cbarlevel=np.arange(0,101,10) cs=contourf(a,levels=cbarlevel) cbar = colorbar() cbar.set_ticks(cbarlevel) #prepare the final label that we want cbar_label = [] for i in range(len(cbarlevel)-1): cbar_label.append(" {0}-{1}".format(cbarlevel[i],cbarlevel[i+1])) cbar.set_ticklabels(['']*len(cbarlevel)) #remove the original labels #set ticks as white; the 'length' parameter is a bit dirty solution cbar.ax.tick_params(axis='y',left='on',length=10,color='w',width=5) cbar.outline.remove() #remove the colorbar frame #add the label parallel to colorbar; 0.035 to be set by manual observation, a bit dirty solution. yloc=np.arange(0.035,0.95,0.1) for l,y in zip(cbar_label,yloc): cbar.ax.text(1,y,l,transform=cbar.ax.transAxes,ha='left') cheers, Chao On Sat, Nov 17, 2012 at 12:12 AM, Sterling Smith <sm...@fu...>wrote: > Chao, > > If you don't need the tick marks and are only annoyed by their appearance > in the colorbar, then I am pasting below our code so far setting the tick > length to 0. > > Code so far: > > from pylab import * > fig = figure(2) > fig.clear() > a = np.arange(100).reshape(10,10) > cbarlevel=np.arange(0,101,10) > contourf(a,levels=cbarlevel) > cbar = colorbar() > cbar.set_ticks((cbarlevel[1:]+cbarlevel[:-1])/2.) > > #to manipulate the range: > cbar_label = [] > for i in range(len(cbarlevel)-1): > cbar_label.append("{0}-{1}".format(cbarlevel[i],cbarlevel[i+1])) > > #Then to apply on the colorbar: > cbar.set_ticklabels(cbar_label) > > ax = fig.axes[-1] #This is not as clean as making the axes before the > colorbar and passing to the colorbar... > ax.yaxis.set_tick_params(length=0) > > > If you still want the ticks, then you might think of keeping the ticks > where you had set them originally, then placing texts (pylab.text) with the > transAxes transform, using the following script: > > > from pylab import * > fig = figure(2) > fig.clear() > a = np.arange(100).reshape(10,10) > cbarlevel=np.arange(0,101,10) > contourf(a,levels=cbarlevel) > cbar = colorbar() > #cbar.set_ticks((cbarlevel[1:]+cbarlevel[:-1])/2.) > cbar.set_ticks(cbarlevel) > > #to manipulate the range: > cbar_label = [] > for i in range(len(cbarlevel)-1): > cbar_label.append("{0}-{1}".format(cbarlevel[i],cbarlevel[i+1])) > #cbar_label.append('') > > print cbar_label > #['0-10', '10-20', '20-30', '30-40', '40-50', '50-60', '60-70', '70-80', > #'80-90', '90-100', ''] > > #Then to apply on the colorbar: > cbar.set_ticklabels(['']*len(cbarlevel)) > > ax = fig.axes[-1] > #ax.yaxis.set_tick_params(length=0) > > yloc = linspace(0,1,len(cbar_label)+1) > yloc = yloc[:-1] + yloc[1]/2. > for l,y in zip(cbar_label,yloc): > ax.text(1,y,l,transform=ax.transAxes,ha='left') > draw() > > -Sterling > > On Nov 16, 2012, at 12:58PM, Chao YUE wrote: > > > Thanks Sterling. It's a good idea. > > > > Unluckily, I lose the original ticks and the ticks appeared in the > middle. Is there any approach I can keep the original ticks while realizing > what has been shown in the figure? > > > > Chao > > > > On Fri, Nov 16, 2012 at 5:47 PM, Sterling Smith <sm...@fu...> > wrote: > > Chao, > > > > The secret is positioning your ticks. I list here an untested attempt > at putting the labels at the average of the current and next levels: > > > > cbar.set_ticks((cbarlevel[1:]+cbarlevel[:-1])/2.) > > > > Because you have less ticks, then you will want to remove the line > > > > cbar_level.append('') > > > > Hope that helps, > > Sterling > > > > On Nov 16, 2012, at 7:46AM, ChaoYue wrote: > > > > > I have a bit progress, but still not very well. > > > > > > #to have a contourf plot > > > a = np.arange(100).reshape(10,10) > > > cbarlevel=np.arange(0,101,10) > > > contourf(a,levels=cbarlevel) > > > cbar = colorbar() > > > cbar.set_ticks(cbarlevel) > > > > > > #to manipulate the range: > > > cbar_label = [] > > > for i in range(len(cbarlevel)-1): > > > cbar_label.append("{0}-{1}".format(cbarlevel[i],cbarlevel[i+1])) > > > cbar_label.append('') > > > > > > In [54]: print cbar_label > > > ['0-10', '10-20', '20-30', '30-40', '40-50', '50-60', '60-70', '70-80', > > > '80-90', '90-100', ''] > > > > > > #Then to apply on the colorbar: > > > cbar.set_ticklabels(cbar_label) > > > > > > The generated figure is attached. But how can I put the labels a > little bit > > > upward to make them parallel with the respective small rectangles in > the > > > colorbar? <http://matplotlib.1069221.n5.nabble.com/file/n39786/fig.jpg > > > > > > > > > > > > > > > > > > > > -- > > > View this message in context: > http://matplotlib.1069221.n5.nabble.com/how-to-put-colorbar-label-beside-the-handle-tp39705p39786.html > > > Sent from the matplotlib - users mailing list archive at Nabble.com. > > > > > > > ------------------------------------------------------------------------------ > > > Monitor your physical, virtual and cloud infrastructure from a single > > > web console. Get in-depth insight into apps, servers, databases, > vmware, > > > SAP, cloud infrastructure, etc. Download 30-day Free Trial. > > > Pricing starts from 795ドル for 25 servers or applications! > > > http://p.sf.net/sfu/zoho_dev2dev_nov > > > _______________________________________________ > > > Matplotlib-users mailing list > > > Mat...@li... > > > https://lists.sourceforge.net/lists/listinfo/matplotlib-users > > > > > > > > > > -- > > > *********************************************************************************** > > Chao YUE > > Laboratoire des Sciences du Climat et de l'Environnement (LSCE-IPSL) > > UMR 1572 CEA-CNRS-UVSQ > > Batiment 712 - Pe 119 > > 91191 GIF Sur YVETTE Cedex > > Tel: (33) 01 69 08 29 02; Fax:01.69.08.77.16 > > > ************************************************************************************ > > > > <fig.jpg> > > -- *********************************************************************************** Chao YUE Laboratoire des Sciences du Climat et de l'Environnement (LSCE-IPSL) UMR 1572 CEA-CNRS-UVSQ Batiment 712 - Pe 119 91191 GIF Sur YVETTE Cedex Tel: (33) 01 69 08 29 02; Fax:01.69.08.77.16 ************************************************************************************
On Nov 16, 2012, at 2:25PM, Russell E. Owen wrote: > In article <50A...@ed...>, > Mathew Topper <mat...@ed...> wrote: > >> Hi, >> >> I'm interested to know why the pip package manager is not more widely >> supported for installation of python packages like matplotlib? >> Matplotlib seems to be particularly slowly updated in the Fedora >> repositories, for example, so I often find that a source installation is >> necessary. I know this isn't especially difficult for the experienced >> user, but surely using something like pip would make this process for >> accessible for all users of python packages, particularly those that do >> not receive much attention from the big distribution maintainers? Yet, >> pip doesn't get a mention on the installation documentation of >> matplotlib or many other python packs. >> >> I would love to hear anyone's thoughts on this matter. > > Unfortunately pip cannot install binaries, so any user that tried to > install matplotlib using pip would have to have a C compiler. > > Unfortunately many users do not have a compiler on MacOS and Windows. > > In addition, matplotlib has some important dependencies that may not be > available on all systems. MacOS now includes all necessary libraries. I > don't think that is true for most flavors linux (though there is > probably an easy way to get all missing packages). I have no idea about > Windows. > > I agree pip should be mentioned, but I don't see it as a viable > mainstream means of installing matplotlib. > > (Does it even work with matplotlib? I've never tried it.) > > -- Russell pip is the only method I have used in my Linux work. -Sterling > > > ------------------------------------------------------------------------------ > Monitor your physical, virtual and cloud infrastructure from a single > web console. Get in-depth insight into apps, servers, databases, vmware, > SAP, cloud infrastructure, etc. Download 30-day Free Trial. > Pricing starts from 795ドル for 25 servers or applications! > http://p.sf.net/sfu/zoho_dev2dev_nov > _______________________________________________ > Matplotlib-users mailing list > Mat...@li... > https://lists.sourceforge.net/lists/listinfo/matplotlib-users
Chao, If you don't need the tick marks and are only annoyed by their appearance in the colorbar, then I am pasting below our code so far setting the tick length to 0. Code so far: from pylab import * fig = figure(2) fig.clear() a = np.arange(100).reshape(10,10) cbarlevel=np.arange(0,101,10) contourf(a,levels=cbarlevel) cbar = colorbar() cbar.set_ticks((cbarlevel[1:]+cbarlevel[:-1])/2.) #to manipulate the range: cbar_label = [] for i in range(len(cbarlevel)-1): cbar_label.append("{0}-{1}".format(cbarlevel[i],cbarlevel[i+1])) #Then to apply on the colorbar: cbar.set_ticklabels(cbar_label) ax = fig.axes[-1] #This is not as clean as making the axes before the colorbar and passing to the colorbar... ax.yaxis.set_tick_params(length=0) If you still want the ticks, then you might think of keeping the ticks where you had set them originally, then placing texts (pylab.text) with the transAxes transform, using the following script: from pylab import * fig = figure(2) fig.clear() a = np.arange(100).reshape(10,10) cbarlevel=np.arange(0,101,10) contourf(a,levels=cbarlevel) cbar = colorbar() #cbar.set_ticks((cbarlevel[1:]+cbarlevel[:-1])/2.) cbar.set_ticks(cbarlevel) #to manipulate the range: cbar_label = [] for i in range(len(cbarlevel)-1): cbar_label.append("{0}-{1}".format(cbarlevel[i],cbarlevel[i+1])) #cbar_label.append('') print cbar_label #['0-10', '10-20', '20-30', '30-40', '40-50', '50-60', '60-70', '70-80', #'80-90', '90-100', ''] #Then to apply on the colorbar: cbar.set_ticklabels(['']*len(cbarlevel)) ax = fig.axes[-1] #ax.yaxis.set_tick_params(length=0) yloc = linspace(0,1,len(cbar_label)+1) yloc = yloc[:-1] + yloc[1]/2. for l,y in zip(cbar_label,yloc): ax.text(1,y,l,transform=ax.transAxes,ha='left') draw() -Sterling On Nov 16, 2012, at 12:58PM, Chao YUE wrote: > Thanks Sterling. It's a good idea. > > Unluckily, I lose the original ticks and the ticks appeared in the middle. Is there any approach I can keep the original ticks while realizing what has been shown in the figure? > > Chao > > On Fri, Nov 16, 2012 at 5:47 PM, Sterling Smith <sm...@fu...> wrote: > Chao, > > The secret is positioning your ticks. I list here an untested attempt at putting the labels at the average of the current and next levels: > > cbar.set_ticks((cbarlevel[1:]+cbarlevel[:-1])/2.) > > Because you have less ticks, then you will want to remove the line > > cbar_level.append('') > > Hope that helps, > Sterling > > On Nov 16, 2012, at 7:46AM, ChaoYue wrote: > > > I have a bit progress, but still not very well. > > > > #to have a contourf plot > > a = np.arange(100).reshape(10,10) > > cbarlevel=np.arange(0,101,10) > > contourf(a,levels=cbarlevel) > > cbar = colorbar() > > cbar.set_ticks(cbarlevel) > > > > #to manipulate the range: > > cbar_label = [] > > for i in range(len(cbarlevel)-1): > > cbar_label.append("{0}-{1}".format(cbarlevel[i],cbarlevel[i+1])) > > cbar_label.append('') > > > > In [54]: print cbar_label > > ['0-10', '10-20', '20-30', '30-40', '40-50', '50-60', '60-70', '70-80', > > '80-90', '90-100', ''] > > > > #Then to apply on the colorbar: > > cbar.set_ticklabels(cbar_label) > > > > The generated figure is attached. But how can I put the labels a little bit > > upward to make them parallel with the respective small rectangles in the > > colorbar? <http://matplotlib.1069221.n5.nabble.com/file/n39786/fig.jpg> > > > > > > > > > > > > -- > > View this message in context: http://matplotlib.1069221.n5.nabble.com/how-to-put-colorbar-label-beside-the-handle-tp39705p39786.html > > Sent from the matplotlib - users mailing list archive at Nabble.com. > > > > ------------------------------------------------------------------------------ > > Monitor your physical, virtual and cloud infrastructure from a single > > web console. Get in-depth insight into apps, servers, databases, vmware, > > SAP, cloud infrastructure, etc. Download 30-day Free Trial. > > Pricing starts from 795ドル for 25 servers or applications! > > http://p.sf.net/sfu/zoho_dev2dev_nov > > _______________________________________________ > > Matplotlib-users mailing list > > Mat...@li... > > https://lists.sourceforge.net/lists/listinfo/matplotlib-users > > > > > -- > *********************************************************************************** > Chao YUE > Laboratoire des Sciences du Climat et de l'Environnement (LSCE-IPSL) > UMR 1572 CEA-CNRS-UVSQ > Batiment 712 - Pe 119 > 91191 GIF Sur YVETTE Cedex > Tel: (33) 01 69 08 29 02; Fax:01.69.08.77.16 > ************************************************************************************ > > <fig.jpg>
In article <50A...@ed...>, Mathew Topper <mat...@ed...> wrote: > Hi, > > I'm interested to know why the pip package manager is not more widely > supported for installation of python packages like matplotlib? > Matplotlib seems to be particularly slowly updated in the Fedora > repositories, for example, so I often find that a source installation is > necessary. I know this isn't especially difficult for the experienced > user, but surely using something like pip would make this process for > accessible for all users of python packages, particularly those that do > not receive much attention from the big distribution maintainers? Yet, > pip doesn't get a mention on the installation documentation of > matplotlib or many other python packs. > > I would love to hear anyone's thoughts on this matter. Unfortunately pip cannot install binaries, so any user that tried to install matplotlib using pip would have to have a C compiler. Unfortunately many users do not have a compiler on MacOS and Windows. In addition, matplotlib has some important dependencies that may not be available on all systems. MacOS now includes all necessary libraries. I don't think that is true for most flavors linux (though there is probably an easy way to get all missing packages). I have no idea about Windows. I agree pip should be mentioned, but I don't see it as a viable mainstream means of installing matplotlib. (Does it even work with matplotlib? I've never tried it.) -- Russell
On Fri, Nov 16, 2012 at 11:35 AM, Jon Ramsey <jon...@gm...> wrote: > Hi Everyone, > > I have just upgraded to matplotlib 1.2.0 so that I can use the streamplot > module, which I'm quite happy about! > However, I've noticed that when one tries to color the streamlines using a > 2-D array which contains NaNs, streamlines of only one color are shown! I > have appended example code below which reproduces the problem. > > Meanwhile, if the following two lines are inserted inside an "if > use_multicolor_lines:" region within streamplot.py, then the problem goes > away (for example, after line 84 or line 115): > if np.any(np.isnan(color)): > color = np.ma.array(color, mask=np.isnan(color)) > > This check already exists on the input arrays U and V, but not for color. > I am also not sure this issue will persist when a normalize object is > explicitly specified. > > Example code (derived from streamplot_demo.py): > > import numpy as np > import matplotlib.pyplot as plt > > Y, X = np.mgrid[-3:3:100j, -3:3:100j] > U = -1 - X**2 + Y > V = 1 + X - Y**2 > speed = np.sqrt(U*U + V*V) > > m = np.sqrt(X**2 + Y**2) < 1.0 > speed[m] = np.nan > > plt.streamplot(X, Y, U, V, color=speed, linewidth=2, cmap=plt.cm.autumn) > plt.colorbar() > plt.show() > > Additional info: > Linux 2.6.38-16-generic #67-Ubuntu SMP Thu Sep 6 17:58:38 UTC 2012 x86_64 > x86_64 x86_64 GNU/Linux > Matplotlib v1.2.0 > > > Best Regards, > > Jon Ramsey > > P.S. Long time reader, first time poster. > > Hi Jon, Welcome! This fix looks good to me. Since you mentioned that you're using the latest release, I assume you're not running matplotlib from github, so I filed a pull request with your fix: https://github.com/matplotlib/matplotlib/pull/1514 Thanks for the bug report and fix! -Tony
Chao, The secret is positioning your ticks. I list here an untested attempt at putting the labels at the average of the current and next levels: cbar.set_ticks((cbarlevel[1:]+cbarlevel[:-1])/2.) Because you have less ticks, then you will want to remove the line cbar_level.append('') Hope that helps, Sterling On Nov 16, 2012, at 7:46AM, ChaoYue wrote: > I have a bit progress, but still not very well. > > #to have a contourf plot > a = np.arange(100).reshape(10,10) > cbarlevel=np.arange(0,101,10) > contourf(a,levels=cbarlevel) > cbar = colorbar() > cbar.set_ticks(cbarlevel) > > #to manipulate the range: > cbar_label = [] > for i in range(len(cbarlevel)-1): > cbar_label.append("{0}-{1}".format(cbarlevel[i],cbarlevel[i+1])) > cbar_label.append('') > > In [54]: print cbar_label > ['0-10', '10-20', '20-30', '30-40', '40-50', '50-60', '60-70', '70-80', > '80-90', '90-100', ''] > > #Then to apply on the colorbar: > cbar.set_ticklabels(cbar_label) > > The generated figure is attached. But how can I put the labels a little bit > upward to make them parallel with the respective small rectangles in the > colorbar? <http://matplotlib.1069221.n5.nabble.com/file/n39786/fig.jpg> > > > > > > -- > View this message in context: http://matplotlib.1069221.n5.nabble.com/how-to-put-colorbar-label-beside-the-handle-tp39705p39786.html > Sent from the matplotlib - users mailing list archive at Nabble.com. > > ------------------------------------------------------------------------------ > Monitor your physical, virtual and cloud infrastructure from a single > web console. Get in-depth insight into apps, servers, databases, vmware, > SAP, cloud infrastructure, etc. Download 30-day Free Trial. > Pricing starts from 795ドル for 25 servers or applications! > http://p.sf.net/sfu/zoho_dev2dev_nov > _______________________________________________ > Matplotlib-users mailing list > Mat...@li... > https://lists.sourceforge.net/lists/listinfo/matplotlib-users
Hi Everyone, I have just upgraded to matplotlib 1.2.0 so that I can use the streamplot module, which I'm quite happy about! However, I've noticed that when one tries to color the streamlines using a 2-D array which contains NaNs, streamlines of only one color are shown! I have appended example code below which reproduces the problem. Meanwhile, if the following two lines are inserted inside an "if use_multicolor_lines:" region within streamplot.py, then the problem goes away (for example, after line 84 or line 115): if np.any(np.isnan(color)): color = np.ma.array(color, mask=np.isnan(color)) This check already exists on the input arrays U and V, but not for color. I am also not sure this issue will persist when a normalize object is explicitly specified. Example code (derived from streamplot_demo.py): import numpy as np import matplotlib.pyplot as plt Y, X = np.mgrid[-3:3:100j, -3:3:100j] U = -1 - X**2 + Y V = 1 + X - Y**2 speed = np.sqrt(U*U + V*V) m = np.sqrt(X**2 + Y**2) < 1.0 speed[m] = np.nan plt.streamplot(X, Y, U, V, color=speed, linewidth=2, cmap=plt.cm.autumn) plt.colorbar() plt.show() Additional info: Linux 2.6.38-16-generic #67-Ubuntu SMP Thu Sep 6 17:58:38 UTC 2012 x86_64 x86_64 x86_64 GNU/Linux Matplotlib v1.2.0 Best Regards, Jon Ramsey P.S. Long time reader, first time poster.
I have a bit progress, but still not very well. #to have a contourf plot a = np.arange(100).reshape(10,10) cbarlevel=np.arange(0,101,10) contourf(a,levels=cbarlevel) cbar = colorbar() cbar.set_ticks(cbarlevel) #to manipulate the range: cbar_label = [] for i in range(len(cbarlevel)-1): cbar_label.append("{0}-{1}".format(cbarlevel[i],cbarlevel[i+1])) cbar_label.append('') In [54]: print cbar_label ['0-10', '10-20', '20-30', '30-40', '40-50', '50-60', '60-70', '70-80', '80-90', '90-100', ''] #Then to apply on the colorbar: cbar.set_ticklabels(cbar_label) The generated figure is attached. But how can I put the labels a little bit upward to make them parallel with the respective small rectangles in the colorbar? <http://matplotlib.1069221.n5.nabble.com/file/n39786/fig.jpg> -- View this message in context: http://matplotlib.1069221.n5.nabble.com/how-to-put-colorbar-label-beside-the-handle-tp39705p39786.html Sent from the matplotlib - users mailing list archive at Nabble.com.
The University of Edinburgh is a charitable body, registered in Scotland, with registration number SC005336.
One of the reasons (historically) is that the build scripts predate setuptools and ships copies of dependencies rather than using easy_install or pip to install them. There is an open PR to address this here: https://github.com/matplotlib/matplotlib/pull/1454 But you do make a good point that `pip` should be mentioned in the docs as part of that change. Mike On 11/16/2012 05:54 AM, Mathew Topper wrote: > Hi, > > I'm interested to know why the pip package manager is not more widely > supported for installation of python packages like matplotlib? > Matplotlib seems to be particularly slowly updated in the Fedora > repositories, for example, so I often find that a source installation > is necessary. I know this isn't especially difficult for the > experienced user, but surely using something like pip would make this > process for accessible for all users of python packages, particularly > those that do not receive much attention from the big distribution > maintainers? Yet, pip doesn't get a mention on the installation > documentation of matplotlib or many other python packs. > > I would love to hear anyone's thoughts on this matter. > > Many Thanks, > > Mat > -- > Dr. Mathew Topper > Institute for Energy Systems > School of Engineering > The University of Edinburgh > Faraday Building > The King's Buildings > Edinburgh EH9 3JL > Tel: +44 (0)131 650 5570 > School fax: +44 (0)131 650 6554 > mat...@ed... <mailto:mat...@ed...> > http://www.see.ed.ac.uk <http://www.see.ed.ac.uk/> > > > The University of Edinburgh is a charitable body, registered in > Scotland, with registration number SC005336. > > > ------------------------------------------------------------------------------ > Monitor your physical, virtual and cloud infrastructure from a single > web console. Get in-depth insight into apps, servers, databases, vmware, > SAP, cloud infrastructure, etc. Download 30-day Free Trial. > Pricing starts from 795ドル for 25 servers or applications! > http://p.sf.net/sfu/zoho_dev2dev_nov > > > _______________________________________________ > Matplotlib-users mailing list > Mat...@li... > https://lists.sourceforge.net/lists/listinfo/matplotlib-users
The University of Edinburgh is a charitable body, registered in Scotland, with registration number SC005336.
On Thu, Nov 15, 2012 at 3:24 PM, David Brunell <qua...@gm...> wrote: > Hello Paul, > > Thanks so much for your carefully-crafted reply. I had a hunch that it > would not be a simple matter. I'm using wxAgg for the backend. > > I ended up using a Matplotlib widget cursor like this: > cursor = Cursor(ax, useblit=True, color='red', alpha = 0.5, linestyle = > '-', linewidth=1) > > It does not do exactly what I want, but it's cleaner than hacking into the > backend. > This is, of course, a perfectly legitimate solution, so I hope you don't mind me forwarding the correspondence to the list for posterity. > Again, thanks for your help. > Happy to be helpful, -- Paul Ivanov 314 address only used for lists, off-list direct email at: http://pirsquared.org | GPG/PGP key id: 0x0F3E28F7
On Thu, Nov 15, 2012 at 2:48 PM, Boris Vladimir Comi <gl...@co...> wrote: > Hi all: > > I have begun to learn about python / matplolib / basemap and really need some help. > > My data is in an Excel workbook in format .xls or csv(see attached): > > 1. How to open excel file in python? > > 2. I would like to plot multiple line joining the positions of each of the events, it is possible to do this? Have any idea how to do it? > > The idea is to plot the trajectories on a particular region, for my case is Mexico. Boris, If you can, install pandas and openpyxl on your machine. Pandas and read in the csv by itself. Openpyxl is only needed if you really want to read the Excel file. Sticking with the csv approach, all you'll have to do is this: import matplotlib.pyplot import pandas fig, ax = plt.subplots() data = pandas.read_csv("/path/to/Trayectorias-scm-2004.csv") data.plot(ax=ax) That will plot all of the non-index columns in your dataframe. Hope that helps, -paul
> 1. How to open excel file in python? You can read excel files with the xlrd module : http://www.python-excel.org/ However, you may want to simply read your exported CSV files. > 2. I would like to plot multiple line joining the positions of each of the events, it is possible to do this? Have any idea how to do it? I'm not quite sure what you are aiming for with this. You should be able to just plot a series of lines, as long as they have common start and end points they will appear joined, but the lines can have different attributes (e.g. color). Or you can plot all the points as a single line with multiple segments (all segments having the same attributes). > The idea is to plot the trajectories on a particular region, for my case is Mexico. > <Trayectorias-scm-2004.csv><Trayectorias-scm-2004.xls>------------------------------------------------------------------------------
________________________________________ Hi all: I have begun to learn about python / matplolib / basemap and really need some help. My data is in an Excel workbook in format .xls or csv(see attached): 1. How to open excel file in python? 2. I would like to plot multiple line joining the positions of each of the events, it is possible to do this? Have any idea how to do it? The idea is to plot the trajectories on a particular region, for my case is Mexico.
Claus, I agree with Sterling that the colors api page has a great deal of useful info. However, as another solution to your problem, keep in mind that the predefined colormaps contained in matplotlib.pyplot.cm return color tuples when called with a float between 0 and 1. To illustrate with an extension of your example code, try the following: import numpy as np import matplotlib.pyplot as plt x = np.linspace(0,10,25) # Your x values # A list of parameters for generating the y values p = np.linspace(1,10,5) # An array of values between 0 and 1 with the same length as your parameter list. d = np.linspace(0, 1, 5) for i,j in zip(p,d): y = np.sin(x*i) plt.scatter(x, y, color=plt.cm.copper(j)) plt.plot(x, y, color=plt.cm.jet(j)) plt.show() If you have a lot of parameters, hence a large number of plots, you might want to start reading up on collections: http://matplotlib.org/api/collections_api.html My understanding is that collections plot faster than many repeated calls to plt.plot or plt.scatter. I've used LineCollection to plot a large number of lines: I don't know which collection to use for repeated scatter plots, though. Good luck Ryan On Thu, Nov 15, 2012 at 12:49 PM, Sterling Smith <sm...@fu...>wrote: > Claus, > > I think you are looking for something in > http://matplotlib.org/api/colors_api.html > > -Sterling > > On Nov 15, 2012, at 8:24AM, Claus wrote: > > > Hi, > > I have this issue, schematically: > > > > import numpy as np > > import matplotlib.pyplot as plt > > > > x = np.linspace(0.0, a, b) > > > > for i in range(d): > > y1 = f1(x, p1_i, p2_i) > > y2 = f2(x, p1_i, p2_i) > > plt.scatter(x, y1, c=color[i]) > > plt.plot(x, y2, '-', c=color[i] > > > > > > my question: > > how can I setup color to be d colors from some colormap (like cm.copper > or cm.jet), they should be somewhat "equally" spaced... maybe the loop is not > ideal, but I don't know a better way (yet)... > > > > Thanks for your help, > > Cheers, > > Claus > > > > > > > > > ------------------------------------------------------------------------------ > > Monitor your physical, virtual and cloud infrastructure from a single > > web console. Get in-depth insight into apps, servers, databases, vmware, > > SAP, cloud infrastructure, etc. Download 30-day Free Trial. > > Pricing starts from 795ドル for 25 servers or applications! > > http://p.sf.net/sfu/zoho_dev2dev_nov > > _______________________________________________ > > Matplotlib-users mailing list > > Mat...@li... > > https://lists.sourceforge.net/lists/listinfo/matplotlib-users > > > > ------------------------------------------------------------------------------ > Monitor your physical, virtual and cloud infrastructure from a single > web console. Get in-depth insight into apps, servers, databases, vmware, > SAP, cloud infrastructure, etc. Download 30-day Free Trial. > Pricing starts from 795ドル for 25 servers or applications! > http://p.sf.net/sfu/zoho_dev2dev_nov > _______________________________________________ > Matplotlib-users mailing list > Mat...@li... > https://lists.sourceforge.net/lists/listinfo/matplotlib-users >
On Thu, Nov 15, 2012 at 12:06 PM, Paul Hobson <pmh...@gm...> wrote: > Hey Will, > > As a user, all I can tell you is that pylab is there for convenience when: > 1) quickly and interactively exploring some new data > or > 2) making the switch over from matlab or some other numerical analysis > framework. > > In general, if you're doing some serious work -- especially work that > you might revisit at any point -- explicitly import the packages you > need into proper namespaces. As an example for me, this typically > amounts to: > > import matplotlib.pyplot as plt > import numpy as np > import scipy.stats as stats > import pandas #as pd > > I still think Will's point is valid. What likely happened (and this is me completely guessing) is that np.random.power didn't always exist. The pylab module just blindly imports these namespaces. Now, I do think that instead of np.power(), one should probably be using the "**" operator instead, but this does raise the issue of knowing when there are changes in the flatten namespace. Who's to say that something else won't collide in the future? We might need some sort of testing for this. Ben Root
Claus, I think you are looking for something in http://matplotlib.org/api/colors_api.html -Sterling On Nov 15, 2012, at 8:24AM, Claus wrote: > Hi, > I have this issue, schematically: > > import numpy as np > import matplotlib.pyplot as plt > > x = np.linspace(0.0, a, b) > > for i in range(d): > y1 = f1(x, p1_i, p2_i) > y2 = f2(x, p1_i, p2_i) > plt.scatter(x, y1, c=color[i]) > plt.plot(x, y2, '-', c=color[i] > > > my question: > how can I setup color to be d colors from some colormap (like cm.copper or cm.jet), they should be somewhat "equally" spaced... maybe the loop is not ideal, but I don't know a better way (yet)... > > Thanks for your help, > Cheers, > Claus > > > > ------------------------------------------------------------------------------ > Monitor your physical, virtual and cloud infrastructure from a single > web console. Get in-depth insight into apps, servers, databases, vmware, > SAP, cloud infrastructure, etc. Download 30-day Free Trial. > Pricing starts from 795ドル for 25 servers or applications! > http://p.sf.net/sfu/zoho_dev2dev_nov > _______________________________________________ > Matplotlib-users mailing list > Mat...@li... > https://lists.sourceforge.net/lists/listinfo/matplotlib-users
Hey Will, As a user, all I can tell you is that pylab is there for convenience when: 1) quickly and interactively exploring some new data or 2) making the switch over from matlab or some other numerical analysis framework. In general, if you're doing some serious work -- especially work that you might revisit at any point -- explicitly import the packages you need into proper namespaces. As an example for me, this typically amounts to: import matplotlib.pyplot as plt import numpy as np import scipy.stats as stats import pandas #as pd On Thu, Nov 15, 2012 at 8:22 AM, Will Furnass <wi...@th...> wrote: > On my machine these are rather confusingly different functions, with the > latter corresponding to numpy.random.power. I appreciate that pylab > imports everything from both the numpy and numpy.random modules but > wouldn't it make sense if pylab.power were the oft-used power > function rather than a means for sampling from the power distribution? > > Regards, > > Will Furnass > > > ------------------------------------------------------------------------------ > Monitor your physical, virtual and cloud infrastructure from a single > web console. Get in-depth insight into apps, servers, databases, vmware, > SAP, cloud infrastructure, etc. Download 30-day Free Trial. > Pricing starts from 795ドル for 25 servers or applications! > http://p.sf.net/sfu/zoho_dev2dev_nov > _______________________________________________ > Matplotlib-users mailing list > Mat...@li... > https://lists.sourceforge.net/lists/listinfo/matplotlib-users
Hi, I have this issue, schematically: import numpy as np import matplotlib.pyplot as plt x = np.linspace(0.0, a, b) for i in range(d): y1 = f1(x, p1_i, p2_i) y2 = f2(x, p1_i, p2_i) plt.scatter(x, y1, c=color[i]) plt.plot(x, y2, '-', c=color[i] my question: how can I setup color to be d colors from some colormap (like cm.copper or cm.jet), they should be somewhat "equally" spaced... maybe the loop is not ideal, but I don't know a better way (yet)... Thanks for your help, Cheers, Claus
On my machine these are rather confusingly different functions, with the latter corresponding to numpy.random.power. I appreciate that pylab imports everything from both the numpy and numpy.random modules but wouldn't it make sense if pylab.power were the oft-used power function rather than a means for sampling from the power distribution? Regards, Will Furnass