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

2023-11-01

导读

本系列将持续更新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 多平台发布

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Matplotlib 可视化50图:散点图(1) 的相关文章

随机推荐

  • Python 基础合集8:类的继承和多态

    一 前言 本小节主要梳理类的继承和多态 继承包含三种形式 单继承 多层继承 多重继承 环境说明 Python 3 6 windows11 64位 二 继承 基础语法如下 class B A 表示的含义就是B 继承A A 是B 的父类 cla
  • 把数据插入到数据库的两种方法

    把表单中的数据插入到数据库中有两种方法 1 直接使用sql语句的 优点 速度快 不耗资源 缺点 不能传递太长的字段内容 字段比较多时不易排错 推荐有经验的编程者优先考虑 具体操作 假设表单中有以下字段 username password s
  • 阿里云免费试用服务器,怎么申请

    免费试用也要分个人用户和企业用户 个人用户选择比较少 目前只有下面这个配置 免费试用3个月 企业用户有4款机型 一 参与对象 满足以下全部条件的阿里云用户 1 阿里云注册会员用户 可以联系我注册账号 这样试用以后如果要新购也可以有优惠 2
  • 微信小程序调用天气信息

    在微信小程序中调用天气信息 下面是示例代码 wx request url example php 仅为示例 并非真实的接口地址 data x y header content type application json 默认值 succes
  • jdk和tomcat的关系

    1 什么是jvm 我们从操作系统的层面来理解 jvm其实就是操作系统中的一个进程 既然是一个进程 那么我们很容易的可以通过任务管理器来查看 假设此时我们启动myeclipse myeclipse其实就是用java语言编写的一个软件 他的运行
  • Java定时任务调度工具详解之Quartz篇(中级)一:浅谈JobExecutionContext&JobDatai&浅谈Trigger

    概要 OpenSymphony提供的强大的开源任务调度框架 官网 http www quartz scheduler org 纯java实现 精细控制排程 特点 强大的调度功能 灵活的应用方式 分布式和集群能力 主要用到的设计模式 Buil
  • 微信小程序+java后台+云服务器开发学习记录

    仅作为个人学习记录 1 使用了iview辅助开发 2 开发后台时 访问jsp和servlet突然404 检查以后发现8080端口被以前没清理干净的java程序占用了 到任务管理器里把java exe干掉以后重启idea一切恢复正常 困扰了我
  • 100流明相当于多少w_lx和瓦数换算(1lx等于多少w)

    你好 别想太多了 这个没得换算的所谓能换算的 都是已知光效的灯 就是每瓦多少流明的 然后再通过受照面积换算 希望对你有所帮助 望采纳 白炽灯的瓦数 光照强度 10W 65lm 15W 101lm 25W 198lm 40W 340lm 60
  • 身边那些百万年薪的程序员朋友

    大家好 我是寂小桦 争取每周在这里给大家分享自己作为独立开发者经历以及身边程序员朋友的趣事 百万年薪是个永远说不烂的话题 就在最近的一年 仿佛雨后春笋一般 身边开始涌现出很多年薪百万的程序员朋友 清一色集中在腾讯阿里京东头条这些公司 其中一
  • 数字电路的时钟(3)-- 抖动

    引言 抖动是时钟信号边沿事件的时间点集合相对于其理想值的离散时序变量 时钟信号中的抖动通常是由系统中的噪声或其他干扰导致的 具体因素包括热噪声 电源变化 负载条件 器件噪声以及相邻电路耦合的干扰等 抖动类型 时钟信号抖动定义有多种主要是 周
  • IDEA的Junit安装(添加jar包)

    1 安装junit插件 1 打开IDEA 点击文件 选择设置 setting 2 选择Plugins gt 点击Browse repositories 3 在搜索框中搜索Junit gt 找到Junit Generator V2 0点击 g
  • 我所理解的设计模式(C++实现)——适配器模式(Adapter Pattern)

    解决的问题 适配器模式把一个类的接口变换成客户端所期待的另一种接口 从而使原本接口不匹配而无法在一起工作的两个类能够在一起工作 比如说我的hp笔记本 美国产品 人家美国的电压是110V的 而我们中国的电压是220V 要在中国能使用 必须找个
  • java内存管理(堆、栈、方法区)

    java内存管理 简介 首先我们要了解我们为什么要学习java虚拟机的内存管理 不是java的gc垃圾回收机制都帮我们释放了内存了吗 但是在写程序的过程中却也往往因为不懂内存管理而造成了一些不容易察觉到的内存问题 并且在内存问题出现的时候
  • Android Activity调用Dialog后的返回值方法

    这个例子只是简单的返回一个String 而在实际需要时 可能需要在DIalog或非Activity 如ListView中的Adapter 中做复杂的操作后 返回值至主Activity 例如本人最近在做一个ListView中的Adapter包
  • 软件工程知识体系

    三个知识体系 知识体系 设计知识体系 开发知识体系 业务知识体系 业务知识体系 是指需要导入管理信息系统的客户所从事行业的业务知识 软件实现的过程是从理解客户业务和相关知识开始的 理解和掌握客户业务知识是理解客户需求和优化客户业务的基础 个
  • 使用vue+echarts绘制图表

    五步绘制echarts图表 目录 五步绘制echarts图表 第一步 main js中添加如下代码 第二步 template中添加如下代码 第三步 methods中写一个绘制折线图的函数 第四步 mounted中调用函数 第五步 css中添
  • python爬取表情包

    效果图 源代码 说明就在注释里 import os import requests from bs4 import BeautifulSoup if not os path exists images os mkdir images hea
  • linux 堆探索

    堆的虚拟地址是连续的 是brk来分配 brk是一个指针指向堆顶的指针 并且是可以复用的 但是只有在堆顶空闲128k时 才收缩 也就是说 为了减少page fault 可重用 开销小的特点 但是会内存碎片 但是分配内存 gt 128k时 就是
  • 【无机纳米材料科研制图——3ds Max 0102】3dmax界面及常用功能说明

    上一篇中 我们以一个核壳纳米粒子的创建 直奔主题 先入为主 开始了3dmax的技术分享 此篇 我们开始从大局上对3dmax的界面和功能区进行一个说明 一 界面分布 界面常用的主要功能区是下图中的五个 当然还有动画视频方面的控制区 暂不介绍
  • Matplotlib 可视化50图:散点图(1)

    导读 本系列将持续更新50个matplotlib可视化示例 主要参考Selva Prabhakaran 在MachineLearning Plus上发布的博文 Python可视化50图 定义 关联图是查看两个事物之间关系的图像 它能够展示出