如何在 python 中创建双对数图
双对数图是在 x 轴和 y 轴上都使用对数刻度的图。
当两个变量之间的真实关系遵循某种类型的幂律时,这种类型的图对于可视化两个变量非常有用。
本教程介绍如何在 Python 中创建双对数图。
如何在 Python 中创建双对数图
假设我们有以下 pandas DataFrame:
import pandas as pd import matplotlib. pyplot as plt #createDataFrame df = pd. DataFrame ({' x ': [3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22], ' y ': [3, 4, 5, 7, 9, 13, 15, 19, 23, 24, 29, 38, 40, 50, 56, 59, 70, 89, 104, 130]}) #create scatterplot plt. scatter (df. x , df. y )
很明显, x和y之间的关系遵循幂律。
以下代码展示了如何使用numpy.log()对两个变量执行对数转换并创建双对数图以可视化它们之间的关系:
import numpy as np #perform log transformation on both x and y xlog = np. log ( df.x ) ylog = np. log ( df.y ) #create log-log plot plt. scatter (xlog, ylog)
x 轴显示 x 的对数,y 轴显示 y 的对数。
请注意,与上图相比,log(x) 和 log(y) 之间的关系更加线性。
请随意添加标题和轴标签以使绘图更易于解释:
#create log-log plot with labels
plt. scatter (xlog, ylog, color=' purple ')
plt. xlabel (' Log(x) ')
plt. ylabel (' Log(y) ')
plt. title (' Log-Log Plot ')
另请注意,您可以通过简单地使用plt.plot()创建线图而不是散点图,如下所示:
#create log-log line plot
plt. plot (xlog, ylog, color=' purple ')
plt. xlabel (' Log(x) ')
plt. ylabel (' Log(y) ')
plt. title (' Log-Log Plot ')