用pyplotlib画图

突然有个需求,我需要对数据取对数,然后进行统计等相关操作。

对数的公式都忘记了,然后就自己推导了一下。先上一段数学公式的证明过程:

* 证明:loga(b)=logc(b)/logc(a)。
用到的公式:(x^m)^n=x^(m*n)。
设:a^n=b,c^y=b,c^x=a,则:n=loga(b),y=logc(b),x=logc(a)。
则:c^y=b=a^n=(c^x)^n=c^(x*n)=c^y。即:x*n=y,即:n=y/x。
有:loga(b)=logc(b)/logc(a)。

* 证明:loga(b)*logb(a)=1。
设:a^n=b,b^m=a,则:n=loga(b),m=logb(a)。
则:b=a^n=(b^m)^n=b^(m*n)=b^1,即:m*n=1。
有:loga(b)*logb(a)=1。

* 证明:a^loga(b)=b。
略。证明见下方。

* 证明:logc(a^n)=n*logc(a)。
令:c^y=b,则有:logc(b)=y,则有:c^logc(b)=b。
假设结论成立,则有:a^n=c^(n*logc(a))=(c^logc(a))^n=a^n。
可得:a^n=a^n,推论成立,所以假设成立。

我们可以用pyplotlib将底数和对数的关系用图形画出来。

http://www.labri.fr/perso/nrougier/teaching/matplotlib/matplotlib.html#quick-references

下面是python调用matplotlib画图的代码:

import math
import matplotlib.pyplot as plt

if __name__ == "__main__":
    base = 1 + 9.8 / 100

    l_x = [x for x in range(1, 20, 1)]
    l_y = [base**x for x in l_x]
    ly2 = [math.log10(y) for y in l_y]
    ly3 = [x * math.log10(base) for x in l_x]

    plt.plot(l_x, l_y, label="power(base, x)", color='red', linewidth=1)
    plt.plot(l_x, ly2, "-", label='log10(base^x)', color="g", lw=1)
    plt.plot(l_x, ly3, ".", label='x*log10(base)', color='b', lw=4)
    plt.legend()
    plt.show()
画出的图形如下:


未完待续。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值