文章目录

一、代码段讲解
1. theta = np.linspace(0.0, 2 * np.pi, N , endpoint=False)
这是一个生成圆形上的点的代码。np.linspace(0.0, 2 * np.pi, N , endpoint=False)生成了从0 00到2 π 2π2π,共N个等差数列的数字,不包含2π,这些数字将被用来表示圆上的每一个点的极角(弧度制)。
2. ax = plt.subplot(111,projection='polar')
这行代码是创建了一个极坐标系子图,把整个图分为1行1列,这个子图占据整个图的全部空间(111)。projection='polar'用于指定子图的投影方式为极坐标系。
bars = ax.bar(theta,radii,width=width,bottom=0.0)
这一行代码中,ax.bar() 函数是在创建一个极径图形,其中:
- theta 是弧度制的角度数组,它定义了每个扇形的中心角。
- radii 是半径数组,它定义了每个扇形的半径大小。
- width 是扇形的宽度。
- bottom 是底部半径,它控制扇形与图形底部的距离。
此函数返回一个 bar 对象的数组,每个扇形都被创建为一个单独的 bar 对象。
3. bar.set_facecolor(plt.cm.viridis(r / 10.))
这行代码是在设置柱状图的颜色。其中 bar 是某个柱状图,plt.cm.viridis 是一种颜色映射(colormap),r / 10.表示映射的颜色的程度。将r / 10. 代入颜色映射函数得到的颜色,最后用 set_facecolor 函数设置给柱状图的颜色。
为什么10后面会有一个“.”?
这个“.”是用来强制将 r/10 这个表达式结果从整数转换为浮点数的。
4. bar.set_alpha(0.5)
for r,bar in zip(radii,bars):
bar.set_facecolor(plt.cm.viridis(r / 10))
bar.set_alpha(0.5)
plt.show()
zip()函数的用法?
zip(radii,bars) 函数将两个序列合并成一个元组列表,并将相同位置的元素组合成一个元组。例如:
radii = [1,2,3,4,5]
bars = ['a','b','c','d','e']
zip(radii,bars) = [(1,'a'), (2,'b'), (3,'c'), (4,'d'), (5,'e')]
bar.set_alpha(0.5)
set_alpha()是matplotlib中设置图形透明度的函数。透明度是0~1之间的数字,0表示完全透明,1表示完全不透明。
二、附录
import numpy as np
import matplotlib.pyplot as plt
N = 20
theta = np.linspace(0.0, 2 * np.pi, N , endpoint=False)
radii = 10 * np.random.rand(N)
width = np.pi /8 * np.random.rand(N)
ax = plt.subplot(111,projection='polar')
bars = ax.bar(theta,radii,width=width,bottom=0)
for r,bar in zip(radii,bars):
bar.set_facecolor(plt.cm.viridis(r / 10))
bar.set_alpha(0.5)
plt.show()
版权声明:本文为m0_51143578原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。