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
(9) |
2
(8) |
3
(6) |
4
(5) |
5
(10) |
6
(1) |
|
7
|
8
(5) |
9
(3) |
10
(12) |
11
(24) |
12
(28) |
13
(16) |
|
14
(3) |
15
(10) |
16
(17) |
17
(19) |
18
(10) |
19
(20) |
20
(7) |
|
21
(11) |
22
(7) |
23
(5) |
24
(4) |
25
(11) |
26
(19) |
27
(1) |
|
28
(1) |
29
(13) |
30
(7) |
31
(22) |
|
|
|
|
From: Stan W. <sta...@nr...> - 2011-08-26 21:14:09
|
From: ben...@gm... [mailto:ben...@gm...] On Behalf Of Benjamin Root Sent: Friday, August 26, 2011 13:11 Actually, that might be useful. The current solution I have is to use the core contouring function in mpl to generate paths, but they doesn't seem to guarantee either clockwise or counter-clockwise traversals. Does graham scan guarantee something like that? I need to calculate outward-facing normal vectors. The points would be traversed in radial order from P's vantage, as if a radar sweep numbered each point as it passed by. I suppose that if the points form a convex polygon, then that traversal order is the same one that would result from anywhere in the interior, and it would be unambiguously clockwise or counter-clockwise depending on the sort order. (You might have to handle the case in which P and two or more other points are colinear by breaking the tie in the sort appropriately.) If the points form a concave polygon-that is, if one or more points lie inside the convex hull of the points-then I suppose you would need additional constraints or information to choose where those points should fall in the traversal order. I'm glad the method might help. |
|
From: Benjamin R. <ben...@ou...> - 2011-08-26 17:11:01
|
On Friday, August 26, 2011, Stan West <sta...@nr...> wrote: > From: Benjamin Root [mailto:ben...@ou...] > Sent: Friday, August 19, 2011 13:43 > > I have an arbitrary list of coordinates that I know represent the boundary of a polygon. Is there some sort of function from the contouring or path codes that would allow me to pass in that list and get back the resorted list with the path codes with it? > > Hi, Ben. Is it the order of the points around the polygon that is unknown, and is it unambiguous because the polygon is known to be convex? If so, I believe you could use part of the Graham scan [1] convex hull algorithm. The function you need would find the point P with the lowest Y coordinate, then sort the remaining points by the cosine of the angle they and P make with the X axis. After that, the list comprising P and the sorted points would need the path codes. > > If the polygon is concave but the order is somehow clear (e.g., a radial progression about the average coordinate), you might be able to adapt the method. I hope I understood your problem correctly and that this helps. > > [1] http://en.wikipedia.org/wiki/Graham_scan Actually, that might be useful. The current solution I have is to use the core contouring function in mpl to generate paths, but they doesn't seem to guarantee either clockwise or counter-clockwise traversals. Does graham scan guarantee something like that? I need to calculate outward-facing normal vectors. Ben Root |
|
From: Stan W. <sta...@nr...> - 2011-08-26 17:00:19
|
From: Benjamin Root [mailto:ben...@ou...] Sent: Friday, August 19, 2011 13:43 I have an arbitrary list of coordinates that I know represent the boundary of a polygon. Is there some sort of function from the contouring or path codes that would allow me to pass in that list and get back the resorted list with the path codes with it? Hi, Ben. Is it the order of the points around the polygon that is unknown, and is it unambiguous because the polygon is known to be convex? If so, I believe you could use part of the Graham scan [1] convex hull algorithm. The function you need would find the point P with the lowest Y coordinate, then sort the remaining points by the cosine of the angle they and P make with the X axis. After that, the list comprising P and the sorted points would need the path codes. If the polygon is concave but the order is somehow clear (e.g., a radial progression about the average coordinate), you might be able to adapt the method. I hope I understood your problem correctly and that this helps. [1] http://en.wikipedia.org/wiki/Graham_scan |
|
From: Jouni K. S. <jk...@ik...> - 2011-08-26 16:37:34
|
Michael Droettboom <md...@st...> writes: > The other approach is used when "text.usetex" is True. It calls out > to a real "tex" interpreter and then interprets the DVI it produces to > convert it into a form the matplotlib backends can use. Since I > didn't write this code, I'm not as familiar with the details. There are actually at least three mechanisms used by text.usetex: (1) The Postscript backend uses psfrag. The Postscript file has placeholders for LaTeX text, and the file is processed with LaTeX and dvips to replace these placeholders with typeset text. (2) The Agg backend puts each piece of TeX text into a separate file (which you can find in ~/.matplotlib/tex.cache), processes it with LaTeX into dvi and with dvipng into png, reads in the png files and overlays them onto the image. (That's at least what I imagine it does; I have not looked at the code.) (3) The pdf backend uses the dviread module (written originally by me). The various pieces of text are written into different tex files, just as with the Agg backend, then processed with LaTeX into dvi files, which in turn are translated by dviread into sequences of (x, y, font, character) tuples. The dviread module reads the pdftex.map configuration file, which maps the TeX font names into Postscript fonts, which are embedded in the output PDF file, and the characters are placed at the coordinates specified in the dvi file. The dvipng approach avoids dealing with fonts, but the output is a bitmap. With psfrag you can only get Postscript output (which is nontrivial to parse), but it includes scalable fonts. The dviread approach gets you both scalable fonts and the information of where each character is, but you will have to deal with the fonts yourself. In PDF output this is relatively easy, since we can piggyback on the pdftex.map configuration file, which conveniently points to font files that can be embedded in PDF. -- Jouni K. Seppänen http://www.iki.fi/jks |
|
From: Sebastian B. <seb...@si...> - 2011-08-26 16:36:35
|
Hi,
On Fri, 2011-08-26 at 06:09 -0700, a.sam wrote:
> I have a problem with changing the ticklabels text. In fact I am aware of the
> method which is explained by the matplotlib help center. But I need more
> flexibility with ticklabels text.
You could set the formatter yourself instead of manipulating strings or
setting the ticklabels by hand. IE:
my_formatter = matplotlib.ticker.FormatStrFormatter('a%s')
#etc... see http://matplotlib.sourceforge.net/api/ticker_api.html
a = plt.gca()
a.xaxis.set_major_formatter(my_formatter)
plt.draw()
Regards,
Sebastian
> For example, I want to add an "a" before every tick label of the xaxis. So I
> wrote the following sample code:
> #----------------------------------------------------------------
> from pylab import *
> #
> t = arange(0.0, 100.0, 0.1)
> s = sin(0.1*pi*t)*exp(-t*0.01)
> #
> ax = subplot(111)
> plot(t,s)
> #
> for label1 in ax.xaxis.get_majorticklabels():
> label1.set_weight('bold')
> label1._text="a"+label1._text
> #
> show()
> #----------------------------------------------------------------
> It seems to me that `` label1._text="a"+label1._text ' ' should do this
> job, but it does nothing. The only way I found was using something like
> this:
>
> ax.xaxis.set_ticklabels(('a0','a20','a40','a60','a80','a100'))
>
> which I would rather not to use, because there are lots of graphs in my
> project and I do not want to this process manually. So, my question is which
> property or method would set (and also get) the ticklabel text?
>
> Thanks is advance
|
|
From: Benjamin R. <ben...@ou...> - 2011-08-26 16:13:58
|
On Friday, August 26, 2011, a.sam <a....@gm...> wrote:
>
> I have a problem with changing the ticklabels text. In fact I am aware of
the
> method which is explained by the matplotlib help center. But I need more
> flexibility with ticklabels text.
> For example, I want to add an "a" before every tick label of the xaxis. So
I
> wrote the following sample code:
> #----------------------------------------------------------------
> from pylab import *
> #
> t = arange(0.0, 100.0, 0.1)
> s = sin(0.1*pi*t)*exp(-t*0.01)
> #
> ax = subplot(111)
> plot(t,s)
> #
> for label1 in ax.xaxis.get_majorticklabels():
> label1.set_weight('bold')
> label1._text="a"+label1._text
> #
> show()
> #----------------------------------------------------------------
> It seems to me that `` label1._text="a"+label1._text ' ' should do this
> job, but it does nothing. The only way I found was using something like
> this:
>
> ax.xaxis.set_ticklabels(('a0','a20','a40','a60','a80','a100'))
>
> which I would rather not to use, because there are lots of graphs in my
> project and I do not want to this process manually. So, my question is
which
> property or method would set (and also get) the ticklabel text?
>
> Thanks is advance
Why not use get_ticklabels() to get the list of strings, modify that, and
call set_ticklabels() with the modified list?
Ben Root
|
|
From: Michael D. <md...@st...> - 2011-08-26 14:33:22
|
On 08/26/2011 02:32 AM, Ole Jacob Hagen wrote: > Hi, > > I'm about to implement a TeX interpreter for the graphical backend to > GNU Octave (http://www.octave.org). The rendering is in OpenGL context. > As I understand it, matplotlib doesn't use OpenGL at all? Not at present -- though various people are working on it. > > Could you tell me about the design and work flow for the Tex/Latex > interpreter and rendering system for TeX/Latex fonts? > There are two. One is a Python reimplementation of part of the TeX math algorithms called "mathtext" (I am the original author). It uses Truetype versions of either the Computer Modern fonts or the STIX fonts. It is able to produce either raster images or data that is then used by the matplotlib backends to generate PS, PDF, SVG etc. The other approach is used when "text.usetex" is True. It calls out to a real "tex" interpreter and then interprets the DVI it produces to convert it into a form the matplotlib backends can use. Since I didn't write this code, I'm not as familiar with the details. In the case of OpenGL, since you only want images anyway, you may be best off using a tool like dvipng along with the preview LaTeX package, if having "real" LaTeX as a dependency is acceptable. Mike |
|
From: Jonny M. <thi...@gm...> - 2011-08-26 13:42:12
|
You could always just save it as a list and then plot from there?
The average calculation is a bit redundant though, I'm sure theres a better
way of doing it
import pylab
import numpy
>>f = open( 'myfile.txt','r')
mass_store =[]
>>for line in f:
>>if line != ' ':
>> line = line.strip() # Strips end of line character
>> columns = line.split() # Splits into coloumn
>> mass = columns[8] # Column which contains mass values
>> print(mass)
mass_store.append(mass)
>>
pylab.plot(range(len(mass_store)),mass_store)
pylab.plot(range(len(mass_store)),[numpy.mean(mass_store)]*len(mass_store))
pylab.show() (or pylab.savefig('location.png') to save )
Jonny
On 24 August 2011 19:46, surfcast23 <sur...@gm...> wrote:
>
> I am fairly new to programing and have a question regarding matplotlib. I
> wrote a python script that reads in data from the outfile of another
> program
> then prints out the data from one column.
>
> f = open( 'myfile.txt','r')
> for line in f:
> if line != ' ':
> line = line.strip() # Strips end of line character
> columns = line.split() # Splits into coloumn
> mass = columns[8] # Column which contains mass values
> print(mass)
>
> What I now need to do is have matplotlib take the values printed in 'mass'
> and plot the sum of the values over the average of the values. I have read
> the documents on the matplotlib website, but they are don't really address
> how to get data from a script(or I just did not see it). If anyone can
> point
> me to some documentation that explains how I do this it would be really
> appreciated.
> Thanks in advance
>
> --
> View this message in context:
> http://old.nabble.com/How-do-you-Plot-data-generated-by-a-python-script--tp32328822p32328822.html
> Sent from the matplotlib - users mailing list archive at Nabble.com.
>
>
>
> ------------------------------------------------------------------------------
> EMC VNX: the world's simplest storage, starting under $10K
> The only unified storage solution that offers unified management
> Up to 160% more powerful than alternatives and 25% more efficient.
> Guaranteed. http://p.sf.net/sfu/emc-vnx-dev2dev
> _______________________________________________
> Matplotlib-users mailing list
> Mat...@li...
> https://lists.sourceforge.net/lists/listinfo/matplotlib-users
>
|
|
From: a.sam <a....@gm...> - 2011-08-26 13:09:22
|
I have a problem with changing the ticklabels text. In fact I am aware of the
method which is explained by the matplotlib help center. But I need more
flexibility with ticklabels text.
For example, I want to add an "a" before every tick label of the xaxis. So I
wrote the following sample code:
#----------------------------------------------------------------
from pylab import *
#
t = arange(0.0, 100.0, 0.1)
s = sin(0.1*pi*t)*exp(-t*0.01)
#
ax = subplot(111)
plot(t,s)
#
for label1 in ax.xaxis.get_majorticklabels():
label1.set_weight('bold')
label1._text="a"+label1._text
#
show()
#----------------------------------------------------------------
It seems to me that `` label1._text="a"+label1._text ' ' should do this
job, but it does nothing. The only way I found was using something like
this:
ax.xaxis.set_ticklabels(('a0','a20','a40','a60','a80','a100'))
which I would rather not to use, because there are lots of graphs in my
project and I do not want to this process manually. So, my question is which
property or method would set (and also get) the ticklabel text?
Thanks is advance
--
View this message in context: http://old.nabble.com/working-with-ticklabels-text-in-matplolib-tp32341717p32341717.html
Sent from the matplotlib - users mailing list archive at Nabble.com.
|
|
From: Ole J. H. <ole...@gm...> - 2011-08-26 06:32:14
|
Hi, I'm about to implement a TeX interpreter for the graphical backend to GNU Octave (http://www.octave.org). The rendering is in OpenGL context. As I understand it, matplotlib doesn't use OpenGL at all? Could you tell me about the design and work flow for the Tex/Latex interpreter and rendering system for TeX/Latex fonts? Best regards, Ole J. Hagen |
|
From: surfcast23 <sur...@gm...> - 2011-08-26 04:06:41
|
Sorry everyone I totally missed something very important. What I need to do is first bin the masses(which I don't know how to do). Chelonian wrote: > > On Thu, Aug 25, 2011 at 10:01 PM, surfcast23 <sur...@gm...> wrote: >> >> Hi, >> >> there is only one column. so I want a plot of y and x. With y taking >> values running from 0 to n or 7 in my example and x as the average of >> the >> values that are contained in the rows in my example it was 5.57. > > It seems to me that, as described, you want a plot that in which all > the bars are the same height (or width if it is a sideways bar chart), > in this case, 5.57. That makes no sense. > > What information is this plot is intended to provide the viewer? > > ------------------------------------------------------------------------------ > EMC VNX: the world's simplest storage, starting under $10K > The only unified storage solution that offers unified management > Up to 160% more powerful than alternatives and 25% more efficient. > Guaranteed. http://p.sf.net/sfu/emc-vnx-dev2dev > _______________________________________________ > Matplotlib-users mailing list > Mat...@li... > https://lists.sourceforge.net/lists/listinfo/matplotlib-users > > -- View this message in context: http://old.nabble.com/How-do-you-Plot-data-generated-by-a-python-script--tp32328822p32339216.html Sent from the matplotlib - users mailing list archive at Nabble.com. |
|
From: C M <cmp...@gm...> - 2011-08-26 02:29:42
|
On Thu, Aug 25, 2011 at 10:01 PM, surfcast23 <sur...@gm...> wrote: > > Hi, > > there is only one column. so I want a plot of y and x. With y taking > values running from 0 to n or 7 in my example and x as the average of the > values that are contained in the rows in my example it was 5.57. It seems to me that, as described, you want a plot that in which all the bars are the same height (or width if it is a sideways bar chart), in this case, 5.57. That makes no sense. What information is this plot is intended to provide the viewer? |
|
From: surfcast23 <sur...@gm...> - 2011-08-26 02:27:05
|
No problem thanks for helping mdekauwe wrote: > > Perhaps someone else can help as I feel I am being particularly dense. > > for i in xrange(numcols): > ax.plot([np.mean(mass[:,7]) for i in xrange(numcols)], > np.arange(numcols), label=i) > > This gives you what I think you said, but really don't think this is what > you mean as it seems a strange thing to want to do. > > sorry i couldn't be of more help > > > surfcast23 wrote: >> >> Hi, >> >> there is only one column. so I want a plot of y and x. With y taking >> values running from 0 to n or 7 in my example and x as the average of >> the values that are contained in the rows in my example it was 5.57. >> >> >> >> mdekauwe wrote: >>> >>> still don't quite get this, so you want for each column the average? and >>> you want to plot each of these averages? So a bar graph? with 8 bars? >>> >>> >>> >>> surfcast23 wrote: >>>> >>>> Hi, >>>> >>>> I apologize if my explanation was less than clear. What I have is >>>> data in a column that runs from row 1 to row 1268. In each each row >>>> there is a number. For example >>>> >>>> 1 >>>> 3 >>>> 5 >>>> 6 >>>> 7 >>>> 8 >>>> 9 >>>> >>>> so I want the y axis to run from 1 to 7 ( the number of rows) and the >>>> x axis to be the average of the values in this case 5.57. I am having >>>> problems with setting up the y-axis as well as the dimension problem >>>> you addressed. >>>> >>>> Is there a way I could have every value on the x axis the same? Say >>>> for the above example have the x and y axis be >>>> >>>> 7 >>>> 6 >>>> 5 >>>> 4 >>>> 3 >>>> 2 >>>> 1 >>>> 5.75 5.57 5.57 5.75 5.57 5.57 5.75 >>>> >>>> Which would be the number of rows vs the average value of the data in >>>> the rows and then plot that? >>>> >>>> Thanks again >>>> >>>> Khary >>>> >>>> >>>> >>>> mdekauwe wrote: >>>>> >>>>> Hi, >>>>> >>>>> Well the first bit about wanting a specific column and the last bit >>>>> about not wanting to print all the data in and read it back, you get >>>>> that from the example I gave you. If you paste what I wrote for you >>>>> line by line it should become clearer for you, additionally it avoids >>>>> you have to write your own parsing code. >>>>> >>>>> As far as your plotting goes, unless you actually post what you are >>>>> entering in the script (exactly as you have it), then it is impossible >>>>> to say. For example >>>>> >>>>> plt.plot() >>>>> plt.show >>>>> >>>>> there is no way that is all you have? if it is, then of course you >>>>> will get a fail as you are asking matplotlib to plot but are not >>>>> providing it with any data to plot! >>>>> >>>>> Perhaps I am being particularly dense but "What I now need to do is >>>>> have the information in that column plotted as the number of rows vs. >>>>> the mean value of all of the rows." means nothing to me. Sorry. What >>>>> do you want on the X and Y... do you mean you want to plot your >>>>> individual column (8 i think you called it) against the mean of all >>>>> the other rows? If so I would expect you would have a dimensions issue >>>>> >>>>> Martin >>>>> >>>>> >>>>> >>>> >>>> >>> >>> >> >> > > -- View this message in context: http://old.nabble.com/How-do-you-Plot-data-generated-by-a-python-script--tp32328822p32338914.html Sent from the matplotlib - users mailing list archive at Nabble.com. |
|
From: mdekauwe <mde...@gm...> - 2011-08-26 02:22:46
|
Perhaps someone else can help as I feel I am being particularly dense.
for i in xrange(numcols):
ax.plot([np.mean(mass[:,7]) for i in xrange(numcols)],
np.arange(numcols), label=i)
This gives you what I think you said, but really don't think this is what
you mean as it seems a strange thing to want to do.
sorry i couldn't be of more help
surfcast23 wrote:
>
> Hi,
>
> there is only one column. so I want a plot of y and x. With y taking
> values running from 0 to n or 7 in my example and x as the average of the
> values that are contained in the rows in my example it was 5.57.
>
>
>
> mdekauwe wrote:
>>
>> still don't quite get this, so you want for each column the average? and
>> you want to plot each of these averages? So a bar graph? with 8 bars?
>>
>>
>>
>> surfcast23 wrote:
>>>
>>> Hi,
>>>
>>> I apologize if my explanation was less than clear. What I have is
>>> data in a column that runs from row 1 to row 1268. In each each row
>>> there is a number. For example
>>>
>>> 1
>>> 3
>>> 5
>>> 6
>>> 7
>>> 8
>>> 9
>>>
>>> so I want the y axis to run from 1 to 7 ( the number of rows) and the x
>>> axis to be the average of the values in this case 5.57. I am having
>>> problems with setting up the y-axis as well as the dimension problem
>>> you addressed.
>>>
>>> Is there a way I could have every value on the x axis the same? Say for
>>> the above example have the x and y axis be
>>>
>>> 7
>>> 6
>>> 5
>>> 4
>>> 3
>>> 2
>>> 1
>>> 5.75 5.57 5.57 5.75 5.57 5.57 5.75
>>>
>>> Which would be the number of rows vs the average value of the data in
>>> the rows and then plot that?
>>>
>>> Thanks again
>>>
>>> Khary
>>>
>>>
>>>
>>> mdekauwe wrote:
>>>>
>>>> Hi,
>>>>
>>>> Well the first bit about wanting a specific column and the last bit
>>>> about not wanting to print all the data in and read it back, you get
>>>> that from the example I gave you. If you paste what I wrote for you
>>>> line by line it should become clearer for you, additionally it avoids
>>>> you have to write your own parsing code.
>>>>
>>>> As far as your plotting goes, unless you actually post what you are
>>>> entering in the script (exactly as you have it), then it is impossible
>>>> to say. For example
>>>>
>>>> plt.plot()
>>>> plt.show
>>>>
>>>> there is no way that is all you have? if it is, then of course you will
>>>> get a fail as you are asking matplotlib to plot but are not providing
>>>> it with any data to plot!
>>>>
>>>> Perhaps I am being particularly dense but "What I now need to do is
>>>> have the information in that column plotted as the number of rows vs.
>>>> the mean value of all of the rows." means nothing to me. Sorry. What do
>>>> you want on the X and Y... do you mean you want to plot your individual
>>>> column (8 i think you called it) against the mean of all the other
>>>> rows? If so I would expect you would have a dimensions issue
>>>>
>>>> Martin
>>>>
>>>>
>>>>
>>>
>>>
>>
>>
>
>
--
View this message in context: http://old.nabble.com/How-do-you-Plot-data-generated-by-a-python-script--tp32328822p32338899.html
Sent from the matplotlib - users mailing list archive at Nabble.com.
|
|
From: surfcast23 <sur...@gm...> - 2011-08-26 02:01:45
|
Hi, there is only one column. so I want a plot of y and x. With y taking values running from 0 to n or 7 in my example and x as the average of the values that are contained in the rows in my example it was 5.57. mdekauwe wrote: > > still don't quite get this, so you want for each column the average? and > you want to plot each of these averages? So a bar graph? with 8 bars? > > > > surfcast23 wrote: >> >> Hi, >> >> I apologize if my explanation was less than clear. What I have is data >> in a column that runs from row 1 to row 1268. In each each row there is a >> number. For example >> >> 1 >> 3 >> 5 >> 6 >> 7 >> 8 >> 9 >> >> so I want the y axis to run from 1 to 7 ( the number of rows) and the x >> axis to be the average of the values in this case 5.57. I am having >> problems with setting up the y-axis as well as the dimension problem >> you addressed. >> >> Is there a way I could have every value on the x axis the same? Say for >> the above example have the x and y axis be >> >> 7 >> 6 >> 5 >> 4 >> 3 >> 2 >> 1 >> 5.75 5.57 5.57 5.75 5.57 5.57 5.75 >> >> Which would be the number of rows vs the average value of the data in >> the rows and then plot that? >> >> Thanks again >> >> Khary >> >> >> >> mdekauwe wrote: >>> >>> Hi, >>> >>> Well the first bit about wanting a specific column and the last bit >>> about not wanting to print all the data in and read it back, you get >>> that from the example I gave you. If you paste what I wrote for you line >>> by line it should become clearer for you, additionally it avoids you >>> have to write your own parsing code. >>> >>> As far as your plotting goes, unless you actually post what you are >>> entering in the script (exactly as you have it), then it is impossible >>> to say. For example >>> >>> plt.plot() >>> plt.show >>> >>> there is no way that is all you have? if it is, then of course you will >>> get a fail as you are asking matplotlib to plot but are not providing it >>> with any data to plot! >>> >>> Perhaps I am being particularly dense but "What I now need to do is have >>> the information in that column plotted as the number of rows vs. the >>> mean value of all of the rows." means nothing to me. Sorry. What do you >>> want on the X and Y... do you mean you want to plot your individual >>> column (8 i think you called it) against the mean of all the other rows? >>> If so I would expect you would have a dimensions issue >>> >>> Martin >>> >>> >>> >> >> > > -- View this message in context: http://old.nabble.com/How-do-you-Plot-data-generated-by-a-python-script--tp32328822p32338836.html Sent from the matplotlib - users mailing list archive at Nabble.com. |
|
From: mdekauwe <mde...@gm...> - 2011-08-26 01:50:57
|
still don't quite get this, so you want for each column the average? and you want to plot each of these averages? So a bar graph? with 8 bars? surfcast23 wrote: > > Hi, > > I apologize if my explanation was less than clear. What I have is data > in a column that runs from row 1 to row 1268. In each each row there is a > number. For example > > 1 > 3 > 5 > 6 > 7 > 8 > 9 > > so I want the y axis to run from 1 to 7 ( the number of rows) and the x > axis to be the average of the values in this case 5.57. I am having > problems with setting up the y-axis as well as the dimension problem you > addressed. > > Is there a way I could have every value on the x axis the same? Say for > the above example have the x and y axis be > > 7 > 6 > 5 > 4 > 3 > 2 > 1 > 5.75 5.57 5.57 5.75 5.57 5.57 5.75 > > Which would be the number of rows vs the average value of the data in the > rows and then plot that? > > Thanks again > > Khary > > > > mdekauwe wrote: >> >> Hi, >> >> Well the first bit about wanting a specific column and the last bit about >> not wanting to print all the data in and read it back, you get that from >> the example I gave you. If you paste what I wrote for you line by line it >> should become clearer for you, additionally it avoids you have to write >> your own parsing code. >> >> As far as your plotting goes, unless you actually post what you are >> entering in the script (exactly as you have it), then it is impossible to >> say. For example >> >> plt.plot() >> plt.show >> >> there is no way that is all you have? if it is, then of course you will >> get a fail as you are asking matplotlib to plot but are not providing it >> with any data to plot! >> >> Perhaps I am being particularly dense but "What I now need to do is have >> the information in that column plotted as the number of rows vs. the mean >> value of all of the rows." means nothing to me. Sorry. What do you want >> on the X and Y... do you mean you want to plot your individual column (8 >> i think you called it) against the mean of all the other rows? If so I >> would expect you would have a dimensions issue >> >> Martin >> >> >> > > -- View this message in context: http://old.nabble.com/How-do-you-Plot-data-generated-by-a-python-script--tp32328822p32338805.html Sent from the matplotlib - users mailing list archive at Nabble.com. |
|
From: surfcast23 <sur...@gm...> - 2011-08-26 01:44:37
|
Hi Ryan,
I think your solution will work thank you!! I did get an error though it is
" f.next() # You want to skip the first line, I guess.
AttributeError: '_io.TextIOWrapper' object has no attribute 'next' "
thank you
Khary
rcnelson wrote:
>
> If I understand your question correctly, I may have a solution to your
> problem. First of all, the statement below, when converted to Python
> code, will generate an array of numbers the same length of your masses
> list.
>> 'y runs fron 0 to n where n == len(masses) '
> However, this statement will give you a single number:
>> x = 'mass_avg = sum(masses)/len(masses)'
> You will not be able to plot these two objects because of the different
> sizes. If you are asking about a 'running' or cumulative mean, then you
> may
> want to use the cumulative sum function from Numpy (cumsum). To convert
> this
> into a cumulative average, you can do a simple division.
>
> Below is a modification to your script that incorporates this averaging
> technique. (I don't know why you want to print everything. Surely you
> can't
> see all of the data as the file gets processed. It is also a very slow
> operation... I'll just ignore those parts.)
>
> import numpy as np
> import matplotlib.pyplot as plt
> f = open('myfile.txt')
> f.next() # You want to skip the first line, I guess.
> mass = []
> for line in f:
> # This will skip the lines that are spaces.
> if line.isspace(): continue
> # The strip function is unnecessary. The defalut for the split
> function
> takes care of that.
> columns = line.split()
> # Don't call the float function every time. It's a waste.
> mass.append( columns[8] )
> # Here we can convert the list of strings into an array of floats with the
> dtype keyword.
> mass = np.array( mass, dtype='float')
> # Here's the cumulative average steps.
> mass_sum = np.cumsum(mass)
> mass_average = mass_sum/ np.arange(1, len(mass_sum) + 1)
> # If you only plot one array or list of values, they are assumed to be the
> y
> values.
> # The x values in that case are the indices of the y value array.
> plt.plot(mass_average)
> plt.show()
>
>
> Ryan
>
>
>> Message: 5
>> Date: Thu, 25 Aug 2011 11:15:57 -0700 (PDT)
>> From: surfcast23 <sur...@gm...>
>> Subject: Re: [Matplotlib-users] How do you Plot data generated by a
>> python script?
>> To: mat...@li...
>> Message-ID: <323...@ta...>
>> Content-Type: text/plain; charset=us-ascii
>>
>>
>> Hi Martin,
>>
>> Thank for the relpy. What I have is a script that reads the data
>> from
>> a large file then prints out the values listed in a particular column.
>> What
>> I now need to do is have the information in that column plotted as the
>> number of rows vs. the mean value of all of the rows. What I have so far
>> is
>>
>> import matplotlib.pyplot as plt
>>
>> masses = []
>>
>> f = open( 'myfile.txt','r')
>> f.readline()
>> for line in f:
>> if line != ' ':
>> line = line.strip() # Strips end of line character
>> columns = line.split() # Splits into coloumn
>> mass = columns[8] # Column which contains mass values
>> mass = float(mass)
>> masses.append(mass)
>> print(mass)
>>
>> plt.plot()
>> plt.show
>>
>>
>> I am thinking I can do something like
>>
>> 'y runs fron 0 to n where n == len(masses) '
>> x = 'mass_avg = sum(masses)/len(masses)'
>>
>> Problem is I don' tknow how to have matplotlib do it with out giving me
>> an
>> error about dimentions. I would also like to do this with out having to
>> write and read from another file. I alos need to to be able to work on
>> files
>> with ddifering numbers of rows.
>>
>> Thanks
>>
>>
>>
>>
>>
>> mdekauwe wrote:
>> >
>> > I wasn't quite able to follow exactly what you wanted to do but maybe
>> this
>> > will help. I am going to generate some "data" that I think sounds a bit
>> > like yours, write it to a file, clearly you already have this. Then I
>> am
>> > going to read it back in and plot it, e.g.
>> >
>> > import matplotlib.pyplot as plt
>> > import numpy as np
>> >
>> > # Generate some data a little like yours, I think?
>> > # print it to a file, i.e. I am making your myfile.txt
>> > numrows = 100
>> > numcols = 8
>> > mass = np.random.normal(0, 1, (numrows * numcols)).reshape(numrows,
>> > numcols)
>> > f = open("myfile.txt", "w")
>> > for i in xrange(numrows):
>> > for j in xrange(numcols):
>> > print >>f, mass[i,j],
>> > print >> f
>> > f.close()
>> >
>> > # read the file back in
>> > mass = np.loadtxt("myfile.txt")
>> >
>> > # plot the 8th column
>> > fig = plt.figure()
>> > ax = fig.add_subplot(111)
>> > ax.plot(mass[:,7], 'r-o')
>> > ax.set_xlabel("Time")
>> > ax.set_ylabel("Mass")
>> > plt.show()
>> >
>> >
>> > I wasn't clear on the mean bit, but that is easy to do with numpy, e.g.
>> >
>> > mean_mass = np.mean(mass[:,8])
>> >
>> > etc.
>> >
>> > Numpy et al is great for stuff like this.
>> >
>> > Hope that helps,
>> >
>> > Martin
>> >
>> >
>>
>> --
>> View this message in context:
>> http://old.nabble.com/How-do-you-Plot-data-generated-by-a-python-script--tp32328822p32336570.html
>> Sent from the matplotlib - users mailing list archive at Nabble.com.
>>
>>
>
> ------------------------------------------------------------------------------
> EMC VNX: the world's simplest storage, starting under $10K
> The only unified storage solution that offers unified management
> Up to 160% more powerful than alternatives and 25% more efficient.
> Guaranteed. http://p.sf.net/sfu/emc-vnx-dev2dev
> _______________________________________________
> Matplotlib-users mailing list
> Mat...@li...
> https://lists.sourceforge.net/lists/listinfo/matplotlib-users
>
>
--
View this message in context: http://old.nabble.com/How-do-you-Plot-data-generated-by-a-python-script--tp32328822p32338782.html
Sent from the matplotlib - users mailing list archive at Nabble.com.
|
|
From: surfcast23 <sur...@gm...> - 2011-08-26 01:35:07
|
Hi, I apologize if my explanation was less than clear. What I have is data in a column that runs from row 1 to row 1268. In each each row there is a number. For example 1 3 5 6 7 8 9 so I want the y axis to run from 1 to 7 ( the number of rows) and the x axis to be the average of the values in this case 5.57. I am having problems with setting up the y-axis as well as the dimension problem you addressed. Is there a way I could have every value on the x axis the same? Say for the above example have the x and y axis be 7 6 5 4 3 2 1 5.75 5.57 5.57 5.75 5.57 5.57 5.75 Which would be the number of rows vs the average value of the data in the rows and then plot that? Thanks again Khary mdekauwe wrote: > > Hi, > > Well the first bit about wanting a specific column and the last bit about > not wanting to print all the data in and read it back, you get that from > the example I gave you. If you paste what I wrote for you line by line it > should become clearer for you, additionally it avoids you have to write > your own parsing code. > > As far as your plotting goes, unless you actually post what you are > entering in the script (exactly as you have it), then it is impossible to > say. For example > > plt.plot() > plt.show > > there is no way that is all you have? if it is, then of course you will > get a fail as you are asking matplotlib to plot but are not providing it > with any data to plot! > > Perhaps I am being particularly dense but "What I now need to do is have > the information in that column plotted as the number of rows vs. the mean > value of all of the rows." means nothing to me. Sorry. What do you want on > the X and Y... do you mean you want to plot your individual column (8 i > think you called it) against the mean of all the other rows? If so I would > expect you would have a dimensions issue > > Martin > > > -- View this message in context: http://old.nabble.com/How-do-you-Plot-data-generated-by-a-python-script--tp32328822p32338750.html Sent from the matplotlib - users mailing list archive at Nabble.com. |
|
From: Ryan N. <rne...@gm...> - 2011-08-26 01:28:03
|
If I understand your question correctly, I may have a solution to your
problem. First of all, the statement below, when converted to Python
code, will generate an array of numbers the same length of your masses list.
> 'y runs fron 0 to n where n == len(masses) '
However, this statement will give you a single number:
> x = 'mass_avg = sum(masses)/len(masses)'
You will not be able to plot these two objects because of the different
sizes. If you are asking about a 'running' or cumulative mean, then you may
want to use the cumulative sum function from Numpy (cumsum). To convert this
into a cumulative average, you can do a simple division.
Below is a modification to your script that incorporates this averaging
technique. (I don't know why you want to print everything. Surely you can't
see all of the data as the file gets processed. It is also a very slow
operation... I'll just ignore those parts.)
import numpy as np
import matplotlib.pyplot as plt
f = open('myfile.txt')
f.next() # You want to skip the first line, I guess.
mass = []
for line in f:
# This will skip the lines that are spaces.
if line.isspace(): continue
# The strip function is unnecessary. The defalut for the split function
takes care of that.
columns = line.split()
# Don't call the float function every time. It's a waste.
mass.append( columns[8] )
# Here we can convert the list of strings into an array of floats with the
dtype keyword.
mass = np.array( mass, dtype='float')
# Here's the cumulative average steps.
mass_sum = np.cumsum(mass)
mass_average = mass_sum/ np.arange(1, len(mass_sum) + 1)
# If you only plot one array or list of values, they are assumed to be the y
values.
# The x values in that case are the indices of the y value array.
plt.plot(mass_average)
plt.show()
Ryan
> Message: 5
> Date: Thu, 25 Aug 2011 11:15:57 -0700 (PDT)
> From: surfcast23 <sur...@gm...>
> Subject: Re: [Matplotlib-users] How do you Plot data generated by a
> python script?
> To: mat...@li...
> Message-ID: <323...@ta...>
> Content-Type: text/plain; charset=us-ascii
>
>
> Hi Martin,
>
> Thank for the relpy. What I have is a script that reads the data from
> a large file then prints out the values listed in a particular column. What
> I now need to do is have the information in that column plotted as the
> number of rows vs. the mean value of all of the rows. What I have so far is
>
> import matplotlib.pyplot as plt
>
> masses = []
>
> f = open( 'myfile.txt','r')
> f.readline()
> for line in f:
> if line != ' ':
> line = line.strip() # Strips end of line character
> columns = line.split() # Splits into coloumn
> mass = columns[8] # Column which contains mass values
> mass = float(mass)
> masses.append(mass)
> print(mass)
>
> plt.plot()
> plt.show
>
>
> I am thinking I can do something like
>
> 'y runs fron 0 to n where n == len(masses) '
> x = 'mass_avg = sum(masses)/len(masses)'
>
> Problem is I don' tknow how to have matplotlib do it with out giving me an
> error about dimentions. I would also like to do this with out having to
> write and read from another file. I alos need to to be able to work on
> files
> with ddifering numbers of rows.
>
> Thanks
>
>
>
>
>
> mdekauwe wrote:
> >
> > I wasn't quite able to follow exactly what you wanted to do but maybe
> this
> > will help. I am going to generate some "data" that I think sounds a bit
> > like yours, write it to a file, clearly you already have this. Then I am
> > going to read it back in and plot it, e.g.
> >
> > import matplotlib.pyplot as plt
> > import numpy as np
> >
> > # Generate some data a little like yours, I think?
> > # print it to a file, i.e. I am making your myfile.txt
> > numrows = 100
> > numcols = 8
> > mass = np.random.normal(0, 1, (numrows * numcols)).reshape(numrows,
> > numcols)
> > f = open("myfile.txt", "w")
> > for i in xrange(numrows):
> > for j in xrange(numcols):
> > print >>f, mass[i,j],
> > print >> f
> > f.close()
> >
> > # read the file back in
> > mass = np.loadtxt("myfile.txt")
> >
> > # plot the 8th column
> > fig = plt.figure()
> > ax = fig.add_subplot(111)
> > ax.plot(mass[:,7], 'r-o')
> > ax.set_xlabel("Time")
> > ax.set_ylabel("Mass")
> > plt.show()
> >
> >
> > I wasn't clear on the mean bit, but that is easy to do with numpy, e.g.
> >
> > mean_mass = np.mean(mass[:,8])
> >
> > etc.
> >
> > Numpy et al is great for stuff like this.
> >
> > Hope that helps,
> >
> > Martin
> >
> >
>
> --
> View this message in context:
> http://old.nabble.com/How-do-you-Plot-data-generated-by-a-python-script--tp32328822p32336570.html
> Sent from the matplotlib - users mailing list archive at Nabble.com.
>
>
|