欢迎关注”生信修炼手册”!
对于跨度很大其分布离散的数据,常用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