0Pricing
Python Academy · 课时

折线图、柱状图与散点图

创建常见图表类型

折线图、柱状图与散点图 是 CoddyKit 上的免费 Python Academy 课时。 这是第 2 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Python Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Python Academy 课程共包含 4 节课。

三种常用图表

大多数数据故事都通过三种图表类型来讲述:

  • 折线图 用于展示有序坐标轴上的趋势,例如时间
  • 柱状图 用于比较类别
  • 散点图 用于展示两个数值变量之间的关系

每种图表都对应坐标区上的一个 Matplotlib 方法。

折线图

折线图按顺序连接各个点。在 Matplotlib 中,它是 ax.plot(x, y)。当 x 轴具有有意义的顺序时,例如表示日期或随时间变化的测量值,请使用它。

折线图背后的数据就是两个并行序列。

months = [1, 2, 3, 4, 5]
sales = [120, 150, 130, 170, 200]
for m, s in zip(months, sales):
    print('Month', m, '->', s)
print('Trend:', 'up' if sales[-1] > sales[0] else 'down')

柱状图

柱状图用于比较离散类别。调用方式是 ax.bar(categories, values)。柱形从零开始,因此高度可以直接比较。

当 x 轴上的位置是标签而不是连续刻度时,请使用柱状图。

fruits = ['apple', 'banana', 'cherry']
counts = [30, 45, 15]
for f, c in zip(fruits, counts):
    bar = '#' * (c // 5)
    print(f.ljust(8), bar, c)

横向柱状图

当类别标签较长时,横向柱状图更易阅读。Matplotlib 提供了 ax.barh(categories, values)。

逻辑完全相同,只是方向发生了变化。

散点图

散点图使用 ax.scatter(x, y) 为每个数据点绘制一个标记。它可以揭示两个数值变量之间的相关性、聚类和离群点。

与折线图不同,各个点之间不会连接。

heights = [150, 160, 170, 180, 190]
weights = [50, 60, 68, 78, 90]
pairs = list(zip(heights, weights))
print('Points:', pairs)
rising = all(weights[i] < weights[i+1] for i in range(len(weights)-1))
print('Positive trend:', rising)

选择合适的图表

请根据您要回答的问题来选择:

  • 某个值如何随时间变化?折线图
  • 哪个类别最大?柱状图
  • 两个变量是否相关?散点图

错误的选择可能误导读者,例如为无序类别使用折线图。

多个数据系列

您可以在同一个坐标区上多次调用 ax.plot(),从而叠加多条折线。每次调用都会添加一个数据系列。之后可以使用图例将它们区分开。

相同的叠加思路也适用于散点图和组合图表类型。

series_a = [1, 2, 3, 4]
series_b = [4, 3, 2, 1]
for i in range(len(series_a)):
    print('x', i, 'a', series_a[i], 'b', series_b[i])

标记和线型

折线图接受格式字符串,例如 ax.plot(x, y, 'o--') 会绘制由虚线连接的圆形标记。

  • o 圆形标记
  • -- 虚线
  • r 红色

这些简写让探索性图表可以快速调整。

分组柱状图

若要比较每个类别中的两个值,请错开柱形的位置。将其中一组移动一小段距离,就能让柱形并排显示。

这些位置通过对索引进行简单的算术运算来计算。

categories = ['Q1', 'Q2', 'Q3']
width = 0.4
for i, cat in enumerate(categories):
    left_pos = i - width / 2
    right_pos = i + width / 2
    print(cat, 'group A at', left_pos, 'group B at', right_pos)

气泡图

散点图可以通过标记大小表示第三个变量:ax.scatter(x, y, s=sizes)。气泡越大,表示数值越大。这样一张图就能呈现三个维度。

请将大小控制在合理范围内,避免气泡相互重叠成一团。

避免误导性图表

图表类型本身就带有含义,因此错误的选择可能造成误导。在无序类别上绘制折线,会暗示一个并不存在的趋势。不是从零开始的柱形会夸大差异。

请始终确认视觉编码是否符合数据的结构。

快速检查

将问题与正确的图表匹配起来。

回顾

现在您已经了解三种核心图表调用:

  • ax.plot(x, y) 用于展示有序坐标轴上的趋势
  • ax.bar(cats, vals) 用于比较类别
  • ax.scatter(x, y) 用于展示关系,并使用 s= 表示气泡大小

您可以在一个坐标区上叠加多个数据系列,并选择符合问题的图表类型。

常见问题解答

「折线图、柱状图与散点图」课时是免费的吗?

是的 — 「折线图、柱状图与散点图」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Python Academy 课程的其余内容,请升级到 CoddyKit PRO。 Python Academy 课程共包含 4 节课。

「折线图、柱状图与散点图」这节课中我会学到什么?

创建常见图表类型 你通过在浏览器中直接运行的动手代码来练习 Python Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。

学习 Python Academy 需要有经验吗?

无需任何先前经验。CoddyKit 上的 Python Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 2 节课,共 4 节。

「折线图、柱状图与散点图」课时需要多长时间?

大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。

我能在这节 Python Academy 课中编写并运行代码吗?

能。每节 Python Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。

此课程中的所有课时

  1. 图形与坐标轴
  2. 折线图、柱状图与散点图
  3. 自定义图表
  4. 子图与布局
← 返回 Python Academy