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
(16)
2
(8)
3
(4)
4
5
6
(3)
7
(11)
8
(16)
9
(1)
10
(2)
11
(2)
12
(6)
13
(2)
14
(4)
15
(5)
16
(10)
17
(5)
18
19
20
21
(3)
22
23
(12)
24
(7)
25
(1)
26
27
(3)
28
(4)
29
(5)
30
(2)


Showing 1 results of 1

From: Thomas C. <tca...@gm...> - 2015年04月25日 20:20:44
Jesper,
Can you open an issue on this on github. If you are feeling ambitious a
pull request fixing the bug (as you seem to have a good idea of where the
problem is) would also be great!
Tom
On Fri, Apr 24, 2015 at 8:38 AM Jesper Larsen <jes...@gm...>
wrote:
> Hi Matplotlib Users,
>
> When I make wind barbs with rounding enabled and custom barb increments I
> noticed that there were no wind barbs with half barbs above 2 full barbs.
> The reason seems to be a bug in the _find_tails method. The bug is
> illustrated by this small script (_find_tails is a copy of the one in
> matplotlib):
>
> import numpy as np
>
> def _find_tails(self, mag, rounding=True, half=5, full=10, flag=50):
> '''
> Find how many of each of the tail pieces is necessary. Flag
> specifies the increment for a flag, barb for a full barb, and half for
> half a barb. Mag should be the magnitude of a vector (ie. >= 0).
>
> This returns a tuple of:
>
> (*number of flags*, *number of barbs*, *half_flag*, *empty_flag*)
>
> *half_flag* is a boolean whether half of a barb is needed,
> since there should only ever be one half on a given
> barb. *empty_flag* flag is an array of flags to easily tell if
> a barb is empty (too low to plot any barbs/flags.
> '''
>
> #If rounding, round to the nearest multiple of half, the smallest
> #increment
> if rounding:
> mag = half * (mag / half + 0.5).astype(np.int)
>
> num_flags = np.floor(mag / flag).astype(np.int)
> mag = np.mod(mag, flag)
>
> num_barb = np.floor(mag / full).astype(np.int)
> mag = np.mod(mag, full)
>
> half_flag = mag >= half
> empty_flag = ~(half_flag | (num_flags > 0) | (num_barb > 0))
>
> return num_flags, num_barb, half_flag, empty_flag
>
> def main():
> mag = np.arange(0,21,1)
> barb_incs = {'half': 2.57222,
> 'full': 5.14444,
> 'flag': 25.7222}
> print 'With rounding'
> num_flags, num_barb, half_flag, empty_flag = _find_tails(None, mag,
> rounding=True, **barb_incs)
> for i in range(len(mag)):
> print mag[i], num_flags[i], num_barb[i], half_flag[i],
> empty_flag[i]
> print 'Without rounding'
> num_flags, num_barb, half_flag, empty_flag = _find_tails(None, mag,
> rounding=False, **barb_incs)
> for i in range(len(mag)):
> print mag[i], num_flags[i], num_barb[i], half_flag[i],
> empty_flag[i]
>
> if __name__ == '__main__':
> exit(main())
>
> It seems like the error is not present when the barb increments are not
> set. I believe the reason for the bug is the float comparison (half_flag =
> mag >= half) where the value is rounded to a value very close to/identical
> to the 'half' increment. And it seems like python does the right thing when
> the "half" increment is a whole number but not always when it is not.
>
> But in any case the code should probably not depend two floats being equal.
>
> Best regards,
> Jesper
>
> ------------------------------------------------------------------------------
> One dashboard for servers and applications across Physical-Virtual-Cloud
> Widest out-of-the-box monitoring support with 50+ applications
> Performance metrics, stats and reports that give you Actionable Insights
> Deep dive visibility with transaction tracing using APM Insight.
> http://ad.doubleclick.net/ddm/clk/290420510;117567292;y
> _______________________________________________
> Matplotlib-users mailing list
> Mat...@li...
> https://lists.sourceforge.net/lists/listinfo/matplotlib-users
>

Showing 1 results of 1

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 によって変換されたページ (->オリジナル) /