Matplotlib plt.scatter:从入门到精通,只需一篇文章!

Matplotlib plt.scatter:从入门到精通,只需一篇文章!🚀

在这里插入图片描述

利用Matplotlib进行数据可视化示例


🌵文章目录🌵

  • 一、plt.scatter入门:轻松迈出第一步 👣
  • 二、进阶探索:plt.scatter的高级用法和技巧🔍
  • 三、参考文档📚
  • 四、结尾🌳

一、plt.scatter入门:轻松迈出第一步 👣

🎈 欢迎来到Matplotlib的plt.scatter世界!这是一个强大而灵活的工具,用于创建散点图,帮助你直观地理解和分析数据。在这里,我们将从基础开始,逐步掌握如何使用plt.scatter来创建散点图。

📌 首先,确保你已经安装了Matplotlib库。如果没有安装,可以使用以下命令进行安装:

pip install matplotlib

📚 接下来,让我们导入必要的库并创建一个简单的散点图。

import matplotlib.pyplot as plt
import numpy as np# 创建一些随机数据
x = np.random.rand(50)
y = np.random.rand(50)# 设置全局字体为支持中文的字体
plt.rcParams['font.sans-serif'] = ['SimHei']# 使用plt.scatter创建散点图
plt.scatter(x, y)# 添加标题和坐标轴标签
plt.title('简单的散点图')
plt.xlabel('X轴')
plt.ylabel('Y轴')# 显示图形
plt.show()

🎉 效果展示

Fig.1 使用plt.scatter来创建散点图

运行上述代码,你将看到如图1所示的散点图,其中包含50个随机分布的点。🎉

二、进阶探索:plt.scatter的高级用法和技巧🔍

🌈 散点图是一种非常直观的数据可视化方式,可以展示两个变量之间的关系。通过调整散点图的颜色、大小、形状等属性,我们可以进一步强调数据的某些特征,使故事更加生动。

💡 下面是一个自定义散点颜色和大小的散点图示例:

import matplotlib.pyplot as plt
import numpy as np# 设置全局字体为支持中文的字体
plt.rcParams['font.sans-serif'] = ['SimHei']
# 解决保存图像是负号'-'显示为方块的问题
plt.rcParams['axes.unicode_minus'] = False# 创建一个2x3的子图网格
fig, axs = plt.subplots(2, 3, figsize=(15, 10))  # figsize设置图形大小# 示例1: 单一颜色和固定大小的散点图
x1 = np.random.rand(50)
y1 = np.random.rand(50)
axs[0, 0].scatter(x1, y1, color='red', s=50)
axs[0, 0].set_title('单一颜色和固定大小的散点图')
axs[0, 0].set_xlabel('X轴')
axs[0, 0].set_ylabel('Y轴')# 示例2: 不同颜色和固定大小的散点图
x2 = np.random.rand(50)
y2 = np.random.rand(50)
colors2 = np.random.rand(50)
axs[0, 1].scatter(x2, y2, c=colors2, s=50)
axs[0, 1].set_title('不同颜色和固定大小的散点图')
axs[0, 1].set_xlabel('X轴')
axs[0, 1].set_ylabel('Y轴')# 示例3: 单一颜色和不同大小的散点图
x3 = np.random.rand(50)
y3 = np.random.rand(50)
sizes3 = np.random.randint(10, 100, 50)
axs[0, 2].scatter(x3, y3, color='blue', s=sizes3)
axs[0, 2].set_title('单一颜色和不同大小的散点图')
axs[0, 2].set_xlabel('X轴')
axs[0, 2].set_ylabel('Y轴')# 示例4: 不同颜色和不同大小的散点图
x4 = np.random.rand(50)
y4 = np.random.rand(50)
colors4 = np.random.rand(50)
sizes4 = np.random.randint(10, 100, 50)
axs[1, 0].scatter(x4, y4, c=colors4, s=sizes4)
axs[1, 0].set_title('不同颜色和不同大小的散点图')
axs[1, 0].set_xlabel('X轴')
axs[1, 0].set_ylabel('Y轴')# 示例5: 使用颜色映射的散点图
x5 = np.random.rand(50)
y5 = np.random.rand(50)
z5 = np.random.rand(50)
axs[1, 1].scatter(x5, y5, c=z5, cmap='viridis')
axs[1, 1].set_title('使用颜色映射的散点图')
axs[1, 1].set_xlabel('X轴')
axs[1, 1].set_ylabel('Y轴')# 示例6: 使用分组和自定义样式的散点图
x6 = np.random.rand(100)
y6 = np.random.rand(100)
groups6 = np.random.choice(['A', 'B'], size=100)
colors6 = {'A': 'red', 'B': 'blue'}
sizes6 = {'A': 50, 'B': 100}for group, color, size in zip(groups6, colors6.values(), sizes6.values()):axs[1, 2].scatter(x6[groups6 == group], y6[groups6 == group], color=color, label=group, s=size)
axs[1, 2].set_title('分组和自定义样式的散点图')
axs[1, 2].set_xlabel('X轴')
axs[1, 2].set_ylabel('Y轴')
axs[1, 2].legend()  # 添加图例# 调整子图之间的间距
plt.subplots_adjust(wspace=0.4, hspace=0.4)# 显示图形
plt.show()

