散点图是数据点在直角坐标系平面上的分布图,在统计学的回归分析与预测中经常用到。用横轴代表变量 python多组散点画在同一个图上 python 画散点图_python,纵轴代表变量 python多组散点画在同一个图上 python 画散点图_散点图_02,每组数据 python多组散点画在同一个图上 python 画散点图_python_03

做散点图要用到 pyplot 中的 scatter 函数。其基本语法为:

scatter(x, y, [s], [c], **kwargs)

含义

x

横坐标轴数据

y

纵坐标轴数据

[s]

可选参数,一个数或一个数组,设置每个散点的大小

[c]

可选参数,一个数或一个数组,设置每个散点的颜色

**kwargs

不定长的关键字参数,用字典形式设置图形的其他属性

**kwargs 中常设置的是不透明度属性 alpha,其大小为0到1之间的浮点数。(注:在 matplotlib 宏包中,0 到 1 之间的浮点数产生相应的 RGB 颜色)

1. 散点图

假设某个农产品的产量与温度和降雨量的关系如下表所示。

产量

温度

降雨量

1125

6

25

1725

8

40

2250

10

58

2875

13

68

2900

14

110

3750

16

98

4125

21

120

作出产量与温度的散点图的 Python 代码与图形如下:

import matplotlib.pyplot as plt
import numpy as np

# 这两行代码解决 plt 中文显示的问题
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False

# 输入产量与温度数据
production = [1125, 1725, 2250, 2875, 2900, 3750, 4125]
tem = [6, 8, 10, 13, 14, 16, 21]

colors = np.random.rand(len(tem))  # 颜色数组
plt.scatter(tem, production, s=200, c=colors)  # 画散点图,大小为 200
plt.xlabel('温度')  # 横坐标轴标题
plt.ylabel('产量')  # 纵坐标轴标题
plt.show()

散点图:

python多组散点画在同一个图上 python 画散点图_python_04

2. 气泡图

若将散点大小的数据换为第三个变量的数值,则可以作出反映三个变量关系的气泡图。下面的代码和图形做出了一个气泡图。下图反映了产量与温度、降雨量的关系:温度数值在横坐标轴,降雨量数值在纵坐标轴,降雨量的大小用气泡的大小表示。

import matplotlib.pyplot as plt
import numpy as np

# 这两行代码解决 plt 中文显示的问题
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False

# 输入产量与温度数据
production = [1125, 1725, 2250, 2875, 2900, 3750, 4125]
tem = [6, 8, 10, 13, 14, 16, 21]
rain = [25, 40, 58, 68, 110, 98, 120]

colors = np.random.rand(len(tem))  # 颜色数组
size = production
plt.scatter(tem, rain, s=size, c=colors, alpha=0.6)  # 画散点图, alpha=0.6 表示不透明度为 0.6
plt.ylim([0, 150])  # 纵坐标轴范围
plt.xlim([0, 30])   # 横坐标轴范围
plt.xlabel('温度')  # 横坐标轴标题
plt.ylabel('降雨量')  # 纵坐标轴标题
plt.show()

气泡图:

python多组散点画在同一个图上 python 画散点图_散点图_05