前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >掌握坐标轴的log转换

掌握坐标轴的log转换

作者头像
生信修炼手册
发布于 2020-08-17 07:23:34
发布于 2020-08-17 07:23:34
4.4K00
代码可运行
举报
文章被收录于专栏:生信修炼手册生信修炼手册
运行总次数:0
代码可运行

对于跨度很大其分布离散的数据,常用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的乘方的散点图,代码如下

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
>>> 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转换,用法如下

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
>>> plt.loglog(power_x, power_y)

输出结果如下

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

2. semilogx

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
>>> plt.plot(power_x, data)

输出结果如下

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
>>> plt.semilogx(power_x, data)

输出结果如下

3. semilogy

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
>>> plt.plot(data, power_y)

输出结果如下

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
>>> 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两个参数,用法如下

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
>>> plt.loglog(power_x, power_y, basex=2)

输出结果如下

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

·end·

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-08-12,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 生信修炼手册 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
python科学计算学习二:matplo
    博客地址:http://blog.csdn.net/ikerpeng/article/details/20523679
py3study
2020/01/06
7940
Python数据可视化-第6章-坐标轴的定制
matplotlib支持向画布的任意位置添加自定义大小的绘图区域,同时显示坐标轴。通过pyplot模块的axes()函数创建一个Axes类的对象,并将Axes类的对象添加到当前画布中。
用户2225445
2025/04/04
1770
Python数据可视化-第6章-坐标轴的定制
【MATLAB】进阶绘图 ( 进阶绘图展示 | 对数图 | semilogx 半对刻度数图 | semilogy 半对数刻度图 | loglog 双对数刻度图 )
logspace 函数参考文档 : https://ww2.mathworks.cn/help/matlab/ref/logspace.html
韩曙亮
2023/03/29
2.5K0
【MATLAB】进阶绘图 ( 进阶绘图展示 | 对数图 | semilogx 半对刻度数图 | semilogy 半对数刻度图 | loglog 双对数刻度图 )
设置坐标轴刻度的位置和样式
在matplotlib中,通过子模块ticker可以对坐标轴刻度的位置和样式进行设置。刻度线分为major和minor ticks, 通过以下4个函数可以对其位置和样式进行设置
生信修炼手册
2020/09/23
3.2K0
设置坐标轴刻度的位置和样式
[Python]Matplotlib绘图基础
1.简介 Matplotlib 是一个 Python 的 2D绘图库,它以各种硬拷贝格式和跨平台的交互式环境生成出版质量级别的图形。 ---- 2.绘图基础 2.1 图表基本元素 图例和标题 x轴和y轴、刻度、刻度标签 绘图区域及边框 网格线 2.2 图表基本属性 多重绘图属性: 是否在同一个图上绘制多个系列的线 多重子图属性: 是否生成多个子图,并在每个子图上绘制多个系列的线 ---- 3.绘图方式 3.1 Pyplot API[1] 3.1.1 属性设置函数 绘制图边框: box 为图表添加图例: fi
昊楠Hacking
2018/03/08
3K0
[Python]Matplotlib绘图基础
matplotlib的基本用法——调整坐标轴
本文主要是关于matplotlib的一些基本用法。 Demo import matplotlib.pyplot as plt import numpy as np # 绘制普通图像 x = np.linspace(-1, 1, 50) y1 = 2 * x + 1 y2 = x**2 plt.figure() plt.plot(x, y1) plt.plot(x, y2, color = 'red', linewidth = 1.0, linestyle = '--') # 设置坐标轴的取值范围 p
Tyan
2019/05/25
1.5K0
绘制双坐标轴图
双坐标轴图作为常用的可视化方式之一,可以在同一张图中同时展示两个不同范围的数据,示例如下
生信修炼手册
2020/08/28
1.6K0
python实现之初等函数一
初等函数是由基本初等函数经过有限次的四则运算和复合运算所得到的函数。基本初等函数和初等函数在其定义区间内均为连续函数。高等数学将基本初等函数归为五类:幂函数、指数函数、对数函数、三角函数、反三角函数。
python与大数据分析
2022/03/11
3370
python实现之初等函数一
python实现之导数
导数(Derivative),也叫导函数值。又名微商,是微积分中的重要基础概念。当函数y=f(x)的自变量x在一点x0上产生一个增量Δx时,函数输出值的增量Δy与自变量增量Δx的比值在Δx趋于0时的极限a如果存在,a即为在x0处的导数,记作f'(x0)或df(x0)/dx。
python与大数据分析
2022/03/11
5460
python实现之导数
Matlab系列之二维图形(下)
交互式绘图的意思就是可以使用鼠标对图形进行操作,具体的实现看待会的演示,首先了解几个会用到的函数:ginput、gtext和zoom,其中ginput只能用于二维图形绘制,另外两个还适用于三维图形绘制。
狂人V
2021/04/29
1.5K0
Matlab系列之二维图形(下)
python 中numpy基本方法总结可以类推tensorflow
一、数组方法 创建数组:arange()创建一维数组;array()创建一维或多维数组,其参数是类似于数组的对象,如列表等 反过来转换则可以使用numpy.ndarray.tolist()函数,如a.tolist() 创建数组:np.zeros((2,3)),或者np.ones((2,3)),参数是一个元组分别表示行数和列数 对应元素相乘,a * b,得到一个新的矩阵,形状要一致;但是允许a是向量而b是矩阵,a的列数必须等于b的列数,a与每个行向量对应元素相乘得到行向量。 + - / 与 * 的运
学到老
2018/03/16
2.1K0
Python数据可视化-第5章-子图的绘制及坐标轴共享
使用pyplot模块的subplot()函数可以在规划好的某个区域中绘制单个子图。
用户2225445
2025/04/01
2630
Python数据可视化-第5章-子图的绘制及坐标轴共享
【6】python生成数据曲线平滑处理——(Savitzky-Golay 滤波器、convolve滑动平均滤波)方法介绍,推荐玩强化学习的小伙伴收藏
 由于高频某些点的波动导致高频曲线非常难看,为了降低噪声干扰,需要对曲线做平滑处理,让曲线过渡更平滑,可以看出经过平滑处理后更明显去除噪声且更加美观。
