在极坐标中填充两条线之间的区域
我想在两条没有封闭的线之间填充颜色,但我发现用 plt.fill_between 和 plt.polar 这个组合不太行。有没有什么好的建议?下面是我用来画这些线的代码:
import matplotlib.pyplot as plt
import numpy as np
inner_offset = 0.05
r = np.arange(inner_offset,1. + inner_offset,1./720.)
theta = np.arange(0.,2.,1./360.)*np.pi
plt.polar(theta/2.,r) #first part of spiral
plt.polar((theta/2.)+(np.pi/3.),r)
plt.show()
1 个回答
8
因为你的半径("y"
)是一样的,所以你可以使用 plt.fill_betweenx()
这个函数:
import matplotlib.pyplot as plt
import numpy as np
plt.figure()
inner_offset = 0.05
r = np.arange(inner_offset,1. + inner_offset,1./720.)
theta = np.arange(0.,2.,1./360.)*np.pi
c1 = plt.polar(theta/2.,r, color='b')[0]
x1 = c1.get_xdata()
y1 = c1.get_ydata()
c2 = plt.polar((theta/2.)+(np.pi/3.),r, color='y')[0]
x2 = c2.get_xdata()
y2 = c2.get_ydata()
plt.fill_betweenx(y1, x1, x2, color='g')
plt.show()
这样就可以得到: