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
(8) |
2
(2) |
3
(1) |
4
(2) |
5
(15) |
6
(12) |
7
(10) |
8
(2) |
9
(5) |
10
(5) |
11
(8) |
12
(12) |
13
(26) |
14
(10) |
15
(11) |
16
(2) |
17
(3) |
18
(19) |
19
(25) |
20
(11) |
21
(8) |
22
(8) |
23
(2) |
24
|
25
(8) |
26
(4) |
27
(2) |
28
(5) |
29
(3) |
30
(5) |
From: Christoph G. <cg...@uc...> - 2012-06-30 19:39:48
|
On 6/30/2012 11:45 AM, Youbao Zhang wrote: > Dear all, > > I successfully installed Python 3.2.3 + Numpy 1.6.2 + Matplotlib 1.2.x > (Git version). I tried the following command sequence line by line: > > huskier@SqueezeVM0:~/Programming/Python/Python-3.2.3$ python3.2 > Python 3.2.3 (default, Jun 30 2012, 07:14:35) > [GCC 4.4.5] on linux2 > Type "help", "copyright", "credits" or "license" for more information. > *>>> import matplotlib.pyplot as plt* > *>>> plt.plot(range(10), range(10))* > [<matplotlib.lines.Line2D object at 0x3c6f1d0>] > *>>> plt.show()* >>>> > > However, nothing happens when I typed plt.show(). There should be a > figure window which I can get using python 2.6. > > I do not know what's wrong with my installation. OR matplotlib cannot be > used with python 3? Any ideas? > > Best regards, > > Simon > Did you create a `setup.cfg` file and enable `backend = TkAgg` before building matplotlib? Otherwise add a `import matplotlib;matplotlib.use("TkAgg")` statement at the top of the script. Christoph |
From: Benjamin R. <ben...@ou...> - 2012-06-30 19:29:59
|
On Saturday, June 30, 2012, Youbao Zhang wrote: > Dear all, > > I successfully installed Python 3.2.3 + Numpy 1.6.2 + Matplotlib 1.2.x > (Git version). I tried the following command sequence line by line: > > huskier@SqueezeVM0:~/Programming/Python/Python-3.2.3$ python3.2 > Python 3.2.3 (default, Jun 30 2012, 07:14:35) > [GCC 4.4.5] on linux2 > Type "help", "copyright", "credits" or "license" for more information. > *>>> import matplotlib.pyplot as plt* > *>>> plt.plot(range(10), range(10))* > [<matplotlib.lines.Line2D object at 0x3c6f1d0>] > *>>> plt.show()* > >>> > > However, nothing happens when I typed plt.show(). There should be a figure > window which I can get using python 2.6. > > I do not know what's wrong with my installation. OR matplotlib cannot be > used with python 3? Any ideas? > > Best regards, > > Simon > > Most likely, you didn't have the Dec packages for any of the toolkits available. Check your build log. Ben Root |
From: Youbao Z. <hu...@gm...> - 2012-06-30 18:45:56
|
Dear all, I successfully installed Python 3.2.3 + Numpy 1.6.2 + Matplotlib 1.2.x (Git version). I tried the following command sequence line by line: huskier@SqueezeVM0:~/Programming/Python/Python-3.2.3$ python3.2 Python 3.2.3 (default, Jun 30 2012, 07:14:35) [GCC 4.4.5] on linux2 Type "help", "copyright", "credits" or "license" for more information. *>>> import matplotlib.pyplot as plt* *>>> plt.plot(range(10), range(10))* [<matplotlib.lines.Line2D object at 0x3c6f1d0>] *>>> plt.show()* >>> However, nothing happens when I typed plt.show(). There should be a figure window which I can get using python 2.6. I do not know what's wrong with my installation. OR matplotlib cannot be used with python 3? Any ideas? Best regards, Simon |
From: 李季 <lee...@gm...> - 2012-06-30 09:50:06
|
Hi, everyone: I have get a example from the documentation( http://matplotlib.sourceforge.net/examples/user_interfaces/embedding_in_wx2.html ). I want to add a annotation to the figure, so I modified the code. I encounter a problem, I add the annotation to the figure, but it didn't work,it cann't be dragged.What can I do for this problem? Thanks. This is my code: #!/usr/bin/env python """ An example of how to use wx or wxagg in an application with the new toolbar - comment out the setA_toolbar line for no toolbar """ # Used to guarantee to use at least Wx2.8 import wxversion wxversion.ensureMinimal('2.8') from numpy import arange, sin, pi import matplotlib # uncomment the following to use wx rather than wxagg #matplotlib.use('WX') #from matplotlib.backends.backend_wx import FigureCanvasWx as FigureCanvas # comment out the following to use wx rather than wxagg matplotlib.use('WXAgg') from matplotlib.backends.backend_wxagg import FigureCanvasWxAgg as FigureCanvas from matplotlib.backends.backend_wx import NavigationToolbar2Wx from matplotlib.figure import Figure import matplotlib.pyplot as plt import wx class CanvasFrame(wx.Frame): def __init__(self): wx.Frame.__init__(self,None,-1, 'CanvasFrame',size=(550,350)) self.SetBackgroundColour(wx.NamedColor("WHITE")) self.figure = plt.figure() self.axes = self.figure.add_subplot(111) bbox_args = dict(boxstyle="round", fc="0.8") #this is the annotation self.an1 = self.axes.annotate('Drag me 1', xy=(.5, .7), # xycoords='data', #xytext=(.5, .7), textcoords='data', ha="center", va="center", bbox=bbox_args, #arrowprops=arrow_args ) self.an1.draggable(True) t = arange(0.0,3.0,0.01) s = sin(2*pi*t) self.axes.plot(t,s) self.canvas = FigureCanvas(self, -1, self.figure) self.sizer = wx.BoxSizer(wx.VERTICAL) self.sizer.Add(self.canvas, 1, wx.LEFT | wx.TOP | wx.GROW) self.SetSizer(self.sizer) self.Fit() self.add_toolbar() # comment this out for no toolbar def add_toolbar(self): self.toolbar = NavigationToolbar2Wx(self.canvas) self.toolbar.Realize() if wx.Platform == '__WXMAC__': # Mac platform (OSX 10.3, MacPython) does not seem to cope with # having a toolbar in a sizer. This work-around gets the buttons # back, but at the expense of having the toolbar at the top self.SetToolBar(self.toolbar) else: # On Windows platform, default window size is incorrect, so set # toolbar width to figure width. tw, th = self.toolbar.GetSizeTuple() fw, fh = self.canvas.GetSizeTuple() # By adding toolbar in sizer, we are able to put it at the bottom # of the frame - so appearance is closer to GTK version. # As noted above, doesn't work for Mac. self.toolbar.SetSize(wx.Size(fw, th)) self.sizer.Add(self.toolbar, 0, wx.LEFT | wx.EXPAND) # update the axes menu on the toolbar self.toolbar.update() def OnPaint(self, event): self.canvas.draw() class App(wx.App): def OnInit(self): 'Create the main window and insert the custom frame' frame = CanvasFrame() frame.Show(True) return True app = App(0) app.MainLoop() -- leejeal Email:lee...@gm... |
From: Fernando P. <fpe...@gm...> - 2012-06-30 08:56:13
|
Hi all, on behalf of the IPython development team, and just in time for the imminent Debian freeze and SciPy 2012, I'm thrilled to announce, after an intense 6 months of work, the official release of IPython 0.13. This version contains several major new features, as well as a large amount of bug and regression fixes. The previous version (0.12) was released on December 19 2011, so in this development cycle we had: - ~6 months of work. - 373 pull requests merged. - 742 issues closed (non-pull requests). - contributions from 62 authors. - 1760 commits. - a diff of 114226 lines. This means that we closed a total of 1115 issues over 6 months, for a rate of almost 200 issues closed per month and almost 300 commits per month. We are very grateful to all of you who have contributed so enthusiastically to the project and have had the patience of pushing your contributions through our often lengthy review process. We've also welcomed several new members to the core IPython development group: Jörgen Stenarson (@jstenar - this really was an omission as Jörgen has been our Windows expert for a long time) and Matthias Bussonier (@Carreau), who has been very active on all fronts of the project. *Highlights* There is too much new work to write up here, so we refer you to our full What's New document (http://ipython.org/ipython-doc/rel-0.13/whatsnew/version0.13.html) for the full details. But the main highlights of this release are: * Brand new UI for the notebook, with major usability improvements (real menus, toolbar, and much more) * Manage all your parallel cluster configurations from the notebook with push-button simplicity (cluster start/stop with one button). * Cell magics: commands prefixed with %% apply to an entire cell. We ship with many cell magics by default, including timing, profiling, running cells under bash, Perl and Ruby as well as magics to interface seamlessly with Cython, R and Octave. * The IPython.parallel tools have received many fixes, optimizations, and a number of API improvements to make writing, profiling and debugging parallel codes with IPython much easier. * We have unified our interactive kernels (the basic ipython object you know and love) with the engines running in parallel, so that you can now use all IPython special tricks in parallel too. And you can connect a console or qtconsole to any parallel engine for direct, interactive execution, plotting and debugging in a cluster. *Downloads* Download links and instructions are at: http://ipython.org/download.html And IPython is also on PyPI: http://pypi.python.org/pypi/ipython Those contain a built version of the HTML docs; if you want pure source downloads with no docs, those are available on github: Tarball: https://github.com/ipython/ipython/tarball/rel-0.13 Zipball: https://github.com/ipython/ipython/zipball/rel-0.13 Please see our release notes for the full details on everything about this release: http://ipython.org/ipython-doc/rel-0.13/whatsnew/version0.13.html As usual, if you find any other problem, please file a ticket --or even better, a pull request fixing it-- on our github issues site (https://github.com/ipython/ipython/issues). Many thanks to all who contributed! Fernando, on behalf of the IPython development team. http://ipython.org |
From: Sergi P. F. <spo...@gm...> - 2012-06-29 13:00:36
|
On Fri, Jun 29, 2012 at 12:02 PM, Andreas Hilboll <li...@hi...> wrote: > > You could use numpy.genfromtxt together with its `converters` parameter: > > converters : variable, optional > The set of functions that convert the data of a column to a value. > The converters can also be used to provide a default value > for missing data: ``converters = {3: lambda s: float(s or 0)}``. I finally used: def mkdate(text): return(dt.datetime.strptime(text.decode('utf8'),\ '%H:%M:%S %d/%m/%Y')) and data = np.genfromtxt(\ os.path.join(sys.argv[1],f),\ delimiter=',',\ skip_header=4,\ usecols = (0, 1, 2),\ dtype=(object, float, float),\ converters={0: mkdate},\ autostrip=True,\ ) Thank you! |
From: Andreas H. <li...@hi...> - 2012-06-29 10:03:10
|
> Dear all, > > I have a CSV file with the first column with timestamps: > > 0:00:00 01/01/2007, 0.000, 10, 0.000, 10, > 0.000, 10: > 00:00:00 02/01/2007, 0.000, 10, 0.000, 10, > 0.000, 10 > 00:00:00 03/01/2007, 0.000, 10, 0.000, 10, > 0.000, 10 > ... > 00:00:00 29/12/2009, 0.000, 10, 0.000, 10, > 0.000, 10 > 00:00:00 30/12/2009, 0.000, 10, 0.000, 10, > 0.000, 10 > 00:00:00 31/12/2009, 0.000, 10, 0.000, 10, > 0.000, 10 > > As you can see, the format is hour:minute:second (nor relevant, always > 00) day/month/year. > > When loaded with mlab.csv2rec, it automatically detects them as dates > and creates datetime objects, but it is not consistent with the > interpretation of the dates. When the day is < 13, it interprets it as > month/day/year. It's loaded correctly otherwise (as day/month/year). I > could pre-process the files and change the dates format, but imho it's > not very elegant. Any suggestion about how to address this issue? > > Regards, > Sergi You could use numpy.genfromtxt together with its `converters` parameter: converters : variable, optional The set of functions that convert the data of a column to a value. The converters can also be used to provide a default value for missing data: ``converters = {3: lambda s: float(s or 0)}``. Cheers, A. |
From: Sergi P. F. <spo...@gm...> - 2012-06-29 09:52:48
|
Dear all, I have a CSV file with the first column with timestamps: 0:00:00 01/01/2007, 0.000, 10, 0.000, 10, 0.000, 10: 00:00:00 02/01/2007, 0.000, 10, 0.000, 10, 0.000, 10 00:00:00 03/01/2007, 0.000, 10, 0.000, 10, 0.000, 10 ... 00:00:00 29/12/2009, 0.000, 10, 0.000, 10, 0.000, 10 00:00:00 30/12/2009, 0.000, 10, 0.000, 10, 0.000, 10 00:00:00 31/12/2009, 0.000, 10, 0.000, 10, 0.000, 10 As you can see, the format is hour:minute:second (nor relevant, always 00) day/month/year. When loaded with mlab.csv2rec, it automatically detects them as dates and creates datetime objects, but it is not consistent with the interpretation of the dates. When the day is < 13, it interprets it as month/day/year. It's loaded correctly otherwise (as day/month/year). I could pre-process the files and change the dates format, but imho it's not very elegant. Any suggestion about how to address this issue? Regards, Sergi |
From: Stan W. <sta...@nr...> - 2012-06-28 20:15:50
|
> From: Andre' Walker-Loud [mailto:wal...@gm...] > Sent: Thursday, June 21, 2012 22:19 > > Hi All, > > Trying to tune alignment of xtick labels. [...] > Try as I might, I can not figure out how to get these to > align how I want (I have tried all the options from > verticalalignment=option in the plt.xticks() command. [...] Does the following do what you want? plt.xticks(x_dat, x_label, va='baseline') plt.gca().xaxis.set_tick_params(pad=16) |
From: Mads I. <mad...@gm...> - 2012-06-28 11:47:28
|
I want to make some mods to a few selected tick labels. For example, if I do label = axes.yaxis.get_major_ticks()[2].label label.set_fontsize(size) label.set_rotation('vertical') the font size and the orientation of the tick label is changed. However, if try label.set_text('Foo') the tick label is *not* modified. Any clues? Best regards, Mads -- +-----------------------------------------------------+ | Mads Ipsen | +----------------------+------------------------------+ | Gåsebæksvej 7, 4. tv | | | DK-2500 Valby | phone: +45-29716388 | | Denmark | email: mad...@gm... | +----------------------+------------------------------+ |
From: Mads I. <mad...@gm...> - 2012-06-28 07:12:49
|
Hi, Suppose you do this: axes = self.figure().get_axes() contour = axes.contourf(x,y,z) colorbar = self.figure().colorbar(contour) Suppose that the contour data changes, can you update the colorbar with the new data? Currently I remove the colorbar and insert a new one - but I have a feeling that something smarter could be done. Best regards, Mads -- +-----------------------------------------------------+ | Mads Ipsen | +----------------------+------------------------------+ | Gåsebæksvej 7, 4. tv | | | DK-2500 Valby | phone: +45-29716388 | | Denmark | email: mad...@gm... | +----------------------+------------------------------+ |
From: Paul H. <pmh...@gm...> - 2012-06-28 00:48:19
|
On Wed, Jun 27, 2012 at 5:02 PM, Daniel Platz <mai...@go...> wrote: > Hello, > > I would like to plot a simple line using plt.plot(x, y, ‘w--’, lw=2) > or with the corresponding axes instance ax.plot(x, y, ‘w--’, lw=2). > However, I want the line to have a thin black edge like the edge of a > marker. Is this possible? I tried to find a property of the Line2D > object but I could not find anything. Has someone an idea? Daniel, Here's how civil-engineer-hack-fest that i'd use to do it: import matplotlib.pyplot as plt import numpy as np x = np.arange(0,10,0.1) y = -4 + 2*x - 1.5*x**2 fig, ax1 = plt.subplots() ax1.plot(x, y, 'c-', lw=2.5, zorder=10) ax1.plot(x, y, 'k-', lw=4.0, zorder=5) plt.show() Hope that helps. -paul |
From: Daniel P. <mai...@go...> - 2012-06-28 00:02:37
|
Hello, I would like to plot a simple line using plt.plot(x, y, ‘w--’, lw=2) or with the corresponding axes instance ax.plot(x, y, ‘w--’, lw=2). However, I want the line to have a thin black edge like the edge of a marker. Is this possible? I tried to find a property of the Line2D object but I could not find anything. Has someone an idea? Thanks in advance Daniel |
From: Peter W. <pw...@go...> - 2012-06-27 19:19:20
|
Andreas Hilboll wrote: > >> I wrote a new backend that uses the "pgf" latex package for drawing >> matplotlib figures. It is compatible with pdflatex, xelatex and lualatex. >> The pgf pictures can be included in latex documents or can be directly >> compiled to PDF by the backend, utilizing the benefits of Xelatex. >> >> The code for the backend and a script creating a test figure is on >> github: >> https://github.com/pwuertz/matplotlib-backend-pgf/ > > Looks great! How do I use this with my currently installed matplotlib > 1.1.0? > The easiest way without touching your matplotlib installation is to fetch "backend_pgf.py" from github and put it in the directory where you are running your plotting script (or in any directory in python's search path). Then have a look at "test_pgf_backend.py". It demonstrates how to select and configure the pgf backend. Basically, you just call matplotlib.use('module://backend_pgf') to use it. With the backend selected, the show() command won't work anymore since this is not a GUI backend, but you can now save the figure as ".pgf" file (just the pgf commands for latex) or ".pdf" file (already compiled with xelatex). Also make sure that you select a font that exists on your system matplotlib.rcParams.update({"pgf.font": "CMU Serif"}) or you'll get an exception when saving the figure. As already said, you'll get the best results when you install the Computer Modern Unicode Fonts (Ubuntu Package: fonts-cmu, Manual Install: http://sourceforge.net/projects/cm-unicode/). Be aware that if there is any text element that produces an error in Latex the savefig call will stall until I have found a better way to deal with such errors. Incorporating the backend into matplotlib requires a little more work. You have to copy the file to the folder where all the other modules reside (for me it's /usr/lib/pymodules/python2.7/matplotlib/backends/) and then include the "pgf" type in "backend_bases.py" one folder above. I'm not sure how to handle the case when the user wants to create a pdf from backend_pgf instead of backend_pdf since the only 'switch' is the extension of the file. But I'd suggest to use the matplotlib.use method for now.. Good luck ;) -- View this message in context: http://old.nabble.com/Pgf-Backend-with-Xelatex-support-tp34072290p34082447.html Sent from the matplotlib - users mailing list archive at Nabble.com. |
From: Andreas H. <li...@hi...> - 2012-06-27 16:14:06
|
> > Hi, > > When creating figures to be included in Latex documents I encountered a > few > problems. In the end the text rendering just doesn't blend in well, one > way > or another. I found that the problems can be fixed by using Xelatex, which > provides full unicode support and is able to use the installed fonts of > your > operating system. > > I wrote a new backend that uses the "pgf" latex package for drawing > matplotlib figures. It is compatible with pdflatex, xelatex and lualatex. > The pgf pictures can be included in latex documents or can be directly > compiled to PDF by the backend, utilizing the benefits of Xelatex. > > The code for the backend and a script creating a test figure is on github: > https://github.com/pwuertz/matplotlib-backend-pgf/ > > A document that demonstrates the benefits of using pgf/xelatex is also > there: > https://github.com/pwuertz/matplotlib-backend-pgf/raw/master/demo/demo.pdf > > Although I think the pgf backend is very useful already and produces > figures > in publication quality (an overused expression ;) ), there are still some > loose ends. Basically, everything I need works but I don't have the time > anymore to figure out all the rest. Maybe someone is interested in > improving > this backend, possibly making it a real option for the masses? I wrote > down > all open questions I had in TODO comments within the code. To summarize > them: > > * The default font for the backend is the unicode variant of Computer > Modern > (CMU Serif), which might not be present on most users' systems. If you > don't > want to install/use it, you can just specify another (see test script). I > could as well check for the fonts specified in the rc parameters but these > just do fit in Latex documents. > > * When printing pgf commands, the actual font depends on the latex > environment you are embedding the figure in. Matplotlib only needs a font > for calculating the text positions and for direct PDF output. > > * I'm not sure how certain draw methods of the renderer should behave due > to > lack of documentation. > > * Some text properties like switching font families or making the text > italic/bold are ignored since I did not need them. > > * Backends like svg or pdf are able to display the document upon show(). I > don't know how this is achieved without creating a graphical user > interface > myself. The other backends don't implement it. > > * The method of obtaining the metrics of text elements is pretty cool I > think (XelatexManager), but it breaks easily since there is no way of > defining a timeout for reading the output of a subprocesses that keeps > running during the figure creation process. Right now, if Latex doesn't > understand a text-element the process stalls. An alternative is to run a > new > latex process for every single text element or start using threads. > Looks great! How do I use this with my currently installed matplotlib 1.1.0? Cheers, A. |
From: Benjamin R. <ben...@ou...> - 2012-06-26 19:19:50
|
On Mon, Jun 25, 2012 at 10:03 AM, julien tayon <ju...@ta...> wrote: > Hello, > > I made a crude sonogram https://gist.github.com/2983547 with the note > names instead of the frequency. But, It really angers me not to be > able to have a log scale for the frequency. > > Does any well known workaround exists? > Is there an easy way to grosso modo do : > x = time, y = frequency, z=amplitude of spectre with something like a > specter of one croche at time = t according to the bpm and make an y > scale logarithmic, then project the amplitude (z) with a colormap on > x,y plane according to the amplitude, and and have 3D representation? > > Basically, I guess it boils down to know if combining those 2 is > possible : > http://matplotlib.sourceforge.net/examples/mplot3d/contourf3d_demo2.html > + log scale for y. I guess I could improve the result by using > logscale on Z and colormap > ( > http://stackoverflow.com/questions/5748076/python-matplotlib-contour-plot-logarithmic-color-scale > ) > > > Since it is only for fun, and I don't want to invest myself too much > my question is really did I missed something while googling for an > easy solution and if so, what are the good keywords? > > Cheers > -- > Julien > > Julien, I am not entirely sure if I understood your question right, but I think I can answer part of it. With respect to using a log scale for 3d axes, it *should* work, but unfortunately, I have never been able to get it to work properly. It is an outstanding bug for mplot3d. The "work-around" is to do the log transformation yourself for the input x/y/z data. However, there is no reason why you can't use a LogNorm for your colormap. Just so you understand, color scales in matplotlib are done in two parts. We have the "Norm" objects which takes data and produce values between 0 and 1 (and handles bad, over, and under values accordingly). And we have "colormap" objects that take values from 0 to 1 and produce an RGB(A) array. By default, most functions in matplotlib will use the min/max of the input data to automatically create a linear Norm object, and will use the "prism" colormap. However, you can create a LogNorm object and pass it in as the 'norm' kwarg in most plotting functions. I hope this helps! Ben Root |
From: Peter W. <pw...@go...> - 2012-06-26 19:14:21
|
efiring wrote: > > Not so--the non-interactive backends like svg and pdf do not do anything > upon show(), so it sounds like nothing needs to be added to your pgf > backend on this score. > Hmm right, when explicitly changing to non gui backends like "ps" or "pdf" the show command is ignored too. I somehow thought that there must be an implementation somewhere because I'll get a preview of a latex rendered figure when using the text.usetex option.. but this option seems to trigger a completely different rendering path anyways. The funny thing is that when enabling text.usetex, which I'm not using in my backend in any way, my PDF ends up with additional text elements I did not create. I have no idea how matplotlib manages to tap into my PDF creation process :D. Anyway.. one less problem to worry about then :) Thanks -- View this message in context: http://old.nabble.com/Pgf-Backend-with-Xelatex-support-tp34072290p34074505.html Sent from the matplotlib - users mailing list archive at Nabble.com. |
From: Eric F. <ef...@ha...> - 2012-06-26 18:45:16
|
On 06/26/2012 03:14 AM, Peter Würtz wrote: > * Backends like svg or pdf are able to display the document upon show(). I > don't know how this is achieved without creating a graphical user interface > myself. The other backends don't implement it. Not so--the non-interactive backends like svg and pdf do not do anything upon show(), so it sounds like nothing needs to be added to your pgf backend on this score. Eric |
From: Peter W. <pw...@go...> - 2012-06-26 13:14:15
|
Hi, When creating figures to be included in Latex documents I encountered a few problems. In the end the text rendering just doesn't blend in well, one way or another. I found that the problems can be fixed by using Xelatex, which provides full unicode support and is able to use the installed fonts of your operating system. I wrote a new backend that uses the "pgf" latex package for drawing matplotlib figures. It is compatible with pdflatex, xelatex and lualatex. The pgf pictures can be included in latex documents or can be directly compiled to PDF by the backend, utilizing the benefits of Xelatex. The code for the backend and a script creating a test figure is on github: https://github.com/pwuertz/matplotlib-backend-pgf/ A document that demonstrates the benefits of using pgf/xelatex is also there: https://github.com/pwuertz/matplotlib-backend-pgf/raw/master/demo/demo.pdf Although I think the pgf backend is very useful already and produces figures in publication quality (an overused expression ;) ), there are still some loose ends. Basically, everything I need works but I don't have the time anymore to figure out all the rest. Maybe someone is interested in improving this backend, possibly making it a real option for the masses? I wrote down all open questions I had in TODO comments within the code. To summarize them: * The default font for the backend is the unicode variant of Computer Modern (CMU Serif), which might not be present on most users' systems. If you don't want to install/use it, you can just specify another (see test script). I could as well check for the fonts specified in the rc parameters but these just do fit in Latex documents. * When printing pgf commands, the actual font depends on the latex environment you are embedding the figure in. Matplotlib only needs a font for calculating the text positions and for direct PDF output. * I'm not sure how certain draw methods of the renderer should behave due to lack of documentation. * Some text properties like switching font families or making the text italic/bold are ignored since I did not need them. * Backends like svg or pdf are able to display the document upon show(). I don't know how this is achieved without creating a graphical user interface myself. The other backends don't implement it. * The method of obtaining the metrics of text elements is pretty cool I think (XelatexManager), but it breaks easily since there is no way of defining a timeout for reading the output of a subprocesses that keeps running during the figure creation process. Right now, if Latex doesn't understand a text-element the process stalls. An alternative is to run a new latex process for every single text element or start using threads. -- View this message in context: http://old.nabble.com/Pgf-Backend-with-Xelatex-support-tp34072290p34072290.html Sent from the matplotlib - users mailing list archive at Nabble.com. |
From: Mogliii <mo...@gm...> - 2012-06-25 20:07:45
|
Even better: f, axarr = plt.subplots(allplots, 1, figsize = fig_size) Its always difficult to predict which **kwargs could/would be valid... |
From: Mogliii <mo...@gm...> - 2012-06-25 18:09:22
|
On 25/06/12 18:30, Benjamin Root wrote: > > > > Your call to "plt.subplots" is creating a new figure object, which > never gets the figsize parameter (only the old figure object has that > set). > > Cheers! > Ben Root > Hi, indeed you are right. I added "f.set_size_inches(fig_size)" and it works Also I had a wrong conversion of inch to cm (2.58 before). Thank you for your help, Mogliii The final code: ################# import matplotlib.pyplot as plt from matplotlib.backends.backend_pdf import PdfPages import numpy as np x = np.arange(10) y = np.arange(10) fig_width_cm = 21 # A4 page fig_height_cm = 29.7 inches_per_cm = 1 / 2.54 # Convert cm to inches fig_width = fig_width_cm * inches_per_cm # width in inches fig_height = fig_height_cm * inches_per_cm # height in inches fig_size = [fig_width, fig_height] pdf = PdfPages('outfile.pdf') allplots = 3 # This is the variable number of subplots f, axarr = plt.subplots(allplots, 1) f.set_size_inches(fig_size) for plot in range(allplots): axarr[plot].plot(x + plot, y) pdf.savefig() pdf.close() |
From: Benjamin R. <ben...@ou...> - 2012-06-25 17:31:19
|
On Mon, Jun 25, 2012 at 1:12 PM, mogliii <mo...@gm...> wrote: > Hi, > > In my script a variable number of graphs is generated. I want to place > them in one column with arbitrary number of rows onto an A4 canvas (for > pdf export). > > Unfortunately the figsize directive seems to have no effect. The figure > is always 8x6 inch. > > Which code do I have to use in this case? > > > My minimal code: > ####################################### > > import matplotlib.pyplot as plt > from matplotlib.backends.backend_pdf import PdfPages > import numpy as np > > x = np.arange(10) > y = np.arange(10) > > fig_width_cm = 21 # A4 page > fig_height_cm = 29.7 > inches_per_cm = 1 / 2.58 # Convert cm to inches > fig_width = fig_width_cm * inches_per_cm # width in inches > fig_height = fig_height_cm * inches_per_cm # height in inches > fig_size = [fig_width, fig_height] > > > pdf = PdfPages('outfile.pdf') > fig = plt.figure(figsize = fig_size) > allplots = 3 # This is the variable number of subplots > f, axarr = plt.subplots(allplots, 1) > > > for plot in range(allplots): > axarr[plot].plot(x+plot, y) > > pdf.savefig() > pdf.close() > > Your call to "plt.subplots" is creating a new figure object, which never gets the figsize parameter (only the old figure object has that set). Cheers! Ben Root |
From: mogliii <mo...@gm...> - 2012-06-25 17:12:20
|
Hi, In my script a variable number of graphs is generated. I want to place them in one column with arbitrary number of rows onto an A4 canvas (for pdf export). Unfortunately the figsize directive seems to have no effect. The figure is always 8x6 inch. Which code do I have to use in this case? My minimal code: ####################################### import matplotlib.pyplot as plt from matplotlib.backends.backend_pdf import PdfPages import numpy as np x = np.arange(10) y = np.arange(10) fig_width_cm = 21 # A4 page fig_height_cm = 29.7 inches_per_cm = 1 / 2.58 # Convert cm to inches fig_width = fig_width_cm * inches_per_cm # width in inches fig_height = fig_height_cm * inches_per_cm # height in inches fig_size = [fig_width, fig_height] pdf = PdfPages('outfile.pdf') fig = plt.figure(figsize = fig_size) allplots = 3 # This is the variable number of subplots f, axarr = plt.subplots(allplots, 1) for plot in range(allplots): axarr[plot].plot(x+plot, y) pdf.savefig() pdf.close() |
From: julien t. <ju...@ta...> - 2012-06-25 14:03:27
|
Hello, I made a crude sonogram https://gist.github.com/2983547 with the note names instead of the frequency. But, It really angers me not to be able to have a log scale for the frequency. Does any well known workaround exists? Is there an easy way to grosso modo do : x = time, y = frequency, z=amplitude of spectre with something like a specter of one croche at time = t according to the bpm and make an y scale logarithmic, then project the amplitude (z) with a colormap on x,y plane according to the amplitude, and and have 3D representation? Basically, I guess it boils down to know if combining those 2 is possible : http://matplotlib.sourceforge.net/examples/mplot3d/contourf3d_demo2.html + log scale for y. I guess I could improve the result by using logscale on Z and colormap (http://stackoverflow.com/questions/5748076/python-matplotlib-contour-plot-logarithmic-color-scale) Since it is only for fun, and I don't want to invest myself too much my question is really did I missed something while googling for an easy solution and if so, what are the good keywords? Cheers -- Julien |
From: Christoph G. <cw...@fa...> - 2012-06-25 12:37:09
|
Christoph Groth writes: > show_figures([Figure().add_subplot(1,1,1).plot(range(10)), > Figure().add_subplot(1,1,1).plot([x*x for x in range(10)])]) This wouldn't work of course, it should be rather f1 = Figure() f1.add_subplot(1, 1, 1).plot(range(10)) f2 = Figure() f2.add_subplot(1, 1, 1).plot([x*x for x in range(10)]) show_figures([f1, f2]) |