SourceForge logo
SourceForge logo
Menu

matplotlib-users — Discussion related to using matplotlib

You can subscribe to this list here.

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





1
(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)

Showing results of 226

1 2 3 .. 10 > >> (Page 1 of 10)
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])
8 messages has been excluded from this view by a project administrator.

Showing results of 226

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





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

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

More information about our ad policies

Ad destination/click URL:

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