SourceForge logo
SourceForge logo
Menu

matplotlib-users — Discussion related to using matplotlib

You can subscribe to this list here.

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





1
(28)
2
(11)
3
(15)
4
(11)
5
(13)
6
(33)
7
(13)
8
(9)
9
(2)
10
(9)
11
(27)
12
(5)
13
(10)
14
(6)
15
(9)
16
(4)
17
(2)
18
(19)
19
(11)
20
(9)
21
(16)
22
(16)
23
(5)
24
(2)
25
(8)
26
(2)
27
(11)
28
(10)
29
(5)
30
(1)
31
(2)






Showing 5 results of 5

From: Patrick M. <mar...@gm...> - 2008年08月23日 15:03:11
*embarrassed*
Turns out I was looking at a "compressed" version of the image that didn't
have all the grid lines on. Examining the full version the image looks
correct. I apologize for asking what is not a really dumb question.
However, the second question about the colorbar is still puzzling.
-Patrick
On Sat, Aug 23, 2008 at 9:49 AM, Patrick Marsh <
mar...@gm... <marsh.patrick%2Bm...@gm...>>wrote:
> Greetings,
>
> I'm having considerable difficulties in getting the axes grid to display
> they way I would like it to. Basically, I'm wanting to grid to be shown for
> all of the x/y-ticks displayed, but only an irregular number show up. What
> I'm wanting to know is if my code is wrong or am I'm completely overlooking
> something. My code is below and an image can be found at
> http://forwarn.org/images/USDIFFtest.png.
>
> Also, I might as well ask...is there a way to manually specify the labels
> that are displayed on the colorbar? For instance, in the example below, my
> values range from -5 to 4...how would I go about making sure the last 5 was
> included in the colorbar? I'll admit I haven't looked into this much as of
> now since the first question was / is more pressing.
>
> Thanks!
>
> -Patrick Marsh
>
>
>
> from __future__ import division
> import numpy as np
> import pylab as P
> import copy
>
>
> def open_text(REGION,FIELD):
> #
> #
> #
> global DATAPATH1
> global DATAPATH2
> xaxis1,yaxis1,freq1 = np.loadtxt(DATAPATH1+'bin_CUR_%s_%s.txt' % (REGION,
> FIELD), unpack=True)
> xaxis2,yaxis2,freq2 = np.loadtxt(DATAPATH2+'bin_FUT_%s_%s.txt' % (REGION,
> FIELD), unpack=True)
> return(xaxis1,yaxis1,freq1,xaxis2,yaxis2,freq2)
>
> if __name__ == '__main__':
> #Main Program
>
>
> TIME = 'CUR'
> REGION = 'PLAINS'
> FIELD = 'CAPE-SHR6'
>
> # PATHS TO THE INPUT (DATA) AND OUTPUT (IMAGES) DIRECTORIES
> DATAPATH1 = 'E:/RESEARCH/CCSM_OUTPUT/CURRENT/BIN/'
> DATAPATH2 = 'E:/RESEARCH/CCSM_OUTPUT/FUTURE/BIN/'
> IMAGEPATH = 'E:/RESEARCH/IMAGES/%s/%s/%s/' % (REGION, TIME, FIELD)
>
> xaxis1,yaxis1,freq1,xaxis2,yaxis2,freq2 = open_text(REGION, FIELD)
>
> # TRANSFORM INTO THE CORRECT FORMAT
> xaxis1 = xaxis1.reshape(51,-1).T
> yaxis1 = yaxis1.reshape(51,-1).T
> freq1 = freq1.reshape(51,-1).T
> freq2 = freq1.reshape(51,-1).T
>
> freq1 = freq1 / (12 * 12 * 20) # (12*12*20 for PLAINS).....(29*43*20
> for EUR)
> freq2 = freq2 / (12 * 12 * 20) # (12*12*20 for PLAINS).....(29*43*20
> for EUR)
>
> diff = freq1 - freq2
>
> xaxis = np.log10(xaxis1)
> yaxis = np.log10(yaxis1)
> # xaxis = xaxis1
> # yaxis = yaxis1
>
> # levs = np.arange(0,10,.1)
> levs = np.arange(-5,5,.1)
> xticks = [1,2,5,10,20,50,100,200,500,1000,2000,5000]
> yticks = [1,2,5,10,20,50,100]
>
> x = np.arange(1,10000,1)
>
> P.figure(figsize=(8,8))
> CS = P.contourf(xaxis,yaxis,diff,levs)
> P.xlabel('\nCAPE')
> P.ylabel('0-6 km Shear')
> P.xlim(0,3)
> P.ylim(0,2)
> P.xticks(np.log10(xticks),xticks,)
> P.yticks(np.log10(yticks),yticks,)
> P.plot(np.log10(x),(np.log10(10000/x)),color='black', linewidth=2)
> P.colorbar(drawedges=False, orientation='horizontal')
> P.grid(True)
> P.gca().xaxis.grid(True, which='minor',xdata=xticks,ydata=yticks)
> P.title('Difference\nCentral U.S. Normalized Frequency Distribution')
> P.savefig('USDIFFtest.png',dpi = 200)
>
From: Patrick M. <mar...@gm...> - 2008年08月23日 14:49:38
Greetings,
I'm having considerable difficulties in getting the axes grid to display
they way I would like it to. Basically, I'm wanting to grid to be shown for
all of the x/y-ticks displayed, but only an irregular number show up. What
I'm wanting to know is if my code is wrong or am I'm completely overlooking
something. My code is below and an image can be found at
http://forwarn.org/images/USDIFFtest.png.
Also, I might as well ask...is there a way to manually specify the labels
that are displayed on the colorbar? For instance, in the example below, my
values range from -5 to 4...how would I go about making sure the last 5 was
included in the colorbar? I'll admit I haven't looked into this much as of
now since the first question was / is more pressing.
Thanks!
-Patrick Marsh
from __future__ import division
import numpy as np
import pylab as P
import copy
def open_text(REGION,FIELD):
#
#
#
 global DATAPATH1
 global DATAPATH2
 xaxis1,yaxis1,freq1 = np.loadtxt(DATAPATH1+'bin_CUR_%s_%s.txt' % (REGION,
FIELD), unpack=True)
 xaxis2,yaxis2,freq2 = np.loadtxt(DATAPATH2+'bin_FUT_%s_%s.txt' % (REGION,
FIELD), unpack=True)
 return(xaxis1,yaxis1,freq1,xaxis2,yaxis2,freq2)
