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

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

评论 2 您还未登录,请先 登录 后发表或查看评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:1024 设计师:我叫白小胖 返回首页

打赏作者

心态与做事习惯决定人生高度

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值