赞
踩
散点图是数据点在直角坐标系平面上的分布图,在统计学的回归分析与预测中经常用到。用横轴代表变量 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 颜色)
假设某个农产品的产量与温度和降雨量的关系如下表所示。
产量 | 温度 | 降雨量 |
---|---|---|
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()
散点图:
若将散点大小的数据换为第三个变量的数值,则可以作出反映三个变量关系的气泡图。下面的代码和图形做出了一个气泡图。下图反映了产量与温度、降雨量的关系:温度数值在横坐标轴,降雨量数值在纵坐标轴,降雨量的大小用气泡的大小表示。
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()
气泡图:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。