本教程详细介绍了如何使用Python中的matplotlib库来创建和定制散点图。通过scatter()函数,用户可以轻松地分析数据之间的关系,并通过颜色、大小等属性进行可视化增强。适合数据分析初学者学习实践。
### 使用 Matplotlib 中的 scatter 方法绘制散点图
#### 一、简介与基本概念
散点图是一种展示两个变量之间关系的数据可视化方法,在数据分析、统计学以及机器学习领域非常常见。通过散点图,我们可以直观地分析数据之间的分布趋势、关联程度和异常值等。
Python 的 Matplotlib 库提供了丰富的绘图功能,其中包括 `scatter` 方法用于创建散点图。本段落将详细介绍如何使用该方法,并提供实际示例来帮助理解其应用。
#### 二、基本用法
##### 1. 最简单的绘制方式
假设我们有一组数据如下:
```
0 746403
1 1263043
2 982360
3 1202602
```
其中,第一列表示 X 坐标,第二列表示 Y 坐标。接下来我们将使用 Python 编写代码来绘制这些数据点。
```python
import matplotlib.pyplot as plt
def plot_simple_scatter():
x = [0, 1, 2, 3]
y = [746403, 1263043, 982360, 1202602]
plt.scatter(x, y)
plt.xlabel(X)
plt.ylabel(Y)
plt.title(Simple Scatter Plot)
plt.show()
plot_simple_scatter()
```
这段代码定义了一个名为 `plot_simple_scatter` 的函数,该函数创建并显示一个简单的散点图。
#### 三、更高级的绘制方式
接下来我们将通过一组复杂的数据集来展示如何使用 Matplotlib 创建更加美观和信息丰富的散点图。假设数据如下:
- 第一列:每年飞行常客里程数(Distance)
- 第二列:玩视频游戏所花费时间百分比(Video Game Rate)
- 第三列:每周冰淇淋消费量(Ice Cream Liters)
- 第四列:标签值,表示不同的人群类别
具体数据格式如下:
```
409208.32697 60.95395 2
144887.15346 91.67390 2
260521.44187 10.80512 1
75136 3.14739 0.42896 1
```
我们将使用这些数据来绘制散点图,并为不同的标签分配不同的颜色和大小。
```python
import matplotlib.pyplot as plt
def plot_advanced_scatter():
file_path = pathtoyourdataset.txt
label1X, label1Y, label2X, label2Y, label3X, label3Y = [], [], [], [], [], []
with open(file_path) as f:
for line in f:
lines = line.strip().split()
if len(lines) != 4:
continue
distance, rate, _, label = lines
if int(label) == 1:
label1X.append(float(distance))
label1Y.append(float(rate))
elif int(label) == 2:
label2X.append(float(distance))
label2Y.append(float(rate))
elif int(label) == 3:
label3X.append(float(distance))
label3Y.append(float(rate))
plt.figure(figsize=(8, 5), dpi=80)
axes = plt.subplot(111)
label1 = axes.scatter(label1X, label1Y, s=20, c=red, label=Dont Like)
label2 = axes.scatter(label2X, label2Y, s=40, c=green, label=Attraction Common)
label3 = axes.scatter(label3X, label3Y, s=50, c=blue, label=Attraction Perfect)
plt.xlabel(Every Year Fly Distance)
plt.ylabel(Play Video Game Rate)
plt.legend(loc=2)
plt.title(Advanced Scatter Plot)
plt.show()
plot_advanced_scatter()
```
此段代码展示了如何根据不同的标签对数据进行分类,并为每一类分配特定的颜色和大小,使得图表更加易于理解。
#### 四、scatter 函数详解
`scatter` 函数提供了一系列参数来定制散点图的样式。以下是 `scatter` 函数的基本签名:
```python
def scatter(self, x, y, s=None, c=None, marker=None, cmap=None, norm=None,
vmin=None, vmax=None, alpha=None, linewidths=None):
```
- **x**, **y**: 数据点的 X 和 Y 坐标。
- **s**: 点的大小