汀丶人工智能
2022/12/21
3.3K0
【6】python生成数据曲线平滑处理——(Savitzky-Golay 滤波器、convolve滑动平均滤波)方法介绍,推荐玩强化学习的小伙伴收藏
python实现之初等函数二——反函数
一般来说,设函数y=f(x)(x∈A)的值域是C,若找得到一个函数g(y)在每一处g(y)都等于x,这样的函数x= g(y)(y∈C)叫做函数y=f(x)(x∈A)的反函数,记作x=f-1(y) 。反函数x=f -1(y)的定义域、值域分别是函数y=f(x)的值域、定义域。最具有代表性的反函数就是对数函数与指数函数。
python与大数据分析
2022/03/11
5980
python实现之初等函数二——反函数
用不同的坐标系统对图形元素进行定位
当我们在绘制图形元素时,需要通过x轴和y轴的坐标来指定具体的位置,这里的x轴和y轴就是我们最常用的坐标系统。其实在matplotlib中,还有很多其他的坐标系统, 常用的坐标系统主要包括以下3类
生信修炼手册
2020/09/14
9670
【matplotlib】4-完善统计图形
在绘图区域中可能会出现多个图形,而这些图形如果不加以说明,观察者则很难识别出这些图形的主要内容。因此,我们需要给这些图形添加标签说明,用以标记每个图形所代表的的内容。方便观察者辨识,这个标签说明就是图例。 同样,如果观察者想要清楚地了解绘图区域中的内容。就需要给绘图区域添加文本内容用以说明绘图区域的主要内容,标题就可以让观察者清楚地知道绘图区域的核心信息和图标内容。
程序员小涛
2023/05/09
2.7K0
【matplotlib】4-完善统计图形
Matplotlib for C++不完全手册
matplotlib-cpp是Matplotlib(MPL)为C++提供的一个用于python的matplotlib绘图库的C++包装器。它的构建类似于Matlab和matplotlib使用的绘图API。
艰默
2024/01/11
1.1K0
Matplotlib for C++不完全手册
对图标的坐标轴进行调整
坐标轴包含了标题,刻度线,刻度标签等多个元素,通过对各个元素进行个性化调整,可以使得图片更加美观。在matplotlib中,包含了一系列函数,可以对各种元素进行调整
生信修炼手册
2020/08/28
1.7K0
NumPy Beginner's Guide 2e 带注释源码 九、使用 Matplotlib 绘图
# 来源:NumPy Biginner's Guide 2e ch9 绘制多项式函数 import numpy as np import matplotlib.pyplot as plt # 创建函数 func = x ** 3 + 2 * x ** 2 + 3 * x + 4 # poly1d 根据系数数组创建函数,高项系数在前 func = np.poly1d(np.array([1, 2, 3, 4]).astype(float)) # x 值是 -10 ~ 10 取 30 个点 x = n
ApacheCN_飞龙
2019/02/15
7190
NumPy Beginner's Guide 2e 带注释源码 九、使用 Matplotlib 绘图
Python | numpy matplotlib scipy练习笔记
return y - (t[0] * x**2 + t[1] * x + t[2])
用户7886150
2021/01/02
6700
相关推荐
python科学计算学习二:matplo
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验