Matplotlib 可视化50图:散点图(1)

news2024/11/23 17:19:12

导读

本系列将持续更新50个matplotlib可视化示例,主要参考Selva PrabhakaranMachineLearning Plus上发布的博文:Python可视化50图

定义

关联图是查看两个事物之间关系的图像,它能够展示出一个事物随着另一个事物是如何变化的。关联图的类型有:折线图,散点图,相关矩阵等。

关联图
关联图

散点图

散点图
散点图

测试

  • 导入需要使用的库
import numpy as np
import pandas as pd
import matplotlib as mpl
import matplotlib.pyplot as plt
import seaborn as sns
  • plt.scatter
#绘制超简单的散点图:变量x1与x2的关系

#定义数据
x1 = np.random.randn(10#取随机数
x2 = x1 + x1**2 - 10

#确定画布 - 当只有一个图的时候,不是必须存在
plt.figure(figsize=(8,4))

#绘图
plt.scatter(x1,x2 #横坐标,纵坐标
            ,s=50 #数据点的尺寸大小
            ,c="red" #数据点的颜色
            ,label = "Red Points"
           )
#装饰图形
plt.legend() #显示图例

plt.show() #让图形显示
result
result
  • 例子
# 除了两列X之外,还有标签y的存在
# 在机器学习中,经常使用标签y作为颜色来观察两种类别的分布的需求

X = np.random.randn(10,2)  # 10行,2列的数据集
y = np.array([0,0,1,1,0,1,0,1,0,0])

colors = ["red","black"]  # 确立颜色列表
labels = ["Zero","One"]  # 确立标签的类别列表

for i in range(X.shape[1]):
    plt.scatter(X[y==i,0],
               X[y==i,1],
               c=colors[i],
               label = labels[i])

# 在标签中存在几种类别,就需要循环几次,一次画一个颜色的点

plt.legend()
plt.show()
result
result

实战

数据

# 导入数据
midwest = pd.read_csv("https://raw.githubusercontent.com/selva86/datasets/master/midwest_filter.csv")

# 探索数据
midwest.shape  
midwest.head()
midwest.columns

标签

midwest['category']
category
category
# 提取标签中的类别
categories = np.unique(midwest['category'])  # 去掉所有重复的项

categories  # 查看使用的标签,如下图
categories
categories

颜色

  • plt.cm.tab10()

用于创建颜色的十号光谱,在 matplotlib 中,有众多光谱供我们选择:https://matplotlib.org/stable/tutorials/colors/colormaps.html 。可以在plt.cm.tab10()中输入任意浮点数,来提取出一种颜色。光谱tab10中总共只有十种颜色,如果输入的浮点数比较接近,会返回类似的颜色。这种颜色会以元祖的形式返回,表示为四个浮点数组成的RGBA色彩空间或者三个浮点数组成的RGB色彩空间中的随机色彩。

color1 = plt.cm.tab10(5.2)

color1  # 四个浮点数组成的一个颜色
color1
color1

绘图

# 预设图像的各种属性
large = 22; med = 16; small = 12
params = {'axes.titlesize': large,   # 子图上的标题字体大小
          'legend.fontsize': med,   # 图例的字体大小
          'figure.figsize': (1610), # 图像的画布大小
          'axes.labelsize': med,   # 标签的字体大小
          'xtick.labelsize': med,  # x轴上的标尺的字体大小
          'ytick.labelsize': med,  # y轴上的标尺的字体大小
          'figure.titlesize': large}  # 整个画布的标题字体大小
plt.rcParams.update(params)  # 设定各种各样的默认属性
plt.style.use('seaborn-whitegrid')  # 设定整体风格
sns.set_style("white")  # 设定整体背景风格

# 准备标签列表和颜色列表
categories = np.unique(midwest['category'])
colors = [plt.cm.tab10(i/float(len(categories)-1)) for i in range(len(categories))]

# 建立画布
plt.figure(figsize=(1610)   # 绘图尺寸
           , dpi=100          # 图像分辨率
           , facecolor='w'    # 图像的背景颜色,设置为白色,默认也是白色
           , edgecolor='k'    # 图像的边框颜色,设置为黑色,默认也是黑色
          )

# 循环绘图
for i, category in enumerate(categories):
    plt.scatter('area''poptotal'
                data=midwest.loc[midwest.category==category, :], 
                s=20, c=np.array(colors[i]).reshape(1,-1), label=str(category))

# 对图像进行装饰
# plt.gca() 获取当前的子图,如果当前没有任何子图的话,就创建一个新的子图
plt.gca().set(xlim=(00.12), ylim=(080000))  # 控制横纵坐标的范围
plt.xticks(fontsize=12)  # 坐标轴上的标尺的字的大小
plt.yticks(fontsize=12)
plt.ylabel('Population',fontsize=22)  # 坐标轴上的标题和字体大小
plt.xlabel('Area',fontsize=22)
plt.title("Scatterplot of Midwest Area vs Population", fontsize=22)  # 整个图像的标题和字体的大小
plt.legend(fontsize=12)  # 图例的字体大小
plt.show()
result
result

欢迎Star -> 学习目录 <- 点击跳转

国内链接 -> 学习目录 <- 点击跳转


本文由 mdnice 多平台发布

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

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

相关文章

ctfshow(菜狗杯)

目录 web签到 一言既出 驷马难追 web2 c0me_t0_s1gn 我的眼里只有$ TAPTAPTAP Webshell 化零为整 无一幸免 遍地飘零 传说之下&#xff08;雾&#xff09; Is_Not_Obfuscate web签到 <?phperror_reporting(0); highlight_file(__FILE__);eval($_REQUEST[$_GET[…

springboot大学生课堂考勤管理系统的设计与实现

根据一般学生课堂考勤管理系统的功能需求分析&#xff0c;本系统的功能模块如下&#xff1a; &#xff08;1&#xff09;在个人中心&#xff0c;管理员可以修改自己的用户名和登录密码。 &#xff08;2&#xff09;在学生管理模块中&#xff0c;可以查看学生的信息&#xff0c;…

DiffusionDet:Diffusion Model for Object Detection

Diffusion Model for Object Detection 一种用于目标检测的扩散模型 Motivation 1、如何使用一种更简单的方法代替可查询的object queries 2、Bounding box的生成方式过去是三种&#xff0c;第一种为sliding windows、第二种anchor box、第三种object queries&#xff0c;这里其…

AlphaFold2源码解析(3)--数据预处理

AlphaFold2源码解析(3)–数据预处理 数据预处理整体流程 数据处理入口&#xff1a; feature_dict data_pipeline.process( input_fasta_pathfasta_path,# 输入序列目录 msa_output_dirmsa_output_dir) # MSA序列目录 可能是单体也可能是多聚体 主要调动的API是&#xff1a; …

如何让Java项目兼容更多的客户端设备(二)

如何让Java项目兼容更多的客户端设备&#xff08;二&#xff09; ​ ​ 一、Token认证的原理 传统的单体JavaWeb项目通常采用HttpSession保存登陆成功的凭证&#xff0c;但是HttpSession需要浏览器的Cookie机制配合。也就是说Web项目的客户端只能是浏览器&#xff0c;不可以…

torch.nn.functional.grid_sample(F.grid_sample)函数的说明 3D空间中的点向图像投影的易错点

由于二者有一定共通之处&#xff0c;因此放在一篇文章内介绍。 1. 关于torch.nn.functional.grid_sample函数的说明&#xff08;F.grid_sample&#xff09; 该函数的作用是在图像/体素空间中采样特征。 1.1 输入和输出&#xff1a; 变量名数据类型默认值含义备注inputTensor-…

训练神经网络的各种优化算法【文末赠书】

正确的优化算法可以成倍地减少训练时间 许多人在训练神经网络时可能会使用优化器&#xff0c;而不知道该方法称为优化。优化器是用于更改神经网络属性&#xff08;例如权重和学习率&#xff09;以减少损失的算法或方法。 文章目录梯度下降随机梯度下降小批量梯度下降其它优化算…

C/C++指针之提高篇详解(二)

一、引言 C/C语言中引入了指针&#xff0c;使得程序能够直接访问内存地址&#xff0c;使得很多复杂的操作变得简单&#xff0c;同时也提高了程序的运行效率。指针即是地址&#xff0c;但是地址却是通过指针变量来存储的。这就好比我们的教室&#xff0c;每个教室都有一个房间号…

第3章 Tomcatservlet

1.BS与CS *CS&#xff1a;客户端服务器架构模式 优点&#xff1a;充分利用客户端机器的资源&#xff0c;减轻服务器的负荷 缺点&#xff1a;需要安装&#xff1b;升级维护成本较高 *BS&#xff1a;浏览器服务器架构模式 优点&#xff1a;客户端不需要安装&#xff0c;维护成本…

Zlibrary已死,找了一个替代品,找了一个替代品免费的电子书下载平台...

大家好&#xff0c;我是鸟哥。一个半路出家的程序员。 提到Zlibrary&#xff0c;想必大家都不陌生吧。全球最大的数字图书馆&#xff0c;截止被封前共收录了591万本书&#xff0c;7751万篇文章&#xff0c;并且还在不断的增加中&#xff0c;关键是可以免费下载。 反正我是很熟悉…

Rust之常用集合(二):字符串(String)

开发环境 Windows 10Rust 1.65.0VS Code 1.73.1 项目工程 这里继续沿用上次工程rust-demo 用字符串存储UTF-8编码的文本 我们在之前的章节中讨论了字符串&#xff0c;但现在我们将更深入地研究它们。新的Rust人会因为三个原因而陷入字符串:Rust倾向于暴露可能的错误&#x…

【季报分析】美团:真的很美

11月25日&#xff0c;港股盘后美团发布了2022年第三季度业绩报告。整体来看&#xff0c;财报数据还算不错&#xff0c;毕竟大部分指标都已经超预期&#xff0c;探员利用这两天假期&#xff0c;把美团的这份财报仔细过了一遍&#xff0c;当然探员也把2022年Q1、Q2的数据也进行了…

Linux代码调试----gdb使用介绍

目录 一、简介 二、gdb使用流程&#xff1a; &#xff08;1&#xff09;gdb的启动 &#xff08;2&#xff09;调试中查看源代码 &#xff08;3&#xff09;开始调试 一、简介 GDB 全称“GNU symbolic debugger”&#xff0c;是 Linux 下常用的程序调试器。发展至今&#xff…

[附源码]SSM计算机毕业设计校园超市进销存管理系统JAVA

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

【Node.js】第九章 数据库

目录 1. 数据库的基本概念 1.1 数据库的概念 1.2 数据库的分类 1.3 数据组织结构 2. MySQL使用介绍 2.1 安装MySQL和MySQL Workbench 2.2 MySQL的基本使用 2.3 使用SQL管理数据库 3. 在项目中使用MySQL 3.1 安装和配置MySQL模块 3.2 操作数据 1. 数据库的基本概念…

word怎么转pdf?word转pdf借助pdf软件即可搞定!

我们在办公的时候&#xff0c;会有word转pdf的办公需求&#xff0c;但是很多人都不清楚word转pdf的方法&#xff0c;那么word怎么转pdf呢&#xff1f;其实方法很简单&#xff0c;利用pdf软件来进行word转pdf的操作即可&#xff0c;如今&#xff0c;市面上pdf软件应接不暇&#…

五、Javascript 空间坐标[尺寸、滑动]

一、尺寸 1.视窗尺寸 document.documentElement.clientWidth&#xff1a;视窗宽度document.documentElement.clientHeight&#xff1a;视窗高度 2.各种尺寸 举例&#xff1a;<div id"gao"></div> 前提&#xff1a;var a document.getElementById(g…

多重共线性如何分析?

判断标准 常见的直观判断方法共有四个&#xff0c;如下&#xff1a; &#xff08;1&#xff09;某些自变量的相关系数值较大&#xff08;比如大于0.8&#xff09;等&#xff0c;可以利用pearson相关系数检验法一般是利用解释变量之间的线性相关程度判断&#xff0c;一般标准是…

Java常用类(二)

目录 JDK8之前的日期时间API java.lang.System类 java.util.Date类 两个构造器的使用 两个方法的使用 java.sql.Date类 涉及两个问题&#xff1a; java.text.SimpleDateFormat类 格式化&#xff1a;日期--->字符串 解析&#xff1a;字符串--->日期&#xff08;格…

基于TM的遥感数据的叶面积指数估算解决方案及或取途径

1、背景与技术路线 叶面积指数是重要的植被结构参数&#xff0c;反演叶面积指数是植被遥感的重要研究内容之一&#xff0c;其影响生 态系统的物质和能量循环&#xff0c;成为作物生长、路面过程、水文和生态等模型的输入参数或状态变量。今 年来&#xff0c;对也铭记指数的反演…