我需要使用与角度对应的颜色为圆形直方图着色。
我在 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))
两者都会产生错误的解决方案。
森栏
杨__羊羊
相关分类