在0与着色色调色极性条形图无间断

问题描述 投票:2回答:2

我需要颜色的彩色的圆形的直方图对应于角度。

我发现在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))

这两者产生了错误的解决方案。

python matplotlib pie-chart color-scheme polar-coordinates
2个回答
3
投票

它看起来像the example将需要一些改革。它可以被简化为如下,其中从所述讨论的两个请求的变化是:

  1. 使用不同的颜色表(这里hsv)。
  2. 编码,而不是半径(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()

enter image description here


0
投票

我转换弧度度和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为您的使用。答更新。

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.