You can subscribe to this list here.
| 2003 |
Jan
|
Feb
|
Mar
|
Apr
|
May
(3) |
Jun
|
Jul
|
Aug
(12) |
Sep
(12) |
Oct
(56) |
Nov
(65) |
Dec
(37) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2004 |
Jan
(59) |
Feb
(78) |
Mar
(153) |
Apr
(205) |
May
(184) |
Jun
(123) |
Jul
(171) |
Aug
(156) |
Sep
(190) |
Oct
(120) |
Nov
(154) |
Dec
(223) |
| 2005 |
Jan
(184) |
Feb
(267) |
Mar
(214) |
Apr
(286) |
May
(320) |
Jun
(299) |
Jul
(348) |
Aug
(283) |
Sep
(355) |
Oct
(293) |
Nov
(232) |
Dec
(203) |
| 2006 |
Jan
(352) |
Feb
(358) |
Mar
(403) |
Apr
(313) |
May
(165) |
Jun
(281) |
Jul
(316) |
Aug
(228) |
Sep
(279) |
Oct
(243) |
Nov
(315) |
Dec
(345) |
| 2007 |
Jan
(260) |
Feb
(323) |
Mar
(340) |
Apr
(319) |
May
(290) |
Jun
(296) |
Jul
(221) |
Aug
(292) |
Sep
(242) |
Oct
(248) |
Nov
(242) |
Dec
(332) |
| 2008 |
Jan
(312) |
Feb
(359) |
Mar
(454) |
Apr
(287) |
May
(340) |
Jun
(450) |
Jul
(403) |
Aug
(324) |
Sep
(349) |
Oct
(385) |
Nov
(363) |
Dec
(437) |
| 2009 |
Jan
(500) |
Feb
(301) |
Mar
(409) |
Apr
(486) |
May
(545) |
Jun
(391) |
Jul
(518) |
Aug
(497) |
Sep
(492) |
Oct
(429) |
Nov
(357) |
Dec
(310) |
| 2010 |
Jan
(371) |
Feb
(657) |
Mar
(519) |
Apr
(432) |
May
(312) |
Jun
(416) |
Jul
(477) |
Aug
(386) |
Sep
(419) |
Oct
(435) |
Nov
(320) |
Dec
(202) |
| 2011 |
Jan
(321) |
Feb
(413) |
Mar
(299) |
Apr
(215) |
May
(284) |
Jun
(203) |
Jul
(207) |
Aug
(314) |
Sep
(321) |
Oct
(259) |
Nov
(347) |
Dec
(209) |
| 2012 |
Jan
(322) |
Feb
(414) |
Mar
(377) |
Apr
(179) |
May
(173) |
Jun
(234) |
Jul
(295) |
Aug
(239) |
Sep
(276) |
Oct
(355) |
Nov
(144) |
Dec
(108) |
| 2013 |
Jan
(170) |
Feb
(89) |
Mar
(204) |
Apr
(133) |
May
(142) |
Jun
(89) |
Jul
(160) |
Aug
(180) |
Sep
(69) |
Oct
(136) |
Nov
(83) |
Dec
(32) |
| 2014 |
Jan
(71) |
Feb
(90) |
Mar
(161) |
Apr
(117) |
May
(78) |
Jun
(94) |
Jul
(60) |
Aug
(83) |
Sep
(102) |
Oct
(132) |
Nov
(154) |
Dec
(96) |
| 2015 |
Jan
(45) |
Feb
(138) |
Mar
(176) |
Apr
(132) |
May
(119) |
Jun
(124) |
Jul
(77) |
Aug
(31) |
Sep
(34) |
Oct
(22) |
Nov
(23) |
Dec
(9) |
| 2016 |
Jan
(26) |
Feb
(17) |
Mar
(10) |
Apr
(8) |
May
(4) |
Jun
(8) |
Jul
(6) |
Aug
(5) |
Sep
(9) |
Oct
(4) |
Nov
|
Dec
|
| 2017 |
Jan
(5) |
Feb
(7) |
Mar
(1) |
Apr
(5) |
May
|
Jun
(3) |
Jul
(6) |
Aug
(1) |
Sep
|
Oct
(2) |
Nov
(1) |
Dec
|
| 2018 |
Jan
|
Feb
|
Mar
|
Apr
(1) |
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
| 2020 |
Jan
|
Feb
|
Mar
|
Apr
|
May
(1) |
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
| 2025 |
Jan
(1) |
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
|
From: Damon M. <dam...@gm...> - 2012-09-25 10:44:24
|
On Tue, Sep 25, 2012 at 11:10 AM, andreasl <and...@la...> wrote: > Hello, > > When I use something along the lines of > > legend( (r'$0.5^x/x!$', r'$1^x/x!$') ) > > for some reason omegas are drawn instead of the ! sign. I can't find an > alternative here nor elsewhere. Any ideas? > Looks fine to me. Do you have rcParams['text.usetex']=True? -- Damon McDougall http://www.damon-is-a-geek.com B2.39 Mathematics Institute University of Warwick Coventry West Midlands CV4 7AL United Kingdom |
|
From: andreasl <and...@la...> - 2012-09-25 10:10:53
|
Hello, When I use something along the lines of legend( (r'$0.5^x/x!$', r'$1^x/x!$') ) for some reason omegas are drawn instead of the ! sign. I can't find an alternative here <http://matplotlib.org/users/mathtext.html> nor elsewhere. Any ideas? Many thanks, Andreas |
|
From: Paul H. <pmh...@gm...> - 2012-09-25 06:43:21
|
> On Mon, Sep 24, 2012 at 12:21 AM, Paul Tremblay <pau...@gm...> > wrote: >> >> Here is my example of a Pareto chart. >> >> For an explanation of a Pareto chart: >> >> http://en.wikipedia.org/wiki/Pareto_chart >> >> Could I get this chart added to the matplolib gallery? >> >> >> Thanks >> >> Paul >> > On 9/24/12 4:40 PM, Benjamin Root wrote: > Your code looks overly complicated. You shouldn't have to be doing the > connection to the ylim_changed event, I don't think. I think your main > problem is that you are calling ax1.plot instead of ax2.plot. > > I am not against adding more examples to the gallery, but this would have to > be cleaned up before it gets included. > > Ben Root On Mon, Sep 24, 2012 at 5:50 PM, Paul Tremblay <pau...@gm...> wrote: > I took my example from the matplotlib pages itself: > > http://matplotlib.org/examples/api/fahrenheit_celcius_scales.html > > If you know a better way, please show me. > > P. Paul, That example is an overly complicated template for making a pareto chart. Here's how I'd do it: # data defects = [0, 32, 22, 15, 5, 2] labels = ['', 'vertical', 'horizontal', 'behind', 'left area', 'other'] # axes fig, ax1 = plt.subplots() ax2 = ax1.twinx() # plotting ax1.bar(np.arange(len(defects))-0.4, defects, zorder=0, alpha=0.5) ax2.plot(np.cumsum(defects), linestyle='-', color='k', linewidth=2, zorder=5) # formatting ax1.set_xticks(np.arange(len(defects))) ax1.set_xticklabels(labels) ax1.set_ylabel('Defects') ax2.set_ylabel('Percentage') plt.show() |
|
From: Paul T. <pau...@gm...> - 2012-09-25 02:48:10
|
By the way, I had done the chart differently to begin with. But this code
requires more lines, more imports, and is more complex. (Without
plt.gca().yaxis or the formatter, the graph will not come out.)
import matplotlib.pyplot as plt
import numpy as np
from matplotlib.ticker import FuncFormatter
from matplotlib.ticker import MaxNLocator
defects = [32, 22, 15, 5, 2]
labels = ['vertical', 'horizontal', 'behind', 'left area', 'other']
the_sum = sum(defects)
the_cumsum = np.cumsum(defects)
ind = np.arange(len(defects))
width = .98
x = ind + .5 * width
fig = plt.figure()
ax1 = fig.add_subplot(111)
ax2 = ax1.twinx()
rects = ax1.bar(ind, defects, width=width)
ax1.set_ylim(ymax=the_sum)
ax2.set_ylim(ymax=the_sum)
plt.gca().yaxis.set_major_locator( MaxNLocator(nbins = 6) )
line, = ax2.plot(x, the_cumsum)
ax1.set_xticks(ind+ .5 * width)
ax1.set_xticklabels(labels)
def to_percent(x, pos):
return round(x/the_sum, 1) * 100
formatter = FuncFormatter(to_percent)
ax2.yaxis.set_major_formatter(formatter)
ax1.set_ylabel('Defects')
ax2.set_ylabel('Percentage')
plt.show()
On Mon, Sep 24, 2012 at 8:50 PM, Paul Tremblay <pau...@gm...>wrote:
> I took my example from the matplotlib pages itself:
>
> http://matplotlib.org/examples/api/fahrenheit_celcius_scales.html
>
> If you know a better way, please show me.
>
> P.
>
>
> On 9/24/12 4:40 PM, Benjamin Root wrote:
>
>
>
> On Mon, Sep 24, 2012 at 12:21 AM, Paul Tremblay <pau...@gm...>wrote:
>
>> Here is my example of a Pareto chart.
>>
>> For an explanation of a Pareto chart:
>>
>> http://en.wikipedia.org/wiki/Pareto_chart
>>
>> Could I get this chart added to the matplolib gallery?
>>
>>
>> Thanks
>>
>> Paul
>>
>>
> Your code looks overly complicated. You shouldn't have to be doing the
> connection to the ylim_changed event, I don't think. I think your main
> problem is that you are calling ax1.plot instead of ax2.plot.
>
> I am not against adding more examples to the gallery, but this would have
> to be cleaned up before it gets included.
>
> Ben Root
>
>
>
|
|
From: Paul T. <pau...@gm...> - 2012-09-25 00:50:23
|
I took my example from the matplotlib pages itself: http://matplotlib.org/examples/api/fahrenheit_celcius_scales.html If you know a better way, please show me. P. On 9/24/12 4:40 PM, Benjamin Root wrote: > > > On Mon, Sep 24, 2012 at 12:21 AM, Paul Tremblay > <pau...@gm... <mailto:pau...@gm...>> wrote: > > Here is my example of a Pareto chart. > > For an explanation of a Pareto chart: > > http://en.wikipedia.org/wiki/Pareto_chart > > Could I get this chart added to the matplolib gallery? > > > Thanks > > Paul > > > Your code looks overly complicated. You shouldn't have to be doing > the connection to the ylim_changed event, I don't think. I think your > main problem is that you are calling ax1.plot instead of ax2.plot. > > I am not against adding more examples to the gallery, but this would > have to be cleaned up before it gets included. > > Ben Root > |
|
From: Christoph G. <cg...@uc...> - 2012-09-25 00:50:16
|
On 9/24/2012 3:32 PM, David Honcik wrote:
> I've run into a large memory leak using Matplotlib with PySide and the
> Qt4 back end. I'm using :
> Python 3.2
> Numpy 1.6.2
> Pyside 1.1.1 (qt474)
> Matplotlib 1.2 (first the Capetown Group port to Python 3, then 1.2 RC2)
> on Windows XP 32 bit
> I've tried using the Python 2.7 branch of all of the above and don't see
> the problem. I don't see the problem with the Tk back end. I don't see
> the problem with the Qt4 back end and PyQt4. Only with the above
> mentioned versions and using the Qt4 back end with PySide.
> The following script will reproduce the problem :
> --------------------
> import matplotlib
> matplotlib.use('Qt4Agg')
> matplotlib.rcParams['backend.qt4']='PySide'
> import pylab
> arrayX = []
> arrayY = []
> for nIndex in range(0, 100):
> arrayX.append(nIndex)
> arrayY.append(nIndex)
> Figure = matplotlib.pyplot.figure(1)
> Axes = Figure.add_axes([ 0.05, 0.05, 0.95, 0.95])
> Axes.plot(arrayX,
> arrayY,
> color = "blue",
> marker = "o",
> markersize = 5.0)
> Axes.set_xlim(arrayX[0], arrayX[len(arrayX) - 1])
> Axes.set_ylim(arrayY[0], arrayY[len(arrayY) - 1])
> matplotlib.pyplot.show()
> --------------------
> I run the above, grab the lower right sizing handle on the plot window
> and start resizing the window. Watching the python process in task
> manager, each resize leaks a noticeable amount of memory. A few minutes
> of this will get process memory up to ~2.5 GB. At that point it crashes.
> I'm new here, am I in the right place?
>
I can reproduce this exactly, also with pyside 1.1.2 and an empty plot.
Looks like QtGui.QImage is leaking.
import matplotlib
matplotlib.use('Qt4Agg')
matplotlib.rcParams['backend.qt4']='PySide'
from matplotlib import pyplot
pyplot.plot()
pyplot.show()
--
Christoph
|
|
From: Martin M. <mmo...@fo...> - 2012-09-25 00:34:34
|
Hi Ben, Benjamin Root wrote: > > > On Monday, September 24, 2012, Martin Mokrejs wrote: > > Hi, > I have pie charts with relatively long texts assigned to each slice of the pie. > The text is drawn horizontally. Instead, I would like to have it rotated at the > same angle as the slice itself (i.e. centered at the "axis" of the slice). In this > way the text would not overlap other text of adjacent slices (or at least if the > text starts far enough from the pie). > > The example below is a bit over-twisted but I really want to be able to read at > least a portion of those ['my text4', 'my text5', 'my text6', 'my text7'] legends. > > > Hmmm, this might be a decent feature to add to pie(). Although, I wonder if a legend would better suit your needs? The problem is that some of my pie charts have dozens of slices or very varying width. The legend would take just too much space and moreover, there is not that many colors easily distinguishable by eye so a person would have a hard time to find which item in the legend corresponds to some slice in the chart. I think this is the only way out. ;-) Martin BTW: A percentage in black color on a blue slice is hardly readable. Could pie() also change a font foreground color if the background is too dark in those few slices? Say to white? ;-)) |
|
From: Benjamin R. <ben...@ou...> - 2012-09-25 00:23:53
|
On Monday, September 24, 2012, Martin Mokrejs wrote: > Hi, > I have pie charts with relatively long texts assigned to each slice of > the pie. > The text is drawn horizontally. Instead, I would like to have it rotated > at the > same angle as the slice itself (i.e. centered at the "axis" of the slice). > In this > way the text would not overlap other text of adjacent slices (or at least > if the > text starts far enough from the pie). > > The example below is a bit over-twisted but I really want to be able to > read at > least a portion of those ['my text4', 'my text5', 'my text6', 'my text7'] > legends. > > Hmmm, this might be a decent feature to add to pie(). Although, I wonder if a legend would better suit your needs? Ben Root |
|
From: Martin M. <mmo...@fo...> - 2012-09-24 23:37:27
|
Hi,
I have pie charts with relatively long texts assigned to each slice of the pie.
The text is drawn horizontally. Instead, I would like to have it rotated at the
same angle as the slice itself (i.e. centered at the "axis" of the slice). In this
way the text would not overlap other text of adjacent slices (or at least if the
text starts far enough from the pie).
The example below is a bit over-twisted but I really want to be able to read at
least a portion of those ['my text4', 'my text5', 'my text6', 'my text7'] legends.
import pylab
F = pylab.gcf()
F.set_size_inches(17, 17)
ax_pie = pylab.axes([0.30, 0.30, 0.4, 0.4])
_data = [0.17, 0.23, 0.599, 0.001, 0.003, 0.003, 0.003]
_colors=['red', 'green', 'blue', 'black', 'white', 'yellow', 'violet']
_labels=['my text1', 'my text2', 'my text3', 'my text4', 'my text5', 'my text6', 'my text7']
ax_pie.pie(_data, colors=_colors, labels=_labels, labeldistance=1.5, autopct='%1.1f%%')
pylab.axis('equal')
pylab.title("blah")
pylab.show()
I tried to search for some example of this or documentation of the pie function
but it seems it is either not possible or not documented. ;-)
Some relatively close matches I found:
http://matplotlib.sourceforge.net/examples/pylab_examples/text_rotation.html (this
could maybe help but I do not know at what angle is each slice rendered by pylab.pie())
http://matplotlib.sourceforge.net/examples/pylab_examples/text_rotation_relative_to_line.html
(maybe this would work if all text should be drawn at a SAME angle but that is not what I want)
Some other shots:
http://stackoverflow.com/questions/9220933/plotting-a-pie-chart-in-matplotlib-at-a-specific-angle-with-the-fracs-on-the-wed
http://guutaranoheya.web.fc2.com/math/matplotlib_ex.html (search for "rotation")
Thank you for your help,
Martin
|
|
From: David H. <Ho...@ge...> - 2012-09-24 22:32:56
|
I've run into a large memory leak using Matplotlib with PySide and the
Qt4 back end. I'm using :
Python 3.2
Numpy 1.6.2
Pyside 1.1.1 (qt474)
Matplotlib 1.2 (first the Capetown Group port to Python 3, then 1.2 RC2)
on Windows XP 32 bit
I've tried using the Python 2.7 branch of all of the above and don't see
the problem. I don't see the problem with the Tk back end. I don't see
the problem with the Qt4 back end and PyQt4. Only with the above
mentioned versions and using the Qt4 back end with PySide.
The following script will reproduce the problem :
--------------------
import matplotlib
matplotlib.use('Qt4Agg')
matplotlib.rcParams['backend.qt4']='PySide'
import pylab
arrayX = []
arrayY = []
for nIndex in range(0, 100):
arrayX.append(nIndex)
arrayY.append(nIndex)
Figure = matplotlib.pyplot.figure(1)
Axes = Figure.add_axes([ 0.05, 0.05, 0.95, 0.95])
Axes.plot(arrayX,
arrayY,
color = "blue",
marker = "o",
markersize = 5.0)
Axes.set_xlim(arrayX[0], arrayX[len(arrayX) - 1])
Axes.set_ylim(arrayY[0], arrayY[len(arrayY) - 1])
matplotlib.pyplot.show()
--------------------
I run the above, grab the lower right sizing handle on the plot window
and start resizing the window. Watching the python process in task
manager, each resize leaks a noticeable amount of memory. A few minutes
of this will get process memory up to ~2.5 GB. At that point it
crashes.
I'm new here, am I in the right place?
|
|
From: Benjamin R. <ben...@ou...> - 2012-09-24 20:41:20
|
On Mon, Sep 24, 2012 at 12:21 AM, Paul Tremblay <pau...@gm...>wrote: > Here is my example of a Pareto chart. > > For an explanation of a Pareto chart: > > http://en.wikipedia.org/wiki/Pareto_chart > > Could I get this chart added to the matplolib gallery? > > > Thanks > > Paul > > Your code looks overly complicated. You shouldn't have to be doing the connection to the ylim_changed event, I don't think. I think your main problem is that you are calling ax1.plot instead of ax2.plot. I am not against adding more examples to the gallery, but this would have to be cleaned up before it gets included. Ben Root |
|
From: Scott H. <st...@co...> - 2012-09-24 19:24:08
|
I'd like to use the same patch to clip two images that share the same axes, and extract values from the un-clipped region of both arrays. Unfortunately this seems harder than expected. Code & questions below, Thanks! from matplotlib.patches import Polygon import matplotlib.pyplot as plt from numpy import random poly = patches.Circle((5,5), radius=3, fill=False, ec='none') fig = plt.figure() ax = fig.add_subplot(121) ax.autoscale_view(0,0,0) test = random.rand(10,10) im = ax.imshow(test) test1 = random.rand(10,10) # How to prevent automatic axis scaling? ax1 = fig.add_subplot(122, sharex=ax, sharey=ax) im1 = ax1.imshow(test1) ax.add_patch(poly) im.set_clip_path(poly) # Doesn't work b/c poly vertices auto-transformed to display coords by add_patch? ax1.add_patch(poly) im1.set_clip_path(poly) # How to extract non-clipped values instead of full array? clipped_data = im.get_array() plt.show() |
|
From: Michael D. <md...@st...> - 2012-09-24 17:31:57
|
matplotlib 1.2.0rc2 is available! This is the culmination of many months of hard work. 1.2.0 is the first release to support Python 3.x, and drops support for Python 2.5 and earlier. A more detailed list of changes is available here: http://matplotlib.org/1.2.0/users/whats_new.html For the first time, downloads are being made available through github, and not through sourceforge, so the release and binaries can be downloaded here: https://github.com/matplotlib/matplotlib/downloads <https://github.com/matplotlib/matplotlib/downloads> (Due to a compiler difference, we do not have binaries for 32-bit OS-X, but we hope to have them available soon.) Documentation for the new release is available here: http://matplotlib.org/1.2.0/ <http://matplotlib.org/1.2.0/users/whats_new.html> (The main matplotlib.org site will continue to host the documentation for 1.1.1 until the final 1.2.0 release). Go forth, download, kick the tires, and let us know what breaks! (Either here or on the github issue tracker). Cheers, Mike |
|
From: Andrea G. <and...@gm...> - 2012-09-24 15:08:02
|
On 22 September 2012 16:57, Jae-Joon Lee wrote: > I recommend you to use OffsetImage. Here is an example of how one can > use OffsetImage. > > http://matplotlib.org/examples/pylab_examples/demo_annotation_box.html > > And attached is the modified version of the original script. Thank you JJ, I wasn't aware of OffsetImage. It works perfectly now, thanks again. Andrea. "Imagination Is The Only Weapon In The War Against Reality." http://xoomer.alice.it/infinity77/ |
|
From: Paul T. <pau...@gm...> - 2012-09-24 04:21:21
|
Here is my example of a Pareto chart. For an explanation of a Pareto chart: http://en.wikipedia.org/wiki/Pareto_chart Could I get this chart added to the matplolib gallery? Thanks Paul import matplotlib.pyplot as plt import numpy as np def update_ax2(axx): ax2.set_ylim(0, 100) ax2.figure.canvas.draw() # the data to plot defects = [32, 22, 15, 5, 2] labels = ['vertical', 'horizontal', 'behind', 'left area', 'other'] the_sum = sum(defects) # ie, 32 + 22 + 15 + 5 + 2 the_cumsum = np.cumsum(defects) # 32, 32 + 22, 32 + 22 + 15, 32 + 22 + 15 + 5, 32 + 22, + 15 + 5 + 2 ind = np.arange(len(defects)) # the x locations for the groups width = .98 # with do of the bars, where a width of 1 indidcates no space between bars x = ind + .5 * width # find the middle of the bar fig = plt.figure() # create a figure ax1 = fig.add_subplot(111) # and a subplot ax2 = ax1.twinx() # create a duplicate y axis # create the callback to automatically update the y axis ax1.callbacks.connect("ylim_changed", update_ax2) # create an upper limit for the y axis. # The upper limit is the sum of all the numbers ax1.set_ylim(ymax=the_sum) rects1 = ax1.bar(ind, defects, width=width) # draw the chart line, = ax1.plot(x, the_cumsum) # draw the line ax1.set_xticks(ind+ .5 * width) # set ticks for middle of bars ax1.set_xticklabels(labels) # create the labels for the bars ax1.set_ylabel('Defects') # create the left y axis label ax2.set_ylabel('Percentage') # create the right y axis label plt.show() |
|
From: Ryan M. <rm...@gm...> - 2012-09-24 02:16:20
|
On Sat, Sep 22, 2012 at 12:40 PM, Eric Firing <ef...@ha...> wrote: > On 2012/09/22 3:03 AM, reckoner wrote: >> Hi, >> >> I have a plot that includes arrows drawn by the quiver command. I would >> like to create animation using Func Animation, but I don't know how to >> update the quiver arrows. I can update everything else on the plot and >> animates fine. >> >> Does anybody know how to update the quiver arrows in an animation? I >> know the quiver arrows have a XY property, but changing that doesn't >> update the plot. > > You cannot update the arrow positions without making a new Quiver > instance, so to animate with varying positions, you will need to delete > the previous Quiver instance and make a new one for each frame. Given this, it might be best to use ArtistAnimation then, which should handle turning on and off artists that you provide as a list of list of artists. Ryan -- Ryan May Graduate Research Assistant School of Meteorology University of Oklahoma |
|
From: Michael M. F. <mic...@gm...> - 2012-09-23 23:49:48
|
Hi Everyone, I am considering the best practices for producing high-quality plots for publication. I would like to be able to use colour and and transparency for screen viewing, but also want to ensure that the graphs print well. The typical problem I run into is using colors for data curves. When printed on laser printers, these curves become halftone grayscale which appear very "blurry" compared with the pure black curves. I would like to develop a set of practises that will allow me to specify two types of colors - those for data that should be rendered in true black (but perhaps with varying line-thickneses corresponding to the original darkness) when printed, and those for shading, axis frames etc. in the background where blurry halftones are acceptable. Has this topic been discussed anywhere? I know of several threads discussing general conversion to grayscale, but nothing discussion the issues of blurry halftones when printing. Thanks, Michael. Refs: http://thread.gmane.org/gmane.comp.python.matplotlib.general/5479/focus=5484 http://thread.gmane.org/gmane.comp.python.matplotlib.general/28576/focus=28578 |
|
From: Eric F. <ef...@ha...> - 2012-09-23 19:55:15
|
On 2012/09/23 9:27 AM, Benjamin Root wrote: > > > On Sunday, September 23, 2012, Giovanni Plantageneto wrote: > > Hi everybody, > sorry, I guess the question is trivial, but I confess my matplotlib > and python ignorance. > > I'm running some code written by someone else, and apparently some > bits of the code are not compliant with newer versions of matplotlib. > So, how can I rewrite the following, which give AttributError? > > > self.ax.get_figure().axes = [] > > and > > > self.ax.get_figure().axes = [self.ax <http://self.ax>] > > Thanks a lot. > > > Without context, it would be hard to say. What was the exception > message? I bet it was a NoneType object being returned by get_figure(), > which would mean that the Axes object was created without a figure, > which is rarely done. It looks to me like the code was trying to delete all axes but one from the figure. This probably worked when Figure.axes was a plain list, but for quite some time it has been a read-only list generated from an AxesStack instance. The code will need rewriting based on an understanding of what it is trying to do, and how mpl works now. There is no shortcut. For this particular problem, you might be able to do something like this: fig = self.ax.get_figure() axlist = fig.axes for ax in axlist: if not ax == self.ax: fig.delaxes(ax) Eric > > Also, it looks like the code was trying to manage the hierarchy of > objects itself (maybe the code was trying to detach an axes from one > figure and transfer to another? Lots of bookkeeping code like this is > not needed, but you may still have other issues lurking. > > Ben Root > > > > ------------------------------------------------------------------------------ > Everyone hates slow websites. So do we. > Make your web apps faster with AppDynamics > Download AppDynamics Lite for free today: > http://ad.doubleclick.net/clk;258768047;13503038;j? > http://info.appdynamics.com/FreeJavaPerformanceDownload.html > > > > _______________________________________________ > Matplotlib-users mailing list > Mat...@li... > https://lists.sourceforge.net/lists/listinfo/matplotlib-users > |
|
From: Eric F. <ef...@ha...> - 2012-09-23 19:53:49
|
On 2012/09/23 9:45 AM, Giovanni Plantageneto wrote: > One of the suggestions I got works: > >> Maybe this: > >> self.ax.get_figure().clf() >> self.ax.get_figure().add_axes(self.ax) This seems a bit dangerous, because logically, even if does not presently do so, the clf() call could remove the figure reference from self.ax. If you want to go this route, then: fig = self.ax.get_figure() fig.clf() fig.add_axes(self.ax) Eric > >> But it looks really weird to me. > > If I understand it correctly, from matplotlib version 1.1.1 (?) > statements as "self.ax.get_figure().axes = []" are not possible any > more as axes are not lists anymore. Don't take my word for it, though. > > Thanks for the support. > > > 2012/9/23 Giovanni Plantageneto <g.p...@gm...>: >> Hi everybody, >> sorry, I guess the question is trivial, but I confess my matplotlib >> and python ignorance. >> >> I'm running some code written by someone else, and apparently some >> bits of the code are not compliant with newer versions of matplotlib. >> So, how can I rewrite the following, which give AttributError? >> >>> self.ax.get_figure().axes = [] >> >> and >> >>> self.ax.get_figure().axes = [self.ax] >> >> Thanks a lot. > > ------------------------------------------------------------------------------ > Everyone hates slow websites. So do we. > Make your web apps faster with AppDynamics > Download AppDynamics Lite for free today: > http://ad.doubleclick.net/clk;258768047;13503038;j? > http://info.appdynamics.com/FreeJavaPerformanceDownload.html > _______________________________________________ > Matplotlib-users mailing list > Mat...@li... > https://lists.sourceforge.net/lists/listinfo/matplotlib-users > |
|
From: Giovanni P. <g.p...@gm...> - 2012-09-23 19:45:35
|
One of the suggestions I got works: >Maybe this: >self.ax.get_figure().clf() >self.ax.get_figure().add_axes(self.ax) >But it looks really weird to me. If I understand it correctly, from matplotlib version 1.1.1 (?) statements as "self.ax.get_figure().axes = []" are not possible any more as axes are not lists anymore. Don't take my word for it, though. Thanks for the support. 2012/9/23 Giovanni Plantageneto <g.p...@gm...>: > Hi everybody, > sorry, I guess the question is trivial, but I confess my matplotlib > and python ignorance. > > I'm running some code written by someone else, and apparently some > bits of the code are not compliant with newer versions of matplotlib. > So, how can I rewrite the following, which give AttributError? > >> self.ax.get_figure().axes = [] > > and > >> self.ax.get_figure().axes = [self.ax] > > Thanks a lot. |
|
From: Benjamin R. <ben...@ou...> - 2012-09-23 19:28:03
|
On Sunday, September 23, 2012, Giovanni Plantageneto wrote: > Hi everybody, > sorry, I guess the question is trivial, but I confess my matplotlib > and python ignorance. > > I'm running some code written by someone else, and apparently some > bits of the code are not compliant with newer versions of matplotlib. > So, how can I rewrite the following, which give AttributError? > > > self.ax.get_figure().axes = [] > > and > > > self.ax.get_figure().axes = [self.ax] > > Thanks a lot. > > Without context, it would be hard to say. What was the exception message? I bet it was a NoneType object being returned by get_figure(), which would mean that the Axes object was created without a figure, which is rarely done. Also, it looks like the code was trying to manage the hierarchy of objects itself (maybe the code was trying to detach an axes from one figure and transfer to another? Lots of bookkeeping code like this is not needed, but you may still have other issues lurking. Ben Root |
|
From: Giovanni P. <g.p...@gm...> - 2012-09-23 17:41:03
|
Hi everybody, sorry, I guess the question is trivial, but I confess my matplotlib and python ignorance. I'm running some code written by someone else, and apparently some bits of the code are not compliant with newer versions of matplotlib. So, how can I rewrite the following, which give AttributError? > self.ax.get_figure().axes = [] and > self.ax.get_figure().axes = [self.ax] Thanks a lot. |
|
From: Brian J M. <bri...@Co...> - 2012-09-23 16:48:26
|
Hey Ben,
Here is the code I am using to generate this plot, in addition to an
example input. It's basicaIlly a list of lists, where each inner list is a
time series. Plotting a 3D time series as a 3D surface rectangle is
probably a pretty common problem. It would be awesome if I didn't have to
switch to using rpy + ggplot or even worse, mlabwrap. Thank for any ideas
that anyone has!
def ThreeDSurfacePlot(list_of_lists):
plt.clf()
fig = plt.figure()
list_of_lists = Smooth(list_of_lists)
xs = numpy.arange(0,list_of_lists.shape[1],1)
zs = numpy.arange(0,len(list_of_lists),1)
ax = p3.Axes3D(fig)
X = numpy.meshgrid(xs,zs)[0]
Y = numpy.meshgrid(xs,zs)[1]
Z = list_of_lists
ax.plot_surface(X, Y, Z, cmap=cm.jet, cstride=1, rstride=1)
ax.set_xlabel("Sequence Elements")
ax.set_ylabel("Trial")
ax.set_zlabel("Inter-Key-Interval")
ax.set_xscale
# Set up x ticks
tick_locs_x = range(20)
tick_lbls_x = ['d', 'j', 'k', 'f', 'j', 'd', 'f', 'k', 'd', 'f', 'k',
'j', 'd', 'f', 'k', 'f', 'j', 'd', 'k', 'j']
plt.xticks(tick_locs_x, tick_lbls_x)
# Set up y (or z?) ticks
tick_locs_y = range(len(list_of_lists))
tick_lbls_y = []
for day in range(len(data["keylog"])):
day_trial_ctr = 0
for trial in range(len(data["keylog"][day])):
if len(data["keylog"][day][trial]) == 20:
if day_trial_ctr % 20 == 0:
tick_lbls_y.append("Day:" + str(day) + ", Trial: " +
str(day_trial_ctr))
else:
tick_lbls_y.append("")
day_trial_ctr += 1
plt.yticks(tick_locs_y, tick_lbls_y, fontsize=10)
ax.auto_scale_xyz([0,20],[0,50],[0,1])
ax.view_init(20,45)
ax.axis('tight')
plt.savefig(subject + "_3d_surface.png")
if show: plt.show()
>>> print accurateseries[:3]
[[ 0.5 0.5 0.49699092 0.5 0.68226504 0.48422813
0.42276716 0.46813011 0.42340088 0.40479589 0.41090202 0.31301808
0.30782294 0.27784109 0.36982799 0.48932219 0.38784313 0.33056998
0.40356588 0.32964206]
[ 0.5 0.57195497 0.30683708 0.46926498 0.44043994 0.46917915
0.32043695 0.41017413 0.40825605 0.28631306 0.40151811 0.31961489
0.35328102 0.22550416 0.36752486 0.55106211 0.39073801 0.38961005
0.36436582 0.34787703]
[ 0.4480989 0.49201202 0.25450802 0.39503598 0.32998705 0.33187294
0.35646415 0.36470699 0.3162992 0.28596401 0.39307094 0.4239881
0.32525587 0.30294204 0.38540196 0.296211 0.35584903 0.31555796
0.35734415 0.36554003]]
On Thu, Sep 20, 2012 at 7:46 PM, Benjamin Root <ben...@ou...> wrote:
>
>
> On Thursday, September 20, 2012, Brian J Mingus wrote:
>
>> Hi all,
>>
>> I have managed to create a 3d plot with uneven aspect ratio via
>> auto_scale_xyz but I haven't yet figured out how to fix the grid. If you
>> could give me a pointer I would appreciate it.
>>
>> http://imagebin.org/index.php?mode=image&id=229196
>>
>> Thanks,
>>
>>
> Brian,
>
> Just today, I submitted a PR that involved extensive fixes to autoscaling
> in mplot3d. I don't have the PR number on me, but it should be easy to
> find on the github page. While I don't think it will fix much for you, I
> would be interested to know if it breaks your code.
>
> As for your issues, it is hard to help out without a code sample to see
> how you got to where you are. Did you happen to use my experimental
> daspect branch?
>
> Cheers!
> Ben Root
>
>>
>>
--
Brian Mingus
Graduate student
Computational Cognitive Neuroscience Lab
University of Colorado at Boulder
http://grey.colorado.edu/mingus
1-720-587-9482
|
|
From: Eric F. <ef...@ha...> - 2012-09-22 17:40:17
|
On 2012/09/22 3:03 AM, reckoner wrote: > Hi, > > I have a plot that includes arrows drawn by the quiver command. I would > like to create animation using Func Animation, but I don't know how to > update the quiver arrows. I can update everything else on the plot and > animates fine. > > Does anybody know how to update the quiver arrows in an animation? I > know the quiver arrows have a XY property, but changing that doesn't > update the plot. You cannot update the arrow positions without making a new Quiver instance, so to animate with varying positions, you will need to delete the previous Quiver instance and make a new one for each frame. Eric > > Thanks! |
|
From: Jae-Joon L. <lee...@gm...> - 2012-09-22 14:58:21
|
I recommend you to use OffsetImage. Here is an example of how one can use OffsetImage. http://matplotlib.org/examples/pylab_examples/demo_annotation_box.html And attached is the modified version of the original script. Regards, -JJ |