用 python 画散点图与气泡图

散点图是数据点在直角坐标系平面上的分布图,在统计学的回归分析与预测中经常用到。用横轴代表变量 x x x,纵轴代表变量 y y y,每组数据 ( x i , y i ) (x_i, y_i) (xi,yi) 在坐标系中用一个点表示。

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

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

含义
x横坐标轴数据
y纵坐标轴数据
[s]可选参数,一个数或一个数组,设置每个散点的大小
[c]可选参数,一个数或一个数组,设置每个散点的颜色
**kwargs不定长的关键字参数,用字典形式设置图形的其他属性

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

1. 散点图

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

产量温度降雨量
1125625
1725840
22501058
28751368
290014110
37501698
412521120

作出产量与温度的散点图的 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()

散点图:
在这里插入图片描述

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()

气泡图:
在这里插入图片描述

已标记关键词 清除标记
相关推荐
©️2020 CSDN 皮肤主题: 创作都市 设计师:CSDN官方博客 返回首页