matplotlib 散点图绘制指南:从基础到美化
127 浏览量
更新于2024-08-31
收藏 115KB PDF 举报
在使用Python的数据可视化库matplotlib进行数据展示时,scatter方法是一种常用且重要的图形绘制手段。scatter函数用于创建二维散点图,适用于表示两个变量之间的关系或数据点的分布情况。本篇文章将详细介绍如何利用matplotlib的scatter方法绘制散点图,并提供两种不同的示例。
首先,我们来看最简单的散点图绘制。在这个例子中,数据分为两列,一列是X坐标(如飞行常客里程数),另一列是Y坐标(如游戏时间百分比)。通过以下代码:
```python
import matplotlib.pyplot as plt
def plot_picture():
file = "data.txt" # 假设数据文件名
xlist = []
ylist = []
with open(file, "r") as f:
for line in f.readlines():
line = line.strip().split()
if len(line) != 2 or int(line[1]) < 100000:
continue
x, y = int(line[0]), int(line[1])
xlist.append(x)
ylist.append(y)
plt.xlabel('X - 航班里程数')
plt.ylabel('Y - 游戏时间百分比')
plt.scatter(xlist, ylist) # 使用scatter方法绘制散点
plt.show()
```
这段代码首先读取数据文件,然后根据指定条件筛选数据,最后使用scatter函数将筛选后的数据点在坐标轴上呈现为散点图。这有助于快速识别数据点之间的关系和分布模式。
其次,文章提到了提升绘图美观性的另一种方式,这里以更复杂的数据集为例,比如飞行里程数、游戏时间、冰淇淋消费量与个人魅力等级之间的关系。在这个场景下,X轴代表飞行里程数,Y轴代表游戏时间百分比,而颜色或形状可能根据魅力等级进行区分。这可以通过设置额外的参数,如color或c参数,来实现:
```python
# 更复杂的数据格式示例
data = [
[409208.32, 0.95, 3], # 第三列为魅力等级
[144887.15, 1.67, 2],
[260521.44, 0.80, 1],
# 更多数据...
]
# 绘制带有不同颜色或形状的散点图
plt.scatter(data[:, 0], data[:, 1], c=data[:, 2], cmap='viridis', s=50, alpha=0.8, label='魅力等级')
# 添加图例和美观调整
plt.colorbar(label='魅力等级')
plt.title('飞行里程数与游戏时间关系 (按魅力等级区分)')
plt.legend()
plt.xlabel('飞行里程数')
plt.ylabel('游戏时间百分比')
plt.show()
```
在这个例子中,通过设置c参数来根据魅力等级赋予不同的颜色,`cmap`参数定义了颜色映射,`s`参数调整点的大小,`alpha`参数控制透明度,从而创建了一个更具表现力的散点图。
总结来说,matplotlib的scatter方法提供了丰富的参数,帮助我们根据实际需求定制散点图的外观和含义。通过这两个示例,读者能够掌握如何在Python中使用matplotlib创建基本和定制化的散点图,这对于数据分析师和数据可视化爱好者来说是非常实用的知识。
2020-09-19 上传
2020-09-18 上传
2021-09-29 上传
2024-10-31 上传
2020-09-19 上传
2020-09-18 上传
2021-08-31 上传
2020-09-20 上传
weixin_38624519
- 粉丝: 5
- 资源: 899
最新资源
- 离心泵水力设计对振动的影响.rar
- 网站:工作进行中。
- 2018秋招java笔试题-awesome-Algorithm:真棒算法
- vu-greatmods:《战地风云3》 VU Mods
- creative-apartments
- protobuf-java-2.5.0-API文档-中文版.zip
- Guessing_Game
- dotfiles-wsl
- ANGRY-BIRDS-STAGE-6
- dotenorio.now.sh:我现在的个人资料▲
- chrome-apps-extensions-developer-tools:ohmmkhmmmpcnpikjeljgnaoabkaalbgc
- 3-成绩评定表.zip
- ctt
- VisionEval.org:VisionEval项目的主页
- my cosde.rar
- Angular-2.0-Five-Min-Quickstart:Angular 仍处于未打包状态且处于 alpha 阶段。 本快速入门不反映 Angular 的最终构建过程