所谓对数图就是用对数坐标绘制的图形。对于对数刻度来说,其间隔表示的是变量的值在数量级上的变化,这与线性刻度有很大的不同。对数图分为双对数图和半对数图, 所谓双对数图是两个坐标轴都采用对数刻度,对应的函数 是 plt.loglog() ,半对数分为 plt.semilogx() 和 plt.semilogy() , 即一个坐标轴采用对数,另一个不采用 。
示例 :
import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
import os
df = pd.read_csv('.\\data\\transcount.csv')
# groupby 按照 year 分组 ,
df = df.groupby('year').aggregate(np.mean)
years = df.index.values
counts = df['trans_count'].values
poly = np.polyfit(years,np.log(counts),deg =1 )
# np.ploy1d(系数) 将多项式系数反推出 多项式函数表达式
z = np.poly1d(poly)
print(z)
print("Poly : ",poly)
plt.scatter(years,counts,c='r')
#多项式曲线求值函数:polyval( )
plt.semilogy(years,np.exp(np.polyval(poly,years)))
plt.show()