2012-11-28 82 views
6

我有一個特定部分的極座標圖,我想以紅色完全着色(它是在兩條紅線之間標記的部分)是否有函數將顏色部分或者是有可能使用補丁集合獲得了堅實的環區Python:將環形扇區或楔形圖添加到極地圖

enter image description here

這裏是我的腳本:??

from pylab import * 
import matplotlib.pyplot as plt 
import numpy as np 
import pylab 
from matplotlib.projections import PolarAxes 



############################################################################### 
############################################################################### 


fig = figure() 
ax = fig.add_subplot(111, projection = 'polar') 


subplot(111,projection='polar') 
theta = arange(1000)*2*pi/1000. 

plot(theta,0.25*ones(1000),'m') #A to B Circle 
plot(theta, 0.65*ones(1000), 'm') # B to C Circle 
plot([0, 0],[0.25,0.65],'m') # A to B 0 degrees line 
plot([pi/4.,pi/4.],[0.25, 0.65], 'm') # A to B 45 degrees line 
plot([pi/2, pi/2.],[0.25, 0.65], 'm') # A to B 90 degrees line 
plot([3*pi/4.,3*pi/4],[0.25, 0.65], 'm') # A to B 135 degrees line 

plot([pi,pi],[0.25,0.65],'m') # A to B 180 degrees line 
plot([5*pi/4,5*pi/4],[0.25, 0.65], 'm') # A to B 225 degrees line 
plot([3*pi/2,3*pi/2],[0.25, 0.65], 'm') # A to B 270 degrees line 
plot([7*pi/4,7*pi/4],[0.25, 0.65], 'm') # A to B 315 degrees line 

plot([2*pi,2*pi],[0.25,0.65],'m') # A to B 360 degrees line 

plot([0, 0],[0.65,1],'m') # B to C 0 degrees line 
plot([pi/6,pi/6],[0.65, 1], 'm') # B to C 30 degrees line 
plot([pi/3,pi/3.],[0.65,1], 'm') # B to C 60 degrees line 
plot([pi/2,pi/2],[0.65,1], 'm') # B to C 90 degrees line 

plot([2*pi/3,2*pi/3],[0.65,1],'m') # B to C 120 degrees line 
plot([5*pi/6,5*pi/6],[0.65,1], 'm') # B to C 150 degrees line 
plot([pi,pi],[0.65,1], 'm') # B to C 180 degrees line 
plot([7*pi/6,7*pi/6],[0.65,1], 'm') # B to C 210 degrees line 

plot([4*pi/3,4*pi/3],[0.65,1],'r', linewidth = 5) # B to C 240 degrees line 
plot([3*pi/2,3*pi/2],[0.65,1], 'r', linewidth = 5) # B to C 270 degrees line 
plot([5*pi/3,5*pi/3],[0.65, 1], 'm') # B to C 300 degrees line 
plot([11*pi/6,11*pi/6],[0.65,1], 'm') # B to C 330 degrees line 

plot([2*pi,2*pi],[0.65,1],'m') # B to C 360 degrees line 




#patches = [Wedge((0,0), 1, 4*pi/3, 3*pi/2)] 
#p = PatchCollection(patches) 
#ax.add_collection(p) 

rgrids((1,1),('','')) 


ax.set_theta_zero_location("N") 
ax.set_theta_direction('clockwise')   

show() 

回答

1

楔形似乎是辦法去,但默認情況下,它也會轉變爲極座標阿泰。你可以給楔形的軸轉換,這可以視覺上工作,但如果你想根據數據繪製楔形圖,就很難。

這可能做過這樣:

ax.add_artist(Wedge((.5,.5), 0.53, 180, 215, width=0.2, transform=ax.transAxes, color='red')) 

enter image description here