想用 Python画圆环?这绝对没问题,而且比你想象的还要简单!今天我就手把手教你,保证你一看就明白,立马就能上手。

先说说为啥要画圆环。你可能觉得画个圆环有啥用?用处可大了!数据可视化,设计炫酷的UI界面,甚至是制作游戏素材,圆环都能派上大用场。而且,学会了画圆环,你就能更好地掌握 Python 的绘图技巧,以后画其他图形也会更轻松。

咱们先从最基础的开始。要用 Python 画图,离不开一个强大的库:Matplotlib。如果你还没安装,赶紧用 pip install matplotlib 命令装上。

有了 Matplotlib,画圆环就变得像搭积木一样简单。下面是第一种方法,直接使用 MatplotlibCircleAxes.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) 和半径 radiusfacecolor 设置填充颜色,edgecolor 设置边框颜色,linewidth 设置边框宽度。ax.add_artist 用于将 patch 对象添加到 axes 对象中。

当然,画圆环的方法不止这一种。还有一种更灵活的方法,那就是使用 Matplotlibpie 函数。虽然 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 函数就更方便了。你可以通过设置 startanglecounterclock 参数来控制缺口的位置和方向。

举个例子,画一个从 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=90counterclock=False,就可以让圆环从 90 度开始,顺时针方向绘制。data 列表中的两个数值分别代表圆环的占比和缺口的占比。缺口部分我们用白色填充,这样就形成了一个带有缺口的圆环。

除了颜色,你还可以对圆环的样式进行更多的定制。比如,你可以设置圆环的边框颜色、边框宽度、填充图案等等。这些都可以通过修改 patches.Circle 对象或者 wedgeprops 参数来实现。

Matplotlib 的强大之处就在于它的灵活性。你可以通过各种参数的组合,创造出各种各样的图形效果。

最后,我想说的是,学习 Python 绘图,最重要的是动手实践。不要只是看代码,要自己动手敲一遍,改一改,看看会发生什么。只有通过实践,你才能真正掌握这些技巧。

希望这篇文章能帮助你学会用 Python画圆环。下次再见!

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。