趋近智
通过示例数据制作条形图、直方图和饼图。这种动手操作的体验将帮助你巩固对每种 Matplotlib 图表类型使用时机和方法的理解。
首先,请确保已导入 Matplotlib,通常使用以下标准约定:
import matplotlib.pyplot as plt
import numpy as np # 我们将使用 NumPy 生成一些示例数据
条形图非常适合比较不同类别之间的数量。假设我们想可视化一个小杂货摊中不同类型水果的销售数量。
数据: 假设我们有以下销售数据:
步骤:
plt.bar() 函数,传入 x 轴的类别和 y 轴的值。plt.xlabel()、plt.ylabel() 和 plt.title() 使图表易于理解。plt.show()。代码:
import matplotlib.pyplot as plt
# 1. 准备数据
fruit_names = ['Apples', 'Oranges', 'Bananas', 'Grapes']
units_sold = [50, 35, 65, 42]
# 2. 创建条形图
plt.figure(figsize=(6, 4)) # 可选:调整图表大小
plt.bar(fruit_names, units_sold, color='#339af0') # 使用蓝色系的颜色
# 3. 添加标签和标题
plt.xlabel('水果类型')
plt.ylabel('销售数量')
plt.title('水果销售比较')
plt.xticks(rotation=45) # 如果 x 轴标签重叠,则旋转
plt.tight_layout() # 调整布局以防止标签重叠
# 4. 显示图表
plt.show()
运行此代码将生成一个条形图,显示每种水果的销售情况,从而轻松看出香蕉的销量最高。
挑战: 尝试修改上述代码,使用 plt.barh() 创建一个水平条形图。请记住相应地切换参数并调整标签(plt.xlabel 变为“销售数量”,plt.ylabel 变为“水果类型”)。
直方图通过将数据分组到“箱”(bins)中并显示每个箱中观测值的频率,帮助我们理解单个数值变量的分布情况。让我们可视化一个班级的考试分数分布。
数据: 我们将使用 NumPy 生成一些随机考试分数来模拟分布。假设分数为 100 分制,并且大致服从均值为 75 的正态分布。
步骤:
np.random.normal() 创建一个分数数组。plt.hist(),传入数据并可选地指定箱的数量,或者让 Matplotlib 自行决定。plt.show()。代码:
import matplotlib.pyplot as plt
import numpy as np
# 1. 生成示例数据 (例如,100 个考试分数)
np.random.seed(42) # 为确保结果可重现
exam_scores = np.random.normal(loc=75, scale=10, size=100)
# 确保分数在实际范围内 (例如,0-100)
exam_scores = np.clip(exam_scores, 0, 100)
# 2. 创建直方图
plt.figure(figsize=(7, 5))
plt.hist(exam_scores, bins=10, color='#51cf66', edgecolor='black') # 使用 10 个箱,绿色
# 3. 添加标签和标题
plt.xlabel('考试分数')
plt.ylabel('学生数量')
plt.title('考试分数分布')
# 4. 显示图表
plt.show()
这段代码将生成一个直方图,显示在特定分数范围(即箱)内有多少学生得分。你可以通过改变 bins 参数(例如 bins=5,bins=20)来试着调整,看看它如何影响分布的呈现。
饼图用于显示整体的比例。让我们可视化一个学生每月开支的百分比构成。
数据: 假设开支分类如下:
步骤:
plt.pie(),传入值和标签。使用 autopct 在扇区上显示百分比。plt.title()。添加 plt.axis('equal') 以确保饼图为圆形。plt.show()。代码:
import matplotlib.pyplot as plt
# 1. 准备数据
expense_categories = ['Rent', 'Food', 'Transport', 'Utilities', 'Entertainment']
percentages = [40, 25, 15, 10, 10]
colors = ['#748ffc', '#ff922b', '#51cf66', '#fcc419', '#f06595'] # 靛蓝色, 橙色, 绿色, 黄色, 粉色
# 2. 创建饼图
plt.figure(figsize=(6, 6))
plt.pie(percentages, labels=expense_categories, colors=colors,\n autopct='%1.1f%%', # 将百分比格式化为一位小数
startangle=90) # 从顶部(90度)开始绘制第一个扇区
# 3. 添加标题并确保为圆形
plt.title('每月开支细分')
plt.axis('equal') # 相等纵横比确保饼图为圆形
# 4. 显示图表
plt.show()
这会生成一个饼图,说明学生预算是如何分配的。虽然它在显示简单比例时很有用,但请记住,当类别过多或比例非常相似时,饼图会变得难以阅读。对于比较而言,条形图通常是更好的选择。
你现在已经练习了本章涵盖的基本图表类型:用于比较的条形图、用于分布的直方图和用于比例的饼图。你可以随意修改这些示例中的样本数据或参数,看看图表如何变化。这种尝试是培养直觉的好方法,能帮助你判断哪种图表最适合不同类型的数据和分析问题。
这部分内容有帮助吗?
© 2026 ApX Machine Learning用心打造