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: Maik H. <mai...@b-...> - 2015年04月09日 10:06:38
Hello,
I'm using mpl_toolkits.axisartist.floating_axes.GridHelperCurveLinear
for creating half-polar plots from 180 degree measurements for receive 
sensitivity.
Working with the measurement values itself is no problem if I let the 
values scaling start at zero.
If I use normalized values I can plot it also, but if I transform it 
into the dB scale I got a segfault in this lib.
I provide an example. For my problems I would like to have a solution 
that I can either use r limit from -30 to 0 (f3) or changing the tick 
labels in figure f2.
And by the way is there a possibility that the if i want to plot data in 
the range from 80 to 120, that rlim(80,120) would set the 80 to the 
centerpoint? At the moment I got only a small stripe.
[code]
"""Demo of polar plot of arbitrary theta. This is a workaround for MPL's 
polar plot limitation
to a full 360 deg.
Based on 
http://matplotlib.org/mpl_toolkits/axes_grid/examples/demo_floating_axes.py
get from 
https://github.com/neuropy/neuropy/blob/master/neuropy/scripts/polar_demo.py
TODO: license / copyright
"""
from __future__ import division
from __future__ import print_function
import numpy as np
import matplotlib.pyplot as plt
from matplotlib.transforms import Affine2D
from matplotlib.projections import PolarAxes
from mpl_toolkits.axisartist import angle_helper
from mpl_toolkits.axisartist.grid_finder import MaxNLocator
from mpl_toolkits.axisartist.floating_axes import GridHelperCurveLinear, 
FloatingSubplot
def fractional_polar_axes(f, thlim=(0, 180), rlim=(0, 1), step=(30, 0.2),
 thlabel='theta', rlabel='r', ticklabels=True, 
theta_offset=0):
 """Return polar axes that adhere to desired theta (in deg) and r 
limits. steps for theta
 and r are really just hints for the locators."""
 th0, th1 = thlim # deg
 r0, r1 = rlim
 thstep, rstep = step
 tr_rotate = Affine2D().translate(theta_offset, 0)
 # scale degrees to radians:
 tr_scale = Affine2D().scale(np.pi/180., 1.)
 #pa = axes(polar="true") # Create a polar axis
 pa = PolarAxes
 tr = tr_rotate + tr_scale + pa.PolarTransform()
 theta_grid_locator = angle_helper.LocatorDMS((th1-th0)//thstep)
 r_grid_locator = MaxNLocator((r1-r0)//rstep)
 theta_tick_formatter = angle_helper.FormatterDMS()
 grid_helper = GridHelperCurveLinear(tr,
 extremes=(th0, th1, r0, r1),
 grid_locator1=theta_grid_locator,
 grid_locator2=r_grid_locator,
 
tick_formatter1=theta_tick_formatter,
 tick_formatter2=None)
 a = FloatingSubplot(f, 111, grid_helper=grid_helper)
 f.add_subplot(a)
 # adjust x axis (theta):
 a.axis["bottom"].set_visible(False)
 a.axis["top"].set_axis_direction("bottom") # tick direction
 a.axis["top"].toggle(ticklabels=ticklabels, label=bool(thlabel))
 a.axis["top"].major_ticklabels.set_axis_direction("top")
 a.axis["top"].label.set_axis_direction("top")
 # adjust y axis (r):
 a.axis["left"].set_axis_direction("bottom") # tick direction
 a.axis["right"].set_axis_direction("top") # tick direction
 a.axis["left"].toggle(ticklabels=ticklabels, label=bool(rlabel))
 # add labels:
 a.axis["top"].label.set_text(thlabel)
 a.axis["left"].label.set_text(rlabel)
 # create a parasite axes whose transData is theta, r:
 auxa = a.get_aux_axes(tr)
 # make aux_ax to have a clip path as in a?:
 auxa.patch = a.patch
 # this has a side effect that the patch is drawn twice, and 
possibly over some other
 # artists. So, we decrease the zorder a bit to prevent this:
 a.patch.zorder = -2
 # add sector lines for both dimensions:
 thticks = grid_helper.grid_info['lon_info'][0]
 rticks = grid_helper.grid_info['lat_info'][0]
 for th in thticks[1:-1]: # all but the first and last
 auxa.plot([th, th], [r0, r1], '--', c='grey', zorder=-1)
 for ri, r in enumerate(rticks):
 # plot first r line as axes border in solid black only if it 
isn't at r=0
 if ri == 0 and r != 0:
 ls, lw, color = 'solid', 2, 'black'
 else:
 ls, lw, color = 'dashed', 1, 'grey'
 # From http://stackoverflow.com/a/19828753/2020363
 auxa.add_artist(plt.Circle([0, 0], radius=r, ls=ls, lw=lw, 
color=color, fill=False,
 transform=auxa.transData._b, zorder=-1))
 return auxa
if __name__ == '__main__':
 f1 = plt.figure(facecolor='white', figsize=(16/2.54, 12/2.54), dpi=600)
 a1 = fractional_polar_axes(f1, thlim=(-90, 90),step=(10, 
0.2),theta_offset=90)
 # example spiral plot:
 thstep = 10
 th = np.arange(-90, 90+thstep, thstep) # deg
 rstep = 1/(len(th)-1)
 r = np.arange(0, 1+rstep, rstep)
 a1.plot(th, r, 'b')
 f1.show()
 f2 = plt.figure(facecolor='white', figsize=(16/2.54, 12/2.54), dpi=600)
 a2 = fractional_polar_axes(f2, thlim=(-90, 
90),rlim=(0,30),step=(10, 8),theta_offset=90)
 # example spiral plot:
 r2 = 20 * np.log10(r) +30
 a2.plot(th, r2, 'b')
 f2.show()
 f3 = plt.figure(facecolor='white', figsize=(16/2.54, 12/2.54), dpi=600)
 a3 = fractional_polar_axes(f2, thlim=(-90, 90),rlim=(-30,0), 
step=(10, 8),theta_offset=90)
 # example spiral plot:
 r3 = 20 * np.log10(r)
 a3.plot(th, r2, 'b')
 f2.show()
[\code]
-- 

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