想用 Python画圆环?这绝对没问题,而且比你想象的还要简单!今天我就手把手教你,保证你一看就明白,立马就能上手。
先说说为啥要画圆环。你可能觉得画个圆环有啥用?用处可大了!数据可视化,设计炫酷的UI界面,甚至是制作游戏素材,圆环都能派上大用场。而且,学会了画圆环,你就能更好地掌握 Python 的绘图技巧,以后画其他图形也会更轻松。
咱们先从最基础的开始。要用 Python 画图,离不开一个强大的库:Matplotlib。如果你还没安装,赶紧用 pip install matplotlib
命令装上。
有了 Matplotlib,画圆环就变得像搭积木一样简单。下面是第一种方法,直接使用 Matplotlib 的 Circle
和 Axes.add_artist
方法:
“`python
import matplotlib.pyplot as plt
import matplotlib.patches as patches
创建一个 figure 和 axes 对象
fig, ax = plt.subplots(1)
圆环的中心点坐标
center_x = 0.5
center_y = 0.5
外圆半径
outer_radius = 0.4
内圆半径
inner_radius = 0.2
创建外圆
outer_circle = patches.Circle((center_x, center_y), radius=outer_radius, facecolor=’none’, edgecolor=’blue’, linewidth=2)
创建内圆
inner_circle = patches.Circle((center_x, center_y), radius=inner_radius, facecolor=’white’, edgecolor=’none’) # 内圆填充白色,遮盖部分外圆
将圆添加到 axes 对象中
ax.add_artist(outer_circle)
ax.add_artist(inner_circle)
设置坐标轴范围,保证圆环显示完整
ax.set_xlim(0, 1)
ax.set_ylim(0, 1)
去掉坐标轴显示
ax.axis(‘off’)
显示图形
plt.show()
“`
这段代码的核心在于创建两个圆,一个外圆和一个内圆。内圆的颜色设置成白色(或者其他你喜欢的颜色,只要和背景色相同就行),实际上就是把外圆的一部分给遮盖住了,这样就形成了一个圆环的效果。怎么样,是不是很简单?
稍微解释一下:patches.Circle
用于创建一个圆形的 patch 对象,需要指定圆心坐标 (center_x, center_y)
和半径 radius
。facecolor
设置填充颜色,edgecolor
设置边框颜色,linewidth
设置边框宽度。ax.add_artist
用于将 patch 对象添加到 axes 对象中。
当然,画圆环的方法不止这一种。还有一种更灵活的方法,那就是使用 Matplotlib 的 pie
函数。虽然 pie
函数主要是用来画饼图的,但稍微改动一下,也能用来画圆环。
“`python
import matplotlib.pyplot as plt
创建一个 figure 和 axes 对象
fig, ax = plt.subplots()
数据,这里只需要一个数值,代表圆环的占比
data = [1]
颜色,外圆环的颜色
colors = [‘skyblue’]
设置内圆半径,这里设置为 0.7,表示内圆半径是外圆半径的 0.7 倍
inner_radius = 0.7
使用 pie 函数画饼图,设置 wedgeprops 参数来控制圆环的内外半径
ax.pie(data, colors=colors, radius=1, wedgeprops=dict(width=1-inner_radius, edgecolor=’w’))
添加一个白色的圆,覆盖掉中间的部分,形成圆环
centre_circle = plt.Circle((0,0),inner_radius,color=’white’, fc=’white’,linewidth=0)
fig.gca().add_artist(centre_circle)
设置坐标轴比例为 equal,保证圆环是正圆
ax.axis(‘equal’)
去掉坐标轴显示
ax.axis(‘off’)
显示图形
plt.show()
“`
这个方法的关键在于 wedgeprops
参数。通过设置 width
,可以控制圆环的宽度。width
的值越大,圆环就越窄。
我个人更喜欢用第一种方法,因为它更直观,更容易理解。而且,如果你需要画多个圆环,或者需要对圆环进行更复杂的定制,第一种方法也更灵活。
但是,pie
函数也有它的优势。如果你需要画一个带有缺口的圆环,比如一个进度条,那么 pie
函数就更方便了。你可以通过设置 startangle
和 counterclock
参数来控制缺口的位置和方向。
举个例子,画一个从 90 度开始,顺时针方向,占据 75% 的圆环:
“`python
import matplotlib.pyplot as plt
创建一个 figure 和 axes 对象
fig, ax = plt.subplots()
数据,这里需要两个数值,分别代表圆环的占比和缺口的占比
data = [0.75, 0.25]
颜色,外圆环的颜色
colors = [‘skyblue’, ‘white’] # 缺口部分用白色填充
设置内圆半径
inner_radius = 0.7
使用 pie 函数画饼图,设置 wedgeprops 参数和 startangle 参数
ax.pie(data, colors=colors, radius=1, startangle=90, counterclock=False, wedgeprops=dict(width=1-inner_radius, edgecolor=’w’))
添加一个白色的圆,覆盖掉中间的部分,形成圆环
centre_circle = plt.Circle((0,0),inner_radius,color=’white’, fc=’white’,linewidth=0)
fig.gca().add_artist(centre_circle)
设置坐标轴比例为 equal,保证圆环是正圆
ax.axis(‘equal’)
去掉坐标轴显示
ax.axis(‘off’)
显示图形
plt.show()
“`
看到了吗?只需要设置 startangle=90
和 counterclock=False
,就可以让圆环从 90 度开始,顺时针方向绘制。data
列表中的两个数值分别代表圆环的占比和缺口的占比。缺口部分我们用白色填充,这样就形成了一个带有缺口的圆环。
除了颜色,你还可以对圆环的样式进行更多的定制。比如,你可以设置圆环的边框颜色、边框宽度、填充图案等等。这些都可以通过修改 patches.Circle
对象或者 wedgeprops
参数来实现。
Matplotlib 的强大之处就在于它的灵活性。你可以通过各种参数的组合,创造出各种各样的图形效果。
最后,我想说的是,学习 Python 绘图,最重要的是动手实践。不要只是看代码,要自己动手敲一遍,改一改,看看会发生什么。只有通过实践,你才能真正掌握这些技巧。
希望这篇文章能帮助你学会用 Python画圆环。下次再见!