我需要颜色的彩色的圆形的直方图对应于角度。
我发现在matplotlib库的颜色在路上极性散点图,我需要一个例子:https://matplotlib.org/examples/pie_and_polar_charts/polar_scatter_demo.html
但是,这是一个散点图,我需要一个圆形的直方图,我用的是代码从回答这个问题:Circular Histogram for Python
我希望能够改变,以便棒具有从第一图像中的颜色。但作为一个散点图做,返回一个错误ax.bar不采取串色。
下面是圆形的直方图的代码:
import numpy as np
import matplotlib.pyplot as plt
N = 80
bottom = 8
max_height = 4
theta = np.linspace(0.0, 2 * np.pi, N, endpoint=False)
radii = max_height*np.random.rand(N)
width = (2*np.pi) / N
ax = plt.subplot(111, polar=True)
bars = ax.bar(theta, radii, width=width, bottom=bottom)
# Use custom colors and opacity
for r, bar in zip(radii, bars):
bar.set_facecolor(plt.cm.jet(r / 10.))
bar.set_alpha(0.8)
plt.show()
编辑:在情节的最后一部分THETA代半径改变条的颜色,但不会产生在颜色在整个范围内圆的不断变化的配色方案。我试图在意见提出的角度和弧度正火THETA:
bar.set_facecolor(math.degrees(r)/360))
和
bar.set_facecolor(plt.cm.jet(r/2*np.pi))
这两者产生了错误的解决方案。
它看起来像the example将需要一些改革。它可以被简化为如下,其中从所述讨论的两个请求的变化是:
hsv
)。theta
)到颜色的角度(radii
)。需要对没有环路。
import numpy as np
import matplotlib.pyplot as plt
# Fixing random state for reproducibility
np.random.seed(19680801)
# Compute pie slices
N = 20
theta = np.linspace(0.0, 2 * np.pi, N, endpoint=False)
radii = 10 * np.random.rand(N)
width = 2 * np.pi / N
colors = plt.cm.hsv(theta/2/np.pi)
ax = plt.subplot(111, projection='polar')
bars = ax.bar(theta, radii, width=width, bottom=4, color=colors)
plt.show()