(Python)在Matplotlib中对图像坐标轴进行log转换

news2024/10/6 4:16:17

对于跨度很大其分布离散的数据,常用log转换来缩写其差距,呈现在图上的效果也更好,比如在绘制转录组的表达量数据时,常用log转换之后的值进行绘制。在matplotlib中,支持在绘图时对数据进行log转换,根据log转换的需求,体用了以下3种函数

1. loglog, 同时对x轴和y轴的值进行log转换

2. semilogx, 只对x轴的值进行log转换,y轴的值不变

3. semilogy, 只对y轴的值进行log转换,x轴的值不变

上述3种函数本质其实是plot函数,只不过在绘制之前自动对相应的数据进行了log转换,所以plot函数的参数对于这些函数都适用,下面来具体看下用法

1. loglog

首先构建一个x轴和y轴数据都是10的乘方的散点图,代码如下
 

import matplotlib.pyplot as plt
import numpy as np
data = np.array([1, 2, 3, 4])
power_x = np.power(10 , data)
power_y = np.power(10 , data)
plt.plot(power_x, power_y)

输出结果如下

通过loglog函数,可以同时对x轴和y轴的数据进行log转换,用法如下

plt.loglog(power_x, power_y)

输出结果如下

从效果可以看出,采用了log10转换之后的值进行绘图,同时对应的标签用乘方的方式进行标记。

2. semilogx

semilogx函数只对x轴的值进行log转换,先来看下不转换时的效果,代码如下

plt.plot(power_x, data)

输出结果如下

只对x轴的值进行log转换,代码如下

plt.semilogx(power_x, data)

输出结果如下

3. semilogy

semilogy函数只对y轴的值进行log转换,先来看下不转换时的效果,代码如下

plt.plot(data, power_y)

输出结果如下

只对y轴的值进行log转换,代码如下

plt.semilogy(data, power_y)

输出结果如下

除了以上基本用法外,该函数还具有以下3种专属参数

1. base, 指定对数的值,默认值为10,即进行log10的转换

2. subs,设定minor ticks的位置,默认值为None

3. nonpositive, 对非负值的处理,因为只有正数可以取log, 如果原始值为负值,此时有两种处理方式,第一种是丢掉这个点,也是默认的处理方式,对应该参数的值为mask, 在图中不显示这个点,第二种是将这个值调整为最接近的正数,对应该参数的取值为clip

为了便于对x轴和y轴精确指定,上述参数都有x轴和y轴两个版本,以base为例,具体的有basex和basey两个参数,用法如下
 

plt.loglog(power_x, power_y, basex=2)

输出结果如下

通过log系列函数,可以灵活的对数据进行log转换。

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

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

相关文章

解密代理IP:加速互联网业务的利器

众所周知,代理IP是一类常见的互联网服务。借助代理IP,一个终端可以通过远程的服务器(即代理IP对应的服务器)访问另一个终端,从而非直接地接触。代理IP在日常互联网应用中的应用场景十分广泛,包括但不限于&a…

C++:模板初阶

本篇文章主要对模板有个简单的认识,方便我们后面对模板进行更加深入的学习。 目录 1.泛型编程 2.函数模板 2.1 函数模板的概念 2.2 函数模板格式 2.3 函数模板的原理 2.4 函数模板的实例化 2.5 模板参数的匹配原则 3.类模板 3.1 类模板的格式定义 3.2 类模…

2023年【北京市安全员-C3证】最新解析及北京市安全员-C3证作业考试题库

题库来源:安全生产模拟考试一点通公众号小程序 北京市安全员-C3证最新解析是安全生产模拟考试一点通总题库中生成的一套北京市安全员-C3证作业考试题库,安全生产模拟考试一点通上北京市安全员-C3证作业手机同步练习。2023年【北京市安全员-C3证】最新解…

缺失找不到msvcr71.dll无法执行代码,应用程序无法启动的解决方法

最近我在使用电脑时遇到了一个问题,提示我缺少 msvcr71.dll 这个文件。这个文件是系统中的一个动态链接库文件,常用于支持一些运行在 Windows 系统上的程序。 当我发现这个问题时,我感到有点困惑和焦虑。因为我需要使用的软件要求系统中必须…

SimpleCG图像操作基础

上一篇我们介绍了程序的交互功能,就可以编写一些简单的游戏了,例如贪吃蛇、扫雷、俄罗斯方块、五子棋等,都可以使用图形函数直接绘制,在后续文章中将逐一展示。不过编写画面丰富游戏离不开图像,所以本篇我们介绍一下基…

零信任身份管理平台,构建下一代网络安全体系

