饼图是一种圆形统计图形,它被分成多个切片以说明数字比例。在饼图中,每个切片的弧长与其代表的数量成正比。
饼图是表示民意调查结果的一种流行方式。在本教程中,我们将学习如何绘制饼图。此外,我们将学习如何在 python 中自定义饼图。
让我们开始吧。
创建样本数据
让我们创建一些在绘制饼图时可以使用的示例数据。
labels = 'Cricket' , 'Football' , 'Hockey' , 'F1' sizes = [ 15 , 30 , 45 , 10 ] |
该数据代表了对人们最喜欢的运动的民意调查。
如何绘制饼图?
为了绘制饼图,我们将使用matplotlib。
import matplotlib.pyplot as plt |
要绘制基本饼图,我们需要标签以及与这些标签关联的值。
labels = 'Cricket' , 'Football' , 'Hockey' , 'F1' sizes = [ 15 , 30 , 45 , 10 ] fig1, ax1 = plt.subplots() ax1.pie(sizes, labels = labels) ax1.axis( 'equal' ) plt.show() |
运行上面的代码片段,我们得到以下输出:
请注意,这是一个非常基本的饼图。
现在让我们看看如何自定义饼图并使其看起来更有趣。
在 Python 中自定义饼图
Matplotlib 在绘制饼图时提供了许多自定义选项。让我们一一看看这些。
1.制作一个弹出切片
您可以使用爆炸选项制作饼图弹出窗口的一个或多个切片。
为此,我们声明一个具有爆炸值的数组。爆炸数组指定偏移每个切片的半径的分数。
import matplotlib.pyplot as plt labels = 'Cricket' , 'Football' , 'Hockey' , 'F1' sizes = [ 15 , 30 , 45 , 10 ] explode = ( 0 , 0.1 , 0 , 0 ) fig1, ax1 = plt.subplots() ax1.pie(sizes, explode = explode, labels = labels) plt.show() |
输出 :
让我们尝试一些不同的爆炸值。
import matplotlib.pyplot as plt labels = 'Cricket' , 'Football' , 'Hockey' , 'F1' sizes = [ 15 , 30 , 45 , 10 ] explode = ( 0.4 , 0.2 , 0.2 , 0.2 ) fig1, ax1 = plt.subplots() ax1.pie(sizes, explode = explode, labels = labels) plt.show() |
2.旋转饼图
您可以通过设置strartangle来旋转饼图。
它将饼图的起点从 x 轴逆时针旋转指定的角度值。
让我们看看它的实际效果:
import matplotlib.pyplot as plt labels = 'Cricket' , 'Football' , 'Hockey' , 'F1' sizes = [ 15 , 30 , 45 , 10 ] fig1, ax1 = plt.subplots() explode = ( 0 , 0.1 , 0 , 0 ) ax1.pie(sizes, explode = explode, labels = labels, shadow = True , startangle = 90 ) plt.show() |
输出 :
import matplotlib.pyplot as plt labels = 'Cricket' , 'Football' , 'Hockey' , 'F1' sizes = [ 15 , 30 , 45 , 10 ] fig1, ax1 = plt.subplots() explode = ( 0 , 0.1 , 0 , 0 ) ax1.pie(sizes, explode = explode, labels = labels, shadow = True , startangle = 45 ) plt.show() |
3. 显示百分比
您还可以使用以下代码行显示每个切片的百分比:
import matplotlib.pyplot as plt labels = 'Cricket' , 'Football' , 'Hockey' , 'F1' sizes = [ 15 , 30 , 45 , 10 ] fig1, ax1 = plt.subplots() explode = ( 0 , 0.1 , 0 , 0 ) ax1.pie(sizes, explode = explode, labels = labels,autopct = '%1.1f%%' , shadow = True , startangle = 90 ) plt.show() |
输出 :
4. 自定义颜色
Matplotlib 为您提供发挥创意的选项,让您的饼图看起来尽可能充满活力。
要更改饼图的颜色,请使用以下代码行。
import matplotlib.pyplot as plt labels = 'Cricket' , 'Football' , 'Hockey' , 'F1' sizes = [ 15 , 30 , 45 , 10 ] colors = ( "orange" , "cyan" , "brown" , "grey" ) fig1, ax1 = plt.subplots() explode = ( 0 , 0.1 , 0 , 0 ) ax1.pie(sizes, colors = colors, explode = explode, labels = labels,autopct = '%1.1f%%' , shadow = True , startangle = 90 ) plt.show() |
这里我们声明了要在列表中使用的 4 种颜色。然后我们在绘制饼图时将该列表作为参数传递。
输出如下:
5. 显示颜色代码
除了饼图之外,您还可以显示一个包含饼图配色方案的框。当饼图中有很多切片时,这尤其有用。
要显示颜色代码,请使用以下代码片段:
import matplotlib.pyplot as plt labels = 'Cricket' , 'Football' , 'Hockey' , 'F1' sizes = [ 15 , 30 , 45 , 10 ] colors = ( "orange" , "cyan" , "brown" , "grey" ) fig1, ax1 = plt.subplots() explode = ( 0 , 0.1 , 0 , 0 ) ax1.pie(sizes, colors = colors, explode = explode, labels = labels,autopct = '%1.1f%%' , shadow = True , startangle = 90 ) patches, texts, auto = ax1.pie(sizes, colors = colors, shadow = True , startangle = 90 ,explode = explode, autopct = '%1.1f%%' ) plt.legend(patches, labels, loc = "best" ) plt.show() |
输出 :
结论
本教程介绍如何使用 Matplotlib 在 Python 中绘制和自定义饼图。希望您和我们一起学习愉快。要查看 matplotlib 的官方文档,请使用此链接。