python_matplotlib分别使用plot()和scatter()画散点图,以及如何改变点的大小

2023-11-19

1. 使用plot()画散点图

根据关于matplotlip.pyplot的官方文档:pyplot,其plot部分的解释plot()的作用是画出线条和线条上的标记:

 根据pyplot的官方教学文档:Pyplot tutorial,如果不改变其默认设置,画出的是蓝色的线条,即"b-":

 代码示例:

import numpy as np
import matplotlib.pyplot as plt

x = np.arange(0,10,1)

plt.plot(x,x+0)

plt.show()

画出的效果为一条蓝色的直线:

 

plt.plot(x,x+0)

等价于 

plt.plot(x,x+0,'-')

 而可以看到,[x, x+0]表示的是一个二维数组,每一维是从0到9这10个整数,或者说10个点。plot()的作用就是用某种方式将这10个点建立连接,不过其默认方式使用线条连接。现考虑如果是用点或圈而不是线条的方式将这10个点连接起来,画出的就是散点图。

pyplot可以查到,控制线条的种类的字符串可以为'--', '-.', ':', '.'等等:

故现在考虑用'.'或'o'代替'-'连接这些点。

将'o'代替'-'的示例:

import numpy as np
import matplotlib.pyplot as plt

x = np.arange(0,10,1)

plt.plot(x,x+0,'o')

plt.show()

画出的效果是10个散点图:

 

用于画出随机点的示例:

import matplotlib.pyplot as plt
import numpy as np

def rand_data():
    return np.random.uniform(low=0., high=1., size=(100,))

# Generate data.
x1, y1 = [rand_data() for i in range(2)]

plt.plot(x1,y1, 'o',color='b')

plt.show()

100个随机点的散点图效果: 

 

 

2. 使用scatter()画散点图

根据官方文档:matplotlib.pyplot.scatter的定义,scatter()是用来画散点图的:

和plot()相同,scatter()的作用也是将画出的点连接起来,不过其默认连接方式是'o',即点的方式:

 

示例:

import numpy as np
import matplotlib.pyplot as plt

x = np.arange(0,10,1)

plt.scatter(x,x+0)

plt.show()
plt.scatter(x,x+0)

效果和 

plt.plot(x,x+0,'o')

 的效果相同:

3. plot()和scatter()改变点的大小

plot()中改变点的大小的参数是markersize 或 ms:

 

而scatter()中改变点的大小的参数是s:

 

示例:

import numpy as np
import matplotlib.pyplot as plt

x = np.arange(0,10,1)

plt.plot(x,x+0,'o',markersize=4.,color=(0.8,0.,0.))
plt.scatter(x,x+1,s=16.,color=(0.,0.5,0.))

plt.show()

效果:

 

可以看到,plot()的markersize设为4.0,和scatter()的s设为16.0,画出的点大小相同。

这里matplotlib.pyplot.scatter有解释, scatter()中参数s表示的大小,和plot()的markersize大小的平方相同,即[s]=markersize**2,下图参考:pyplot scatter plot marker size

4. 加入图例(legend)后图例中点的大小和数量 

加入图例(legend)后,根据官方参考文档:matplotlib.pyplot.legend

参数markerscale是用于调整legend中点和实际图中画出的点的大小关系,若设markersize=1.0,则legend中的点的大小和图中画出的点大小相同;若设markersize=2.0,则legend中的点的大小是图中画出点的大小的2倍。

numpoints参数作用于调整用线条画出的点,即用plot()画出的点,legend中的点的数目,而scatterpoints参数作用于调整用散点图画出的点,即scatter()画出的点,legend中的点的数目:

 

markerscale,numpoints和scatterpoints3个参数默认值都为1。 

下面加入图例,更改plot()画出的点在legend中点的数量为2,且legend中点的大小为原图的2倍:

import numpy as np
import matplotlib.pyplot as plt

x = np.arange(0,10,1)
#print(x)
plt.plot(x,x+0,'o',label='x+0',markersize=4.,color=(0.8,0.,0.))
plt.scatter(x,x+1,label='x+1',marker='o',s=16.0,color=(0.,0.5,0.))
plt.legend(loc="best",markerscale=2.,numpoints=2,scatterpoints=1,fontsize=12)
plt.show()

