折线图、柱状图与散点图
创建常见图表类型
折线图、柱状图与散点图 是 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 反馈 — 无需本地设置。