Matplotlib 极区图,极区图由一系列呈放射状延申的区域组成,其中每块区域占据一定的角度。因此若要用极区图表示两个不同的数值,分别指定它们在极区图中所占的分量:每块区域的半径r
和它所占的角度,就是极坐标(r,θ)
。
阅读本章内容可以先了解极客教程的前面几个章节介绍的Matplotlib
相关知识:等值线图,饼图,条形图,直方图,线性图
从图表的角度来看,可以将极区图看作兼有饼图和条状图特点的图表,之所以说它像饼图,是因为每个区域的角度所表示的是其所属类别占全部类别的比例;说它像饼图,是因为半径的长度表示某一类别的数值大小。可以参考后面生成的图形。
我们经常使用的是标准颜色集,每种颜色用单一颜色编码来表示(如:r
表示红色)。事实上我们可以自定义任意的颜色列表,方法是指定颜色列表,其中每个元素为字符串类型的RGB
编码,格式为#rrggbb
,如下所示:
制作极区图需要使用bar()
函数,把角度θ
列表和半径列表传递给它,如下所示:
import matplotlib.pyplot as plt
import numpy as np
N = 8
'''生成角度值'''
theta = np.arange(0.,2*np.pi,2*np.pi/N)
'''生成半径值'''
radii = np.array([4,7,5,3,1,5,6,7])
'''定义轴类型'''
plt.axes([0.025,0.025,0.95,0.95],polar=True)
'''定义颜色集,这里使用RGB值,当然也可以使用颜色名称'''
colors = np.array(['#4bb2c5','#c5b47f','#EAA228','#579575','#839557','#958c12','#953579','#4b5de4'])
'''bar()函数要求传入角度和半径作为参数'''
bars = plt.bar(theta,radii,width=(2*np.pi/N),bottom=0.0,color=colors)
plt.show()
输出结果如下,直接使用RGB
值得到的极区图:
如上所示,我们定义了一列##rrggbb
格式的颜色值,我们也可以用颜色的实际名称来表示颜色,如下所示:
import matplotlib.pyplot as plt
import numpy as np
N = 8
'''生成角度值'''
theta = np.arange(0.,2*np.pi,2*np.pi/N)
'''生成半径值'''
radii = np.array([4,7,5,3,1,5,6,7])
'''定义轴类型'''
plt.axes([0.025,0.025,0.95,0.95],polar=True)
'''定义颜色集,这里使用颜色名称,当然也可以使用RGB值'''
colors = np.array(['lightgreen','darkred','navy','brown','violet','plum','yellow','darkgreen'])
'''bar()函数要求传入角度和半径作为参数'''
bars = plt.bar(theta,radii,width=(2*np.pi/N),bottom=0.0,color=colors)
plt.show()
输出结果如下,使用颜色名称得到的极区图:
极客教程相关文章推荐:
Matplotlib 等值线图
Matplotlib 饼图
Matplotlib 水平条形图
Matplotlib 条形图
Matplotlib 直方图
Matplotlib 线性图