if __name__ == '__main__':
#Main Program
 TIME = 'CUR'
 REGION = 'PLAINS'
 FIELD = 'CAPE-SHR6'
# PATHS TO THE INPUT (DATA) AND OUTPUT (IMAGES) DIRECTORIES
 DATAPATH1 = 'E:/RESEARCH/CCSM_OUTPUT/CURRENT/BIN/'
 DATAPATH2 = 'E:/RESEARCH/CCSM_OUTPUT/FUTURE/BIN/'
 IMAGEPATH = 'E:/RESEARCH/IMAGES/%s/%s/%s/' % (REGION, TIME, FIELD)
 xaxis1,yaxis1,freq1,xaxis2,yaxis2,freq2 = open_text(REGION, FIELD)
# TRANSFORM INTO THE CORRECT FORMAT
 xaxis1 = xaxis1.reshape(51,-1).T
 yaxis1 = yaxis1.reshape(51,-1).T
 freq1 = freq1.reshape(51,-1).T
 freq2 = freq1.reshape(51,-1).T
 freq1 = freq1 / (12 * 12 * 20) # (12*12*20 for PLAINS).....(29*43*20
for EUR)
 freq2 = freq2 / (12 * 12 * 20) # (12*12*20 for PLAINS).....(29*43*20
for EUR)
 diff = freq1 - freq2
 xaxis = np.log10(xaxis1)
 yaxis = np.log10(yaxis1)
# xaxis = xaxis1
# yaxis = yaxis1
# levs = np.arange(0,10,.1)
 levs = np.arange(-5,5,.1)
 xticks = [1,2,5,10,20,50,100,200,500,1000,2000,5000]
 yticks = [1,2,5,10,20,50,100]
 x = np.arange(1,10000,1)
 P.figure(figsize=(8,8))
 CS = P.contourf(xaxis,yaxis,diff,levs)
 P.xlabel('\nCAPE')
 P.ylabel('0-6 km Shear')
 P.xlim(0,3)
 P.ylim(0,2)
 P.xticks(np.log10(xticks),xticks,)
 P.yticks(np.log10(yticks),yticks,)
 P.plot(np.log10(x),(np.log10(10000/x)),color='black', linewidth=2)
 P.colorbar(drawedges=False, orientation='horizontal')
 P.grid(True)
 P.gca().xaxis.grid(True, which='minor',xdata=xticks,ydata=yticks)
 P.title('Difference\nCentral U.S. Normalized Frequency Distribution')
 P.savefig('USDIFFtest.png',dpi = 200)
