2 回答
TA贡献1810条经验 获得超5个赞
看起来这个例子需要一些大修。可以简化如下,其中从问题中请求的两个更改是:
使用不同的颜色图(此处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()
TA贡献1943条经验 获得超7个赞
我将弧度转换为度数并除以 360。要将弧度转换为度数,我使用math.degrees().
import math
# Use custom colors and opacity
for th, bar in zip(theta, bars):
bar.set_facecolor(plt.cm.hsv(math.degrees(th)/360))
bar.set_alpha(0.8)
编辑正如我在评论中提到的,您提供的示例使用hsv颜色映射而不是您使用的颜色映射jet。答案已更新。
添加回答
举报