在数据可视化中,Matplotlib 提供了多种图形类型来满足不同的数据展示需求。本文将详细介绍六种常见的图形类型:折线图、柱状图、散点图、饼图、直方图和箱线图。我们将探讨每种图形的用途、用法、常见参数,并通过实用示例进行演示。
思维导图总结
将该部分内容总结为思维导图,如果需要高清PDF版,公众号‘零基础AI学习笔记’回复“888”,内容会持续更新。
一、折线图
1.1 用途
折线图用于展示数据随时间或其他连续变量的变化趋势。
1.2 用法
使用 ax.plot()
函数绘制折线图。
1.3 常见参数
参数名 | 用途 | 类型 | 示例 |
---|---|---|---|
color | 设置折线颜色 | 颜色值 | color='red' |
linestyle | 设置折线线型 | 字符串 | linestyle='--' |
linewidth | 设置折线宽度 | 浮点数 | linewidth=2 |
marker | 设置折线上的标记 | 字符串 | marker='o' |
alpha | 设置折线透明度 | 浮点数 | alpha=0.8 |
label | 设置折线标签 | 字符串 | label='折线图' |
1.4 实用示例
import matplotlib.pyplot as plt
fig, ax = plt.subplots(figsize=(12, 8))
x = [1, 2, 3, 4, 5]
y = [2, 3, 5, 7, 11]
ax.plot(x, y, color='red', linestyle='--', linewidth=2, marker='o', alpha=0.8, label='line chart')
ax.set_title('Line Chart')
ax.set_xlabel('X-axis label')
ax.set_ylabel('Y-axis label')
ax.legend()
plt.show()
二、柱状图
2.1 用途
柱状图用于比较不同类别的数据大小。
2.2 用法
使用 ax.bar()
函数绘制柱状图。
2.3 常见参数
参数名 | 用途 | 类型 | 示例 |
---|---|---|---|
color | 设置柱状图颜色 | 颜色值 | color='blue' |
edgecolor | 设置柱状图边缘颜色 | 颜色值 | edgecolor='black' |
linewidth | 设置柱状图边缘宽度 | 浮点数 | linewidth=1 |
alpha | 设置柱状图透明度 | 浮点数 | alpha=0.8 |
label | 设置柱状图标签 | 字符串 | label='柱状图' |
2.4 实用示例
import matplotlib.pyplot as plt
fig, ax = plt.subplots(figsize=(12, 8))
x = ['A', 'B', 'C', 'D', 'E']
y = [2, 3, 5, 7, 11]
ax.bar(x, y, color='blue', edgecolor='black', linewidth=1, alpha=0.8, label='Bar chart')
ax.set_title('Bar chart')
ax.set_xlabel('X-axis Label')
ax.set_ylabel('Y-axis label')
ax.legend()
plt.show()
三、散点图
3.1 用途
散点图用于展示两个变量之间的关系。
3.2 用法
使用 ax.scatter()
函数绘制散点图。
3.3 常见参数
参数名 | 用途 | 类型 | 示例 |
---|---|---|---|
color | 设置散点颜色 | 颜色值 | color='green' |
marker | 设置散点标记 | 字符串 | marker='s' |
s | 设置散点大小 | 浮点数 | s=50 |
alpha | 设置散点透明度 | 浮点数 | alpha=0.8 |
label | 设置散点标签 | 字符串 | label='散点图' |
3.4 实用示例
import matplotlib.pyplot as plt
import numpy as np
fig, ax = plt.subplots(figsize=(12, 8))
x = np.random.randn(100)
y = np.random.randn(100)
c = np.random.randn(100) # 用于颜色映射的数据
scatter = ax.scatter(x, y, c=c, cmap='viridis', s=50, alpha=0.8, edgecolor='black', label='scatter chart')
ax.set_title('scatter chart')
ax.set_xlabel('X-axis Label')
ax.set_ylabel('Y-axis Label')
ax.legend()
plt.colorbar(scatter) # 显示颜色条
plt.show()
四、饼图
4.1 用途
饼图用于展示各部分占整体的比例关系。
4.2 用法
使用 ax.pie()
函数绘制饼图。
4.3 常见参数
参数名 | 用途 | 类型 | 示例 |
---|---|---|---|
colors | 设置饼图各部分的颜色 | 颜色值列表 | colors=['red', 'blue', 'green'] |
explode | 设置饼图各部分的分离距离 | 浮点数列表 | explode=[0.1, 0, 0] |
labels | 设置饼图各部分的标签 | 字符串列表 | labels=['A', 'B', 'C'] |
autopct | 设置饼图各部分的百分比显示格式 | 字符串格式 | autopct='%1.1f%%' |
startangle | 设置饼图的起始角度 | 浮点数 | startangle=90 |
shadow | 设置饼图是否有阴影 | 布尔值 | shadow=True |
4.4 实用示例
import matplotlib.pyplot as plt
fig, ax = plt.subplots(figsize=(12, 8))
sizes = [25, 35, 40]
labels = ['A', 'B', 'C']
colors = ['red', 'blue', 'green']
explode = [0.1, 0, 0]
ax.pie(sizes, labels=labels, colors=colors, explode=explode, autopct='%1.1f%%', startangle=90, shadow=True)
ax.set_title('Pie chart')
plt.show()
五、箱线图
5.1 用途
箱线图用于展示数据的分布情况,包括中位数、四分位数、异常值等。
5.2 用法
使用 ax.boxplot()
函数绘制箱线图。
5.3 常见参数
参数名 | 用途 | 类型 | 示例 |
---|---|---|---|
vert | 设置箱线图是否垂直 | 布尔值 | vert=False |
patch_artist | 设置是否使用填充样式 | 布尔值 | patch_artist=True |
showmeans | 设置是否显示均值 | 布尔值 | showmeans=True |
showcaps | 设置是否显示箱线图的端点 | 布尔值 | showcaps=True |
showbox | 设置是否显示箱线图的箱体 | 布尔值 | showbox=True |
showfliers | 设置是否显示异常值 | 布尔值 | showfliers=True |
medianprops | 控制箱体中位数的外观样式 | 字典 | medianprops=dict(color='red') |
whiskerprops | 控制箱体须的外观样式 | 字典 | whiskerprops=dict(color='blue') |
5.4 实用示例
import matplotlib.pyplot as plt
import numpy as np
fig, ax = plt.subplots(figsize=(12, 8))
data = np.random.randn(100)
ax.boxplot(data, vert=False, patch_artist=True, showmeans=True, showcaps=True, showbox=True, showfliers=True, medianprops=dict(color='red'), whiskerprops=dict(color='blue'))
ax.set_title('Box Plot')
plt.show()
六、直方图
6.1 用途
直方图用于展示数据的分布情况,包括数据的频数分布。
6.2 用法
使用 ax.hist()
函数绘制直方图。
6.3 常见参数
参数名 | 用途 | 类型 | 示例 |
---|---|---|---|
color | 设置直方图的颜色 | 颜色值 | color='purple' |
bins | 设置直方图的区间数量 | 整数或列表 | bins=10 |
density | 设置直方图是否归一化 | 布尔值 | density=True |
edgecolor | 设置直方图边缘颜色 | 颜色值 | edgecolor='black' |
alpha | 设置直方图透明度 | 浮点数 | alpha=0.7 |
6.4 实用示例
import matplotlib.pyplot as plt
import numpy as np
fig, ax = plt.subplots(figsize=(12, 8))
data = np.random.randn(1000)
ax.hist(data, bins=20, color='purple', edgecolor='black', alpha=0.7, orientation='vertical', density=True, cumulative=False)
ax.set_title('Histogram')
ax.set_xlabel('X-axis Label')
ax.set_ylabel('Y-axis Label')
plt.show()