效果为:

 

更改scatterpoints大小也为2, 即scatter()画出的点在legend中显示数量为2:

import numpy as np
import matplotlib.pyplot as plt

x = np.arange(0,10,1)
#print(x)
plt.plot(x,x+0,'o',label='x+0',markersize=4.,color=(0.8,0.,0.))
plt.scatter(x,x+1,label='x+1',marker='o',s=16.0,color=(0.,0.5,0.))
plt.legend(loc="best",markerscale=2.,numpoints=2,scatterpoints=2,fontsize=12)
plt.show()

效果为:

 

其它参数未变。

 

 

 

 

 

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

python_matplotlib分别使用plot()和scatter()画散点图,以及如何改变点的大小 的相关文章

  • 在Python中,如何将矩阵逆时针旋转90度?

    gt gt gt def rotate matrix k List List int For example if I have m 1 2 3 2 3 3 5 4 3 rotate matrix m should give me 3 3
  • Keras model.predict 函数给出输入形状错误

    我已经在 Tensorflow 中实现了通用句子编码器 现在我正在尝试预测句子的类概率 我也将字符串转换为数组 Code if model model type universal classifier basic class probs
  • 为什么在连接两个字符串时 Python 比 C 更快?

    目前我想比较 Python 和 C 用来处理字符串的速度 我认为 C 应该比 Python 提供更好的性能 然而 我得到了完全相反的结果 这是 C 程序 include
  • 类型错误:“datetime.datetime”和“str”的实例之间不支持“>”

    我是 python 日期和时间类型的新手 我有一个日期值 date 2018 11 10 10 55 31 00 00 我需要检查该日期值是否超过 90 天 我试过 from datetime import datetime from da
  • 使用pathlib获取主目录

    翻看新的pathlib在 Python 3 4 中 我注意到没有任何简单的方法来获取用户的主目录 我能想到的获取用户主目录的唯一方法是使用旧的os path像这样的库 import pathlib from os import path p
  • 在linux上安装python ssl模块,无需重新编译

    是否可以在已经安装了 OpenSSL 的 Linux 机器上安装 python 的 SSL 模块 而无需重新编译 python 我希望它就像复制几个文件并将它们包含在库路径中一样简单 Python版本是2 4 3 谢谢 是否可以在已经安装了
  • Django 多对多关系(类别)

    我的目标是向我的 Post 模型添加类别 我希望以后能够按不同类别 有时是多个类别 查询所有帖子 模型 py class Category models Model categories 1 red 2 blue 3 black title
  • Python - Unicode 到 ASCII 的转换

    我无法在不丢失数据的情况下将以下 Unicode 转换为 ASCII u ABRA xc3O JOS xc9 I tried encode and decode他们不会这么做 有人有建议吗 Unicode 字符u xce0 and u xc
  • 设置高亮大括号的 vim 颜色主题

    如何更改突出显示大括号的 vim 配色方案 我希望实际编辑 vim 主题文件以使更改永久生效 问候 克雷格 匹配括号的自动高亮颜色称为MatchParen 您可以通过执行以下操作来更改 vimrc 中的颜色 highlight MatchP
  • 查找与另一列 Pandas 中的唯一值关联的列中的值的交集

    如果我有一个像这样的数据框 非常小的例子 col1 col2 0 a 1 1 a 2 2 b 1 3 b 2 4 b 4 5 c 1 6 c 2 7 c 3 我想要所有的交集col2当价值观与其独特性相关时col1值 因此在这种情况下 交集
  • 正在使用 PIL 保存损坏的图像

    我遇到一个问题 操作图像像素导致保存损坏的图像 因此 我使用 PIL 打开图像 然后将其转换为 NumPy 数组 image Image open myimage png np image np asarray image 然后 我转置图像
  • 使用 subprocess.Popen() 或 subprocess.check_call() 时程序卡住

    我想从 python 运行一个程序并找到它的内存使用情况 为此 我正在使用 l a out lt in txt gt out txt p subprocess Popen l shell False stdout subprocess PI
  • 在请求中设置端口

    我正在尝试利用cgminer使用 Python 的 API 我对利用requests图书馆 我了解如何做基本的事情requests but cgminer想要更具体一点 我想缩小 import socket import json sock
  • 如何用正则表达式替换多个匹配/组?

    通常我们会编写以下内容来替换一场比赛 namesRegex re compile r is life re I replaced namesRegex sub r butter There is no life in the void pr
  • Python 属性和 Swig

    我正在尝试使用 swig 为一些 C 代码创建 python 绑定 我似乎遇到了一个问题 试图从我拥有的一些访问器函数创建 python 属性 方法如下 class Player public void entity Entity enti
  • 为什么 Collections.counter 这么慢?

    我正在尝试解决罗莎琳德的基本问题 即计算给定序列中的核苷酸 并在列表中返回结果 对于那些不熟悉生物信息学的人来说 它只是计算字符串中 4 个不同字符 A C G T 出现的次数 我期望collections Counter是最快的方法 首先
  • Python 2.7 缩进错误[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 这个问题是由拼写错误或无法再重现的问题引起的 虽然类似的问题可能是on topic help on topic在这里 这个问题的解决方式不
  • Python 相当于 Scala 案例类

    Python 中是否有与 Scala 的 Case Class 等效的东西 就像自动生成分配给字段而无需编写样板的构造函数一样 当前执行此操作的现代方法 从 Python 3 7 开始 是使用数据类 https www python org
  • 使用 MPI 的 Allreduce 对 Python 对象求和

    我正在使用使用 Python 中的字典和计数器构建的稀疏张量数组操作 我想让并行使用这个数组操作成为可能 最重要的是 我最终在每个节点上都有计数器 我想使用 MPI Allreduce 或另一个不错的解决方案 将其添加在一起 例如 使用计数
  • Biopython 可以执行 Seq.find() 来解释歧义代码吗

    我希望能够在 Seq 对象中搜索考虑歧义代码的子序列 Seq 对象 例如 以下内容应该是正确的 from Bio Seq import Seq from Bio Alphabet IUPAC import IUPACAmbiguousDNA

随机推荐

  • VTK环境安装教程

    安装前依赖环境 CMake VS2019 VTK压缩包 8 2 0即可 build过程 第一次分析完 找到下图中选中项 勾选Configure 解释勾选项 BUILD EXAMPLES 生成一些vtk官方的examples 帮助理解学习 当
  • SQL 后计算的利器 SPL

    目录 专业的结构化数据对象 强大的结构化数据计算能力 灵活的流程控制能力 优化体系结构 SPL资料 现代应用开发中 通常只用SQL实现简单的数据存取动作 而主要的计算过程和业务逻辑直接在应用程序中实现 主要原因在于 过于复杂的SQL很难调试
  • Python JS逆向篇(四)

    Python JS逆向篇 四 找到参数加密位置 跟进window asrsea函数 结果 扣取的js代码 扩展 逆向主题 某易云评论数据 请求时的加密参数 注 文章所涉及内容只做学习参考交流 不做除此之外的任何其它用途 找到参数加密位置 我
  • 解析XML文件时的嵌套异常SAXParseException

    解析XML文件时的嵌套异常SAXParseException 引言 XML 可扩展标记语言 是一种常用的数据格式 用于存储和传输结构化数据 在开发过程中 我们经常需要解析XML文件来获取其中的数据 然而 XML解析过程中可能会遇到各种异常情
  • 关于利用Qt编写应用程序的帮助文档

    转载请注明出处 关于利用Qt编写应用程序的帮助文档 首先推荐Qt官网的example 官网的例子讲的很细致很全面 不过官网的例子全是英文的 百度文库里有对这个例子的翻译 我也看了一下 感觉还不如去看英文的 好的言归正传 讲一下大概的步骤 1
  • node快速创建一个工程项目

    1 安装express npm install g express 2 新建一个工程 指定使用ejs模板引擎 express e 文件名 3 安装需要的模块 cd 文件名 npm install 4 启动 SET DEBUG 文件名 npm
  • Oracle学习(14)【DBA向】:利用DBCA创建Oracle数据库

    数据库管理任务 DBA 1 评测数据库服务器硬件 2 安装Oracle数据库软件 3 规划数据库 4 创建并且打开数据库 5 数据库备份 6 注册用户 7 实现数据库计划 8 全库备份 9 调整数据库性能 数据库规划 作为一名DBA 你必须
  • mac m1 安装 protobuf

    mac m1各种踩坑中 一 背景 mac m1 机器上使用golang grpc 二 安装流程 1 安装protobuf 注 已经安装了brew brew install protobuf 2 安装go的支持 go install goog
  • 用 Python 打造 AIGC 的「操作系统」

    carefree0910 carefree drawboard Infinite Drawboard in Python github com https github com carefree0910 carefree drawboard
  • 挖金矿问题(c++求解)

    n个金矿 共有w个工人 目前可以用的人数 F收益 F n w 递推函数 n个金矿 共有w个工人 目前可以用的人数 F收益 F n w 那么该问题的边界值如下 当w 0且w
  • 蓝桥杯 2019年号字串

    题目 试题 B 年号字串 问题描述 小明用字母 A 对应数字 1 B 对应 2 以此类推 用 Z 对应 26 对于 27以上的数字 小明用两位或更长位的字符串来对应 例如 AA 对应 27 AB 对应 28 AZ 对应 52 LQ 对应 3
  • C# 细说async/await的用法

    目录 一 引言 二 实例演示 2 1 多线程同步执行下载任务 任务完成后通知 2 2 异步执行下载任务 任务完成后通知 三 async await的用法 3 1 跨线程修改UI控件 3 2 异步获取数据 一 引言 首先先来区分一下 同步方法
  • Oracle VM VirtualBox在电脑上安装后只显示32位版本不显示64位版本的问题

    今天准备在Oracle VM VirtualBox上安装linux 结果安装Oracle VM VirtualBox后发现所有操作系统只能选择32位系统类型的 通过网络上寻找原因发现是电脑主板Bios里的V irtualization里设置
  • 憨批的语义分割重制版8——Keras 搭建自己的DeeplabV3+语义分割平台

    憨批的语义分割重制版8 Keras 搭建自己的DeeplabV3 语义分割平台 注意事项 学习前言 什么是DeeplabV3 模型 代码下载 DeeplabV3 实现思路 一 预测部分 1 主干网络介绍 2 加强特征提取结构 3 利用特征获
  • 对象数组题目 Student类

    package object oriented02 对象数组题目 定义类的Student 包含三个属性 学号为number 年级为state int 成绩为score int 创建20个学生对象 学号为1到20 年级和成绩都是随机产生 问题
  • 3.Mybatis 注解方式的基本用法

    Mybatis 也可以使用注解开发方式 这样我们就可以减少编写 Mapper映射文件了 下面介绍用户的增删改查 3 1 修改全局配置文件 在mybatis 全局文件中 通过package标签或者mapper标签的class属性加载mappe
  • 安装gcc-arm-none-eabi-10-2020-q4-major-win32工具(NRF52编译ECC加密文件用)

    gcc arm none eabi 10 2020 q4 major win32安装包下载 链接 https pan baidu com s 1NbpyI fQoKvMUuct0hruxA 提取码 ikeu 安装后环境变量配置 C Prog
  • Linux Capabilities

    Linux Capabilities 入门教程 基础实战篇 为了对 root 权限进行更细粒度的控制 实现按需授权 Linux 引入了另一种机制叫capabilities Capabilites 作为线程 Linux 并不真正区分进程和线程
  • Python创建excel,并写入数据

    usr bin env python coding utf 8 from base import pub param import os import xlrd xlwt from openpyxl reader excel import
  • python_matplotlib分别使用plot()和scatter()画散点图,以及如何改变点的大小

    1 使用plot 画散点图 根据关于matplotlip pyplot的官方文档 pyplot 其plot部分的解释plot 的作用是画出线条和线条上的标记 根据pyplot的官方教学文档 Pyplot tutorial 如果不改变其默认设