Python之matplotlib 基础五:绘制饼状统计图
代码:
import csv
import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
from collections import Counterimport matplotlib
matplotlib.use('TkAgg') # 设置后端为 TkAgg,使得程序可以在 Tkinter 窗口中显示
# 使用xkcd风格,使得图形更有漫画风格
# plt.xkcd()
# 设置支持 CJK 字符的字体(例如:微软雅黑),保证图形中的中文能够正确显示
matplotlib.rcParams['font.family'] = 'Microsoft YaHei'# plt.style.use('ggplot')
plt.style.use("fivethirtyeight")slices = [59219, 55466, 47544, 36443, 35917]
labels = ['JavaScript', 'HTML/CSS', 'SQL', 'Python', 'Java']
explode = [0, 0, 0, 0.1, 0.2]plt.pie(slices, labels=labels, explode=explode, shadow=True,startangle=90, autopct='%1.1f%%',wedgeprops={'edgecolor': 'black'})plt.title("饼状图 Pie Chart")
plt.tight_layout()
plt.savefig("饼状图")
plt.show()
Matplotlib --Pie Chart
这段代码使用了 Python 的 Matplotlib 库来绘制一个 饼状图 (Pie Chart),并且设置了自定义的样式、字体支持和其他图形特性。
1. 导入必要的库
import csv
import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
from collections import Counter
csv
:用于处理 CSV 文件的模块,虽然在这段代码中并未使用,但一般用于读取和写入 CSV 文件。matplotlib.pyplot
:Matplotlib 库的一个子模块,提供绘制图形(如饼状图、折线图等)的函数。numpy
:用于科学计算和处理数组,虽然没有直接使用在这段代码中,但通常用于数据处理。pandas
:用于数据分析和处理,通常用于操作 DataFrame 类型的数据。collections.Counter
:用于计数的工具,通常用于计算元素出现的频率。
2. 设置 Matplotlib 后端和字体
import matplotlib
matplotlib.use('TkAgg') # 设置后端为 TkAgg,使得程序可以在 Tkinter 窗口中显示
matplotlib.use('TkAgg')
:设置 Matplotlib 使用TkAgg
后端渲染图形,这样图形可以在Tkinter
窗口中显示出来。如果不设置此项,可能无法在某些环境下显示图形(尤其是在某些操作系统或 IDE 中)。
# 设置支持 CJK 字符的字体(例如:微软雅黑),保证图形中的中文能够正确显示
matplotlib.rcParams['font.family'] = 'Microsoft YaHei'
matplotlib.rcParams['font.family'] = 'Microsoft YaHei'
:设置图表中文字的字体为 “Microsoft YaHei”,这是为了支持 CJK 字符(如中文)的显示。如果不设置字体,中文字符可能会显示为乱码。
plt.style.use("fivethirtyeight")
plt.style.use("fivethirtyeight")
:选择一个预设的 Matplotlib 风格,这里选择的是fivethirtyeight
风格,它使图形呈现出类似 “FiveThirtyEight” 网站风格的外观(简洁、现代的设计)。
3. 饼状图数据和绘制设置
slices = [59219, 55466, 47544, 36443, 35917]
labels = ['JavaScript', 'HTML/CSS', 'SQL', 'Python', 'Java']
explode = [0, 0, 0, 0.1, 0.2]
slices
:包含了饼状图的每个部分的大小,表示每种技术的使用人数或比例。labels
:这些是饼状图各个部分的标签(即技术名称)。explode
:用来设置各个部分的突出效果。这里将Python
和Java
的部分设置为突出显示,0.1
和0.2
分别表示突出显示的程度。
plt.pie(slices, labels=labels, explode=explode, shadow=True,startangle=90, autopct='%1.1f%%',wedgeprops={'edgecolor': 'black'})
-
plt.pie()
:这个函数用于绘制饼状图,接受多个参数。slices
:各部分的大小。labels
:各部分的标签。explode
:突出显示部分的设置。shadow=True
:给饼状图添加阴影,使其更具立体感。startangle=90
:饼状图从 90 度角开始绘制(逆时针方向)。autopct='%1.1f%%'
:自动显示每个部分的百分比,保留 1 位小数。wedgeprops={'edgecolor': 'black'}
:设置每个部分的边框颜色为黑色,使饼状图的每个区域更有分隔感。
4. 设置标题与布局
plt.title("饼状图 Pie Chart")
plt.title("饼状图 Pie Chart")
:为饼状图设置标题,显示为中文和英文。
plt.tight_layout()
plt.tight_layout()
:自动调整图形布局,使得标题和标签不会与图形区域重叠。
5. 保存并显示图形
plt.savefig("饼状图")
plt.savefig("饼状图")
:将绘制的图形保存为文件,这里保存的文件名为 “饼状图”。默认保存为 PNG 格式,但可以通过指定文件扩展名来改变格式(例如:饼状图.png
)。
plt.show()
plt.show()
:显示绘制的饼状图。此行代码会弹出一个窗口,显示图形。