🎉 效果展示

Fig.2 使用plt.scatter来自定义散点颜色和大小

  • 以上代码使用Matplotlib库创建了一个包含六个子图的散点图矩阵。📈📊
  • 每个子图展示了不同类型的散点图,包括:
    • 单一颜色和固定大小的散点图;
    • 不同颜色和固定大小的散点图;
    • 单一颜色和不同大小的散点图;
    • 不同颜色和不同大小的散点图;
    • 使用颜色映射的散点图;
    • 使用分组和自定义样式的散点图;

  这些散点图基于随机生成的数据绘制,并通过调整颜色、大小和分组等参数来展示scatter函数的不同功能和用法。最后,代码调整了子图之间的间距,并显示了整个图像。💡🖼️

三、参考文档📚

  1. Matplotlib官网
  2. Matplotlib初探:认识数据可视化与Matplotlib
  3. 数据分析利器对决:Matplotlib中的MATLAB风格与面向对象风格,你选谁?

四、结尾🌳

  亲爱的读者,感谢您每一次停留和阅读,这是对我们最大的支持和鼓励!🙏在茫茫网海中,您的关注让我们深感荣幸。您的独到见解和建议,如明灯照亮我们前行的道路。🌟若在阅读中有所收获,一个赞或收藏,对我们意义重大。

  我们承诺,会不断自我挑战,为您呈现更精彩的内容。📚有任何疑问或建议,欢迎在评论区畅所欲言,我们时刻倾听。💬让我们携手在知识的海洋中航行,共同成长,共创辉煌!🌱🌳感谢您的厚爱与支持,期待与您共同书写精彩篇章!

  您的点赞👍、收藏🌟、评论💬和关注💖,是我们前行的最大动力!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/685756.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Makefile 中的 clean 目标 Target 到底应该怎么写

如下 .PHONY: clean clean: -rm -f *.o a.out test *.so解释: .PHONY:表示伪目标,即,不需要检查依赖的时间戳,每次运行 make clean 都要执行 clean 目标下的命令 负号(-):表示当这行命令出错时&#xff…

使用Docker Compose搭建Redis主从复制

在Docker中搭建Redis主从架构非常方便,下面是一个示例,演示一下如何使用Docker Compose搭建一个Redis主从复制环境。首先,确保我们本地环境已经安装了Docker和Docker Compose。 我这里使用OrbStack替代了Docker desktop。 1. 创建一个名为r…

机器人能否返回原点

