2013-11-04 64 views
0

有沒有一種方法可以在位置r = 0或r = outer_edge上用'缺口'來裝飾我的極座標/徑向圖?下面是一個例子。通過'缺口'我的意思是紅色和藍色的線在原點和邊緣的情節。 mockup with 'notches'matplotlib:帶有'缺口'的極座標圖

以下代碼可用於生成極座標圖。

import numpy as np 
import matplotlib.pyplot as plt 

data = [-121,87,118,87,109,-139,-112,115,153,-109,-106,-92,75,-98,103,-89, 
    152,114,77,-109,77,107,-77,106,-158,-71,-166,97,144,-166,138,39,130, 
    -71,-76,-82,128,74,-47,94,-119,130,76,-86,-85,108,-78,-96,-113,82, 
    127,-168,72,83,-61,-99,-83,-130,-69,43] 

r = np.arange(0, len(data)) 
ax = plt.subplot(111,polar=True) 
ax.scatter(data,r) 
plt.show() 

回答

1

你可以使用譯註:

plt.annotate(' ',xy=(0, 0), # theta, radius 
      xytext = (-np.pi/10,len(data)/6.), 
      textcoords='data', 
      arrowprops=dict(facecolor='red', shrink=0.05)) 
plt.annotate(' ',xy=(np.pi/4.2, 1.355*max(r)), # theta, radius 
      xytext = (np.pi/4.2, 1.2*max(r)), 
      textcoords='data', 
      arrowprops=dict(facecolor='blue', shrink=0.05)) 

或者你可以使用情節:

rmax = ax.get_rmax() 
theta_startstop = [2*[-np.pi/10],2*[np.pi/4.2]] 
r_startstop = [[0,0.1*rmax],[0.9*rmax,rmax]] 
notchcolor = ['red', 'blue'] 
for i in range(len(r_startstop)): 
    ax.plot(np.array(theta_startstop[i]), np.array(r_startstop[i]), 
      lw=3, c=notchcolor[i]) 
ax.set_rmax(rmax) 

結果將是: enter image description here

+0

這是真棒,謝謝! – dimka