From: Werner H. <wer...@gm...> - 2008年08月23日 05:44:45
Attachments: matplotlib_logscale.py
Hi Mike,
On Freitag, 22. August 2008, Michael Droettboom wrote:
> Can you provide a standalone script to illustrate this problem?
Already provided in the last mail. I've added a second one where you can 
switch between gtk and gtkagg backend.
> I suspect that the position of the text is somehow negative and is
> getting masked away by the log transformation (which is obviously
> undefined for negative numbers).
There are no negative numbers in the example.
the gtk backend still doesn't work.
> Also, have you tried the GtkAgg backend instead? That sees a lot
> more usage, and therefore may not contain this bug.
Just tried gtkagg and it works fine. It even guesses a good minimal 
value for the log range if the plot has negative data. I will switch to 
that backend in my application.
> That said, this case should be handled correctly and probably
> requires a check. 
Regards
Werner
From: Jason G. <jas...@cr...> - 2008年08月23日 04:11:15
Jae-Joon Lee wrote:
> Hi Jason,
> 
> I did made a similar class sometime ago and I'm attaching it just in
> case. I guess it is very similar to yours but I rely on
> matplolib.patches.FancyArrow class to draw the arrow head.
> 
> The circle drawn by scatter() command should be a circle with size s
> (the third argument of the scatter command) in points . It seems that
> it is implemented as a unit circle centered at (0,0) with a transform
> corresponding to the size s (and offset). So you may try something
> like below to calculate the size of the circle in data coord.
> 
> ax = gca()
> p = scatter([0],[0], 500.)
> tr = p.get_transforms()[0] + ax.transData.inverted()
> x1, y1 = tr.transform_point([0,0])
> x2, y2 = tr.transform_point([1,0])
> r = abs(x2 - x1)
> 
> p is a collection object and p.get_transforms() is a list of transforms.
> Note that a circle in the canvas coordinate(?) can be an ellipse in
> data coordinates. So, I guess you'd better do things in the canvas
> coordinates.
> 
> For shortening your path, if you're only concerned with a straight
> line, it should be straight forward. But I guess it would a bit tricky
> to do this for general bezier curves (as in the example that Alan
> linked). I think (but I may be wrong) there is no universal algorithm
> to find the "all" intersecting points of two bezier curves. There may
> be one for between a bezier curve and a circle. And in this case where
> one point is inside the circle and the other is outside, one simple
> way I can think of is to recursively bisect the bezier curve (similar
> to the bisect root finding).
Jae-Joon,
Thank you very much. I am just finishing implementing a working version 
of what I wanted in my ArrowLine class; it now shortens itself by a 
certain number of points (assuming a line, just using a scale 
transformation). However, I use paths for drawing the arrowhead where 
you use patches. I think I like the flexibility your approach offers. 
Do you mind if I include your code in the GPL-licensed Sage, and extend 
it to do this shortening thing that I need? I still haven't decided 
which is ultimately better for what I need (my class or your class), but 
if you're willing to license your class in a compatible way, that 
provides a choice.
Thanks,
Jason
From: Marco A. S. N. <mar...@gm...> - 2008年08月23日 00:47:21
Hi everyone
I'm a matplotlib's beginner user and I had a problem that seems to be
a bug. If I enable the option ps.useafm and I ask for a font that is
not available in my OS, the matplotlib's font manager tries to get a
default font, which is Vera (I don't know how the default font is set
to Vera, since I removed it from the font.serif and font.sans-serif
lists). The problem is that the font manager is getting a ttf file, in
my OS it is located at
/usr/share/fonts/truetype/tf-bitstream-vera/Vera.ttf. Therefore I'm
getting the error:
Could not match Arial, normal, 400. Returning
/usr/share/fonts/truetype/tf-bitstream-vera/Vera.ttf (this line is
showed when I use the option --verbose-helpful)
...
...
...
 File "/usr/lib/python2.5/site-packages/matplotlib/afm.py", line 295,
in __init__
 parse_afm(fh)
 File "/usr/lib/python2.5/site-packages/matplotlib/afm.py", line 281,
in parse_afm
 _sanity_check(fh)
 File "/usr/lib/python2.5/site-packages/matplotlib/afm.py", line 76,
in _sanity_check
 raise RuntimeError('Not an AFM file')
RuntimeError: Not an AFM file
Is this a bug? Shouldn't matplotlib try to get an AFM default font,
rather than a ttf font, in case it cannot find what I'm looking for
(with ps.useafm=True)? In my case I put the font Arial but matplotlib
was not able to find it. Some details: I'm using ubuntu hardy and
matplotlib version 0.98.3. backend PS to generated eps files. My
decision to use AFM is to reduce the file sizes.
Kind regards,
Marco

Showing 5 results of 5

Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.
Thanks for helping keep SourceForge clean.
X





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

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

More information about our ad policies

Ad destination/click URL:

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