使用Matplotlib在Python中创建环形图
环形图是一种圆形图表,以圆形的方式显示数据的相对表示。环形图和饼图看起来相似,但环形图的中心有一个空洞,而饼图则没有。可以使用Matplotlib为包含不同比例的各种分组的数据集创建环形图。在本文中,我们将使用Matplotlib创建一个环形图。
算法
可以使用matplotlib库提供的方法绘制Matplotlib中的环形图。我们可以按照以下算法在Matplotlib中制作环形图。
导入必要的库,包括Matplotlib。
定义要绘制的数据,包括标签和大小。
使用plt.subplots()创建一个图形和轴对象。
使用plt.subplots()的subplot_kw参数将绘图的纵横比设置为相等。
使用ax.pie()的startangle参数设置绘图的起始角度。
使用ax.pie()创建环形图,将大小作为数据传递,并将标签作为labels参数传递。
通过使用plt.Circle()添加内圆,使用ax.legend()添加图例,使用plt.setp()更改字体大小和粗细,以及使用ax.set_title()设置图表标题来自定义图表。
使用plt.show()显示图表。
安装Matplotlib
Matplotlib是Python中的一个数据可视化库,允许你创建各种图表。要安装它,你可以在命令行或终端中键入以下命令。
Pip install matplotlib
创建虚拟数据
要创建环形图,我们需要虚拟数据,可以使用Python中的matplotlib进行可视化。我们创建一个标签列表和一个大小列表,其中包含每个标签类别的相对大小。
labels = ['Apples', 'Bananas', 'Grapes', 'Oranges'] sizes = [25, 30, 15, 30]
创建基本的环形图
我们将使用plt.pie()函数创建环形图。此函数将大小列表作为参数,并创建一个表示每个类别的环形图。
语法
plt.pie(x, explode=None, labels=None, colors=None, autopct=None, pctdistance=0.6, shadow=False, startangle=None, radius=None, counterclock=True, wedgeprops=None, textprops=None, center=(0, 0), frame=False, rotatelabels=False, normalize=None, *, data=None)
传递给plt.pie()函数的参数具有其特定的含义,如下所述:
x - 以值序列的形式绘制的数据。
explode - 一系列值,指定每个扇区的半径偏移分数。
labels - 一系列字符串,用作每个扇区的标签。
colors - 一系列颜色,用于每个扇区。
autopct - 用于格式化百分比文本标签的格式字符串。如果为None,则不显示标签。
pctdistance - 从饼图中心到绘制百分比标签的距离。
shadow - 一个布尔值,指示是否在饼图下方绘制阴影。
startangle - 以度为单位,开始绘制第一个扇区的角度。
radius - 饼图的半径。如果为None,则半径设置为1。
counterclock - 一个布尔值,指示是逆时针绘制扇区还是顺时针绘制扇区。
wedgeprops - 传递给用于创建每个扇区的Wedge类的关键字参数字典。
textprops - 传递给用于创建文本标签的Text类的关键字参数字典。
center - 饼图的中心,作为(x, y)坐标的元组。
frame - 一个布尔值,指示是否在饼图周围绘制框架。
rotatelabels - 一个布尔值,指示是否旋转文本标签。
normalize - 一个布尔值,指示是否在绘图前将数据标准化到100%。
示例
在下面的示例中,我们使用标签和大小列表来创建一个环形图,表示每个标签类别。我们首先使用plt.subplots()函数创建一个图形和轴对象。我们将轴的纵横比设置为“相等”,以确保图表是圆形的。然后,我们使用ax.pie()函数创建一个饼图,楔形宽度为0.5,起始角度为-40。
# Data
import matplotlib.pyplot as plt
labels = ['Apples', 'Bananas', 'Grapes', 'Oranges']
sizes = [25, 30, 15, 30]
# Plot
fig, ax = plt.subplots(figsize=(10, 6), subplot_kw=dict(aspect="equal"))
wedges, texts = ax.pie(sizes, wedgeprops=dict(width=0.5), startangle=-40)
# Inner circle
centre_circle = plt.Circle((0,0),0.70,fc='white')
fig = plt.gcf()
fig.gca().add_artist(centre_circle)
# Add labels
ax.legend(wedges, labels,
title="Fruits",
loc="center left",
bbox_to_anchor=(1, 0, 0.5, 1))
plt.setp(texts, size=12, weight="bold")
ax.set_title("Fruit Distribution")
plt.show()
输出

自定义环形图
我们可以通过更改图表中的表示颜色、字体更改、轴标签更改等来进一步自定义环形图。
示例
要更改图表的颜色,我们可以将颜色列表传递给ax.pie函数的wedge props参数。在下面的示例中,我们将之前的环形图颜色更改为红色、绿色、蓝色和橙色。
import matplotlib.pyplot as plt
# Data
labels = ['Apples', 'Bananas', 'Grapes', 'Oranges']
sizes = [25, 30, 15, 30]
colors = ['red', 'green', 'blue', 'orange']
# Plot
fig, ax = plt.subplots(figsize=(10, 6), subplot_kw=dict(aspect="equal"))
wedges, texts = ax.pie(sizes, wedgeprops=dict(width=0.5, edgecolor='w'), startangle=-40, colors=colors)
# Inner circle
centre_circle = plt.Circle((0,0),0.70,fc='white')
fig = plt.gcf()
fig.gca().add_artist(centre_circle)
# Add labels
ax.legend(wedges, labels,
title="Fruits",
loc="center left",
bbox_to_anchor=(1, 0, 0.5, 1))
plt.setp(texts, size=12, weight="bold")
ax.set_title("Fruit Distribution")
plt.show()
输出

结论
在本文中,我们讨论了如何使用matplotlib创建任何数据的环形图表示,以及环形图和饼图之间的基本区别。Matplotlib是一个数据可视化库,用于以各种图表的形式显示数据。环形图也可以根据特定的数据可视化需求进行自定义。
数据结构
网络
关系数据库管理系统 (RDBMS)
操作系统
Java
iOS
HTML
CSS
Android
Python
C语言编程
C++
C#
MongoDB
MySQL
Javascript
PHP