657. 机器人能否返回原点 在二维平面上,有一个机器人从原点 (0, 0) 开始。给出它的移动顺序,判断这个机器人在完成移动后是否在 (0, 0) 处结束。 移动顺序由字符串 moves 表示。字符 move[i] 表示其第 i 次移动。机器人的有效动作有 R(右&a…

Ansible file文件模块 设置文件的属性,比如创建文件、创建链接文件、删除文件

目录 语法创建目录创建链接文件删除文件 每个值的属性 语法 创建目录 ansible slave -m file -a path/data/app statedirectory path/data/app # 定义创建路径 statedirectory # 如果目录不存在就创建目录这就是创建目录成功之后的回显 可以看到,已经打印出目录a…

【QT+QGIS跨平台编译】之三十九:【Exiv2+Qt跨平台编译】(一套代码、一套框架,跨平台编译)

文章目录 一、Exiv2介绍二、文件下载三、文件分析四、pro文件4.1 exiv2-xmp4.2 exiv2lib_int4.3 exiv2lib五、编译实践一、Exiv2介绍 Exiv2是一个开源的C++库,用于读取、编辑和写入图片和视频文件的元数据。它可以处理各种类型的元数据,包括EXIF、IPTC、XMP等。 元数据是与…

OLMo 以促进语言模型科学之名 —— OLMo Accelerating the Science of Language Models —— 全文翻译

OLMo: Accelerating the Science of Language Models OLMo 以促进语言模型科学之名 摘要 语言模型在自然语言处理的研究中和商业产品中已经变得无所不在。因为其商业上的重要性激增,所以,其中最强大的模型已经闭源,控制在专有接口之中&#…

MQL语言图表事件详解

MQL语言图表事件函数 OnChartEvent:当发生图表事件时触发的函数。可以通过该事件来处理鼠标点击、图表对象、键盘按键等操作。 OnChartEvent函数的参数: long id:事件的ID,用于区分不同的事件类型。long lparam:事件的…

stl~string

迭代器 typedef char* iterator;typedef const char* const_iterator;iterator begin(){return _str;}iterator end(){return _str _size;}const_iterator begin() const//左值const{return _str;}const_iterator end() const{return _str _size;} for(auto e : …

16.1 Spring框架_AOP面向切面编程(❤❤❤❤)

16.1 Spring框架_AOP面向切面编程 1. AOP介绍及相关概念名词1.1 需求分析1.2 简介2. AOP开发与配置流程2.1 入门实战_基于xml配置(❤❤)1. 依赖引入2. spring配置文件:基础格式3. 加载配置文件,启动Spring容器4. 定义切面:获取各层类信息5. 在applicationContext.xml配置切点和…

排序算法---计数排序

原创不易,转载请注明出处。欢迎点赞收藏~ 计数排序(Counting Sort)是一种线性时间复杂度的排序算法,其核心思想是通过统计待排序元素的个数来确定元素的相对位置,从而实现排序。 具体的计数排序算法步骤如下&#xff…

政安晨:【示例演绎】【Python】【Numpy数据处理】快速入门(一)

简介 NumPy是SciPy家族的成员之一。 SciPy家族是一个专门应用于数学、科学和工程领域的开源Python生态圈,或者说是一个由多个Python库组成的集合,用于解决科学计算中的各种问题。这些库构成了一个功能强大的科学计算工具箱,可以进行数值计算…

QT+OSG/osgEarth编译之八十九:osgdb_ply+Qt编译(一套代码、一套框架,跨平台编译,版本:OSG-3.6.5插件库osgdb_ply)

文章目录 一、osgdb_ply介绍二、文件分析三、pro文件四、编译实践一、osgdb_ply介绍 斯坦福三角形格式(Stanford Triangle Format)是一种用于存储三维模型数据的文件格式,也称为 PLY 格式。它最初由斯坦福大学图形实验室开发,用于存储和共享三维扫描和计算机图形数据。 P…

活用 Composition API 核心函数,打造卓越应用(上)

🤍 前端开发工程师、技术日更博主、已过CET6 🍨 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 🕠 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 🍚 蓝桥云课签约作者、上架课程《Vue.js 和 E…

面试指导(面试会遇到的问题准备)

自我介绍 介绍项目流程 项目简介、用途项目架构、技术、模块、我负责的模块 开发过程中遇到的问题 效率问题、并发问题、JVM内存泄漏等问题接口修改文档不同步拖进度问题使用到了没使用过的技术浏览器 JDK linux等环境问题 你的优点是什么 能加班,能出差学习能…

简单试验:用Excel进行爬虫

文章目录 Excel的版本具体操作实例从网站上爬取工商银行的汇率Excel的版本 office 2016,2019,365这几个版本都可以 具体操作 #mermaid-svg-NlIVMivGoJbdyWW0 {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-NlIVMi…

Vue2学习第三天

Vue2 学习第三天 1. 计算属性 computed 计算属性实现 定义:要用的属性不存在,要通过已有属性计算得来。 原理:底层借助了Objcet.defineproperty方法提供的getter和setter。 get函数什么时候执行? 初次读取时会执行一次。当依赖…

如何让Obsidian实现电脑端和安卓端同步

Obsidian是一款知名的笔记软件,支持Markdown语法,它允许用户在多个设备之间同步文件。要在安卓设备上实现同步,可以使用remote save插件,以下是具体操作步骤: 首先是安装电脑端的obsidian,然后依次下载obs…

Typora+PicGO+腾讯云COS做图床教程

文章目录 Typora+PicGO+腾讯云COS做图床教程一、为什么使用图床二、Typora、PicGO和腾讯云COS介绍三、下载Typora和PicGOTyporaPicGO 四、配置Typora、PicGO和腾讯云COS腾讯云COS配置PicGO配置Typora配置 Typora+PicGO+腾讯云COS做…

STM32入坑

目录 一、选择合适的开发板 二、安装和配置开发环境 三、学习基础知识 四、编写和调试程序 五、扩展功能和学习进阶知识 六、坚持,坚持,坚持 七、STM32的学习路径 一、选择合适的开发板 首先,你需要选择一款合适的STM32开发板。开发板…

mysql 执行update操作 记录未修改

问题 mysql 执行update操作 记录未修改 详细问题 笔者进行SpringBootMybatis项目开发,确认执行update操作 控制台内容如下 Creating a new SqlSession SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession3cbe9459] was not registered for sync…