随着数字化时代的到来,网络安全已成为企业和组织面临的一项重要挑战。传统的网络安全方法已经无法满足不断演变的威胁和技术环境。近期,中国信息通信研究院(简称“中国信通院”)发布了《零信任发展研究报告( 2023 年&a…

全球领先的即时通讯厂家,为企业提供卓越沟通解决方案

不同部门的协同合作是企业内部高效运作的关键,然而,传统的沟通方式往往会受到时间、空间以及信息传递效率的限制,给企业带来不必要的困扰。随着科技的不断进步,解决这一问题的新利器应运而生——WorkPlus,一款基于即时…

链表增删操作问题及解决方法

目录 链表增加元素首部中间尾部 链表删除元素首部中间尾部 链表是一种常用的数据结构,用于存储和组织数据。在链表中,增加和删除元素是常见的操作。然而,在进行链表的增删操作时,对于首部、中间和尾部位置的元素,都存在…

UWB安全数据通讯STS-加密、身份认证

DW3000系列才能支持UWB安全数据通讯,DW1000不支持 IEEE 802.15.4a没有数据通讯安全保护机制,IEEE 802.15.4z中指定的扩展得到增强(在PHY/RF级别):增添了一个重要特性“扰频时间戳序列(STS)”&a…

mysql修改root用户的密码

mysql修改root用户的密码 方法1: 用SET PASSWORD命令方法2:用mysqladmin方法3:用UPDATE直接编辑user表方法4:在忘记root密码的时候,可以这样以windows为例: 连接mysql问题 mysql备份工具之mysqldump 方法1&…

反转链表(java)

大家好我是苏麟今天说一说链表常见的简单题目 . BM1 反转链表 牛客BM1 反转链表 : 描述 : 给定一个单链表的头结点(该头节点是有值的,比如在下图,它的val是1),长度为n,反转该链表后,返回新链表的表头。 分析 : …

AP5101C 高压线性恒流 LED电源驱动IC 3D打印机显示灯驱动器

1,产品描述 AP5101C 是一款高压线性 LED 恒流芯片 , 简单 、 内置功率管 , 适用于6- 100V 输入的高精度降压 LED 恒流驱动芯片。电流2.0A。AP5101C 可实现内置MOS 做 2.0A,外置 MOS 可做 3.0A 的。AP5101C 内置温度保护功能 ,温度…

3. 实战入门

3. 实战入门 文章目录 3. 实战入门3.1 Namespace3.1.1测试两个不同的名称空间之间的 Pod 是否连通性 3.2 Pod3.3 Label3.4 Deployment3.5 Service 本章节将介绍如何在kubernetes集群中部署一个nginx服务,并且能够对其进行访问。 3.1 Namespace Namespace是kubernet…

IDEA使用内置database数据库连接mysql报错:javax.net.ssl.SSLHandshakeException

参考一些博客的方式: 使用idea内置database连接数据库报错javax.net.ssl.SSLHandshakeException: No appropriate protocol_idea database ssl_你当像山的博客-CSDN博客 他们的方式是:在url后添加useSSLfalse 介绍另外一种方式: 点击datab…

大规模语言LLaVA:多模态GPT-4智能助手,融合语言与视觉,满足用户复杂需求

大规模语言LLaVA:多模态GPT-4智能助手,融合语言与视觉,满足用户复杂需求 一个面向多模式GPT-4级别能力构建的助手。它结合了自然语言处理和计算机视觉,为用户提供了强大的多模式交互和理解。LLaVA旨在更深入地理解和处理语言和视…

小程序setData动态传递key

有些时候可能需要根据key是个变量 比如 let keyName "name" this.setData({keyName :"张三" })本来想将keyName替换为name的,但是小程序只会在data中定义一个key为keyName ,value为“张三”的一条数据。 正确写法为: let keyNam…

SS626V100_SDK_V2.0.1.0 安装编译 osdrv 问题汇总

目录 前言1、开发环境2、在 linux 服务器上安装交叉工具链2.1 安装 aarch64-mix410-linux.tgz2.2 安装 cc-riscv32-cfg11-musl-20220523-elf.tar.gz2.3 检查工具链版本,打印版本则表示配置成功 3、安装 SDK3.1 SS626V100_SDK_V2.0.1.0 安装包位置3.2 解压缩并展开 S…

怎么把图片改成jpg格式?

怎么把图片改成jpg格式?大家都知道,随着计算机被发明到现在已经存在了很多年,在这么多的的技术发展过程中,也形成了种类非常多的图片文件格式,例如平时我们能接触到的图片格式有jpg、png、gif、bmp、heic、tiff、jfif、…

力扣-python-两数之和

题解: class Solution(object):def twoSum(self, nums, target):# 遍历列表for i in range(len(nums)):# 计算需要找到的下一个目标数字res target-nums[i]# 遍历剩下的元素,查找是否存在该数字if res in nums[i1:]:# 若存在,返回答案。这里…