用 python 画散点图与气泡图

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

做散点图要用到 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()

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

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

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

发布了280 篇原创文章 · 获赞 496 · 访问量 146万+

猜你喜欢

转载自blog.csdn.net/robert_chen1988/article/details/100027423
今日推荐