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: 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. > > |
From: mdekauwe <mde...@gm...> - 2011-08-25 23:46:36
|
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--tp32328822p32338485.html Sent from the matplotlib - users mailing list archive at Nabble.com. |
From: pieplot <kat...@gm...> - 2011-08-25 21:04:14
|
Hi, I create a collection item, add it to the current axis, and try to plot data points over it but the points do not show up. Here is my code: fig = plt.figure(figsize=(10,10)) ax = fig.gca() bb_collect = beachball.Beach([strike,dip,rake], linewidth=0.4, facecolor='gray', bgcolor='w', edgecolor='k',alpha=1.0, xy=(0,0), width=2, size=100, nofill=False,zorder=100) a = ax.add_collection(bb_collect) ax.autoscale_view(tight=False, scalex=True, scaley=True) plt.plot(x,y,linewidth=0,marker='+',ms=20,markeredgewidth=3) plt.xlim(-1,1) plt.ylim(-1,1) plt.savefig(evid[nm]+".png") I can plot the collection by itself and the points by themselves, but can't seem to plot the points on top of the collection object. Can anyone tell me what I'm doing wrong? Cheers! -- View this message in context: http://old.nabble.com/Overlaying-points-on-Matplotlib-collection-object--tp32337739p32337739.html Sent from the matplotlib - users mailing list archive at Nabble.com. |
From: surfcast23 <sur...@gm...> - 2011-08-25 18:16:03
|
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. |
From: Katie B. <kat...@gm...> - 2011-08-25 15:21:25
|
Hi, I create a collection item, add it to the current axis, and try to plot data points over it but the points do not show up. Here is my code: fig = plt.figure(figsize=(10,10)) ax = fig.gca() bb_collect = beachball.Beach([strike,dip,rake], linewidth=0.4, facecolor='gray', bgcolor='w', edgecolor='k',alpha=1.0, xy=(0,0), width=2, size=100, nofill=False,zorder=100) a = ax.add_collection(bb_collect) ax.autoscale_view(tight=False, scalex=True, scaley=True) plt.plot(x,y,linewidth=0,marker='+',ms=20,markeredgewidth=3) plt.xlim(-1,1) plt.ylim(-1,1) plt.savefig(evid[nm]+".png") I can plot the collection by itself and the points by themselves, but can't seem to plot the points on top of the collection object. Can anyone tell me what I'm doing wrong? Cheers! |
From: Aman T. <ama...@gm...> - 2011-08-25 15:10:21
|
OK, so it seems to be working if I use fig=plt.figure() instead of fig = Figure() but I'm not sure why this is the case. -Aman On Thu, Aug 25, 2011 at 10:50 AM, Aman Thakral <ama...@gm...>wrote: > Sorry about that. I've attached a sample script. > -Aman > > > On Wed, Aug 24, 2011 at 9:05 PM, John Hunter <jd...@gm...> wrote: > >> >> >> >> >> On Aug 24, 2011, at 4:09 PM, Aman Thakral <ama...@gm...> wrote: >> >> > Hi, >> > >> > I've recently created a web application, using Django, to dynamically >> create maps from weather data. When I tried using FigCanvasAgg and >> figure.Figure, the image that was responded by the web server (using >> canvas.print_png and django.http.HttpResponse) did not show the map, just >> the scatter points. When I just saved the figure (that was created using a >> matplotlib.pyplot.figure() instance) in folder that is statically available >> on the web server, the image is perfect. There is an advantage to using the >> latter method as the saved images can be cached, but I'm curious as to why >> the FigCanvasAgg method doesn't work. >> > >> > Is this a known issue? If so, are there any workarounds? >> > >> > Any help on this issue would be greatly appreciated. >> > >> >> You will need to post an example script. > > > |
From: mdekauwe <mde...@gm...> - 2011-08-25 04:46:20
|
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--tp32328822p32331474.html Sent from the matplotlib - users mailing list archive at Nabble.com. |
From: Jeffrey S. <jef...@gm...> - 2011-08-25 02:23:25
|
That does the trick. Didn't know where the clipping was occurring but couldn't find anything in plot so makes sense it was in the line. Assuming the comma just unpacks the tuple to get direct access to line. Thanks for the help On 25/08/11 03:23, Eric Firing wrote: > On 08/24/2011 06:53 AM, Jeffrey Spencer wrote: >> I created this graph below but if I set the y axis upper limit to 100. >> It cuts off the top half of the dots which are at 100. I wasn't sure how >> to get the dots to show properly like now but set the y-axis upper limit >> to 100 instead of like 102. It makes the data look misleading to have >> that little tail above 100. Essentially a way to create the axis but >> offset the actual axis grid to 95% of that or any other suggestions. >> >> Cheers > Try the changes indicated below. > >> >> Script used to create here: >> >> import matplotlib.pyplot as plt >> import matplotlib.ticker as tick >> from numpy import load, sqrt, shape, size, loadtxt, transpose >> >> def clear_spines(ax): >> ax.spines['top'].set_color('none') >> ax.spines['right'].set_color('none') >> def set_spineLineWidth(ax, lineWidth): >> for i in ax.spines.keys(): >> ax.spines[i].set_linewidth(lineWidth) >> def showOnlySomeTicks(x, pos): >> s = str(int(x)) >> if x == 5000: >> return '5e3'#'%.0e' % x >> return '' >> >> >> plt.close('all') >> golden_mean = (sqrt(5)-1.0)/2.0 # Aesthetic ratio >> fig_width = fig_width_pt*inches_per_pt # width in inches >> fig_height = fig_width*golden_mean # height in inches >> fig_size = [fig_width,fig_height] >> tick_size = 9 >> fontlabel_size = 10.5 >> params = {'backend': 'wxAgg', 'axes.labelsize': fontlabel_size, >> 'text.fontsize': fontlabel_size, 'legend.fontsize': fontlabel_size, >> 'xtick.labelsize': tick_size, 'ytick.labelsize': tick_size, >> 'text.usetex': True, 'figure.figsize': fig_size} >> plt.rcParams.update(params) >> sizeX = storeMat[0].size >> fig = plt.figure(1) >> #figure(num=None, figsize=(8, 6), dpi=80, facecolor='w', edgecolor='k') >> #fig.set_size_inches(fig_size) >> plt.clf() >> ax = plt.axes([0.145,0.18,0.95-0.155,0.95-0.2]) > pts, = > plt.plot(storeMat[0][::2],storeMat[1][::2]/300.*100,'ko',markersize=3.5) > # Note: the comma after "pts" is intentional. > pts.set_clip_on(False) > > >> #plt.plot(storeMat[0][::2],storeMat[1][::2]/300.*100,'k') > plt.ylim(0,100) > >> plt.xlabel('Number of Channels') >> plt.ylabel('Recognition Accuracy') >> set_spineLineWidth(ax,spineLineWidth) >> clear_spines(ax) >> ax.yaxis.set_ticks_position('left') >> ax.xaxis.set_ticks_position('bottom') >> #ax.xaxis.set_minor_formatter(tick.FuncFormatter(showOnlySomeTicks)) >> #plt.legend() >> for i in outExt: >> plt.savefig('lineVersion/'+outFile+i, dpi = mydpi) >> >> >> >> ------------------------------------------------------------------------------ >> 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 > > ------------------------------------------------------------------------------ > 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: John H. <jd...@gm...> - 2011-08-25 01:05:17
|
On Aug 24, 2011, at 4:09 PM, Aman Thakral <ama...@gm...> wrote: > Hi, > > I've recently created a web application, using Django, to dynamically create maps from weather data. When I tried using FigCanvasAgg and figure.Figure, the image that was responded by the web server (using canvas.print_png and django.http.HttpResponse) did not show the map, just the scatter points. When I just saved the figure (that was created using a matplotlib.pyplot.figure() instance) in folder that is statically available on the web server, the image is perfect. There is an advantage to using the latter method as the saved images can be cached, but I'm curious as to why the FigCanvasAgg method doesn't work. > > Is this a known issue? If so, are there any workarounds? > > Any help on this issue would be greatly appreciated. > You will need to post an example script. |
From: surfcast23 <sur...@gm...> - 2011-08-25 00:38:15
|
Thank you Gary. I will definitely read the numpy doucs Gary Ruben-2 wrote: > > As you show it, mass will be a string, so you'll need to convert it to > a float first, then add it to a list. You can then manipulate the > values in the list to compute your mean, or whatever, which matplotlib > can use as input to its plot() function or whichever type of plot > you're after. Alternatively, since the Python numpy module is made for > manipulating data like this, it can probably read your data in a > single function call and easily compute the things you want. However, > if you are really that new to programming, you may struggle, so I'd > suggest reading first going to scipy.org and reading up on numpy. When > you understand the basics of numpy, matplotlib's documentation should > make a lot more sense. > > Gary > > On Thu, Aug 25, 2011 at 6:48 AM, 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 number versus mean mass. I have read the documents on the >> matplotlib website, but they 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 >> > > ------------------------------------------------------------------------------ > 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--tp32328822p32330761.html Sent from the matplotlib - users mailing list archive at Nabble.com. |
From: gary r. <gr...@bi...> - 2011-08-25 00:22:32
|
As you show it, mass will be a string, so you'll need to convert it to a float first, then add it to a list. You can then manipulate the values in the list to compute your mean, or whatever, which matplotlib can use as input to its plot() function or whichever type of plot you're after. Alternatively, since the Python numpy module is made for manipulating data like this, it can probably read your data in a single function call and easily compute the things you want. However, if you are really that new to programming, you may struggle, so I'd suggest reading first going to scipy.org and reading up on numpy. When you understand the basics of numpy, matplotlib's documentation should make a lot more sense. Gary On Thu, Aug 25, 2011 at 6:48 AM, 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 number versus mean mass. I have read the documents on the > matplotlib website, but they 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: Aman T. <ama...@gm...> - 2011-08-24 21:10:23
|
Hi, I've recently created a web application, using Django, to dynamically create maps from weather data. When I tried using FigCanvasAgg and figure.Figure, the image that was responded by the web server (using canvas.print_png and django.http.HttpResponse) did not show the map, just the scatter points. When I just saved the figure (that was created using a matplotlib.pyplot.figure() instance) in folder that is statically available on the web server, the image is perfect. There is an advantage to using the latter method as the saved images can be cached, but I'm curious as to why the FigCanvasAgg method doesn't work. Is this a known issue? If so, are there any workarounds? Any help on this issue would be greatly appreciated. Thanks, Aman |
From: surfcast23 <sur...@gm...> - 2011-08-24 20:48:32
|
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 number versus mean mass. I have read the documents on the matplotlib website, but they 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. |