上一期,我们在探讨性质的时候,我们画了几个非常漂亮的图,这一期,就把画图的python放上来,设对数函数为

其中a>0,且a≠1。对应的指数函数为。现在来分a>1和0

(1) 当0 完整代码# -*- coding: utf-8 -*-

"""

Created on Mon Feb 17 17:32:49 2020

project name:draw_logarithm_figure

@author: 帅帅de三叔

"""

import math

import numpy as np

import matplotlib.pyplot as plt

import mpl_toolkits.axisartist as axisartist #导入坐标轴加工模块

plt.rcParams['font.sans-serif']=['SimHei']

plt.rcParams['axes.unicode_minus']=False

fig=plt.figure(figsize=(6,4)) #新建画布

ax=axisartist.Subplot(fig,111) #使用axisartist.Subplot方法创建一个绘图区对象ax

fig.add_axes(ax) #将绘图区对象添加到画布中

def logarithm_func(x, a=1/2): #定义指数函数

y=math.log(x, a)

return y

X=np.linspace(0.01, 4, 100) #构造自变量组

Y=[logarithm_func(x) for x in X] #求函数值

ax.plot(X, Y, label=r'$0) #绘制指数函数

ax.scatter(1, 0, color='red')

plt.legend()

plt.show()

print(max(X), max(Y)) #测试一下自变量最大值和因变量最大值,为后面的坐标轴设置依据

ax.axis[:].set_visible(False) #隐藏原来的实线矩形

ax.axis["x"]=ax.new_floating_axis(0, 0, axis_direction="bottom") #添加x轴

ax.axis["y"]=ax.new_floating_axis(1, 0, axis_direction="bottom") #添加y轴

ax.axis["x"].set_axisline_style("-|>", size=1.0) #给x坐标轴加箭头

ax.axis["y"].set_axisline_style("-|>", size=1.0) #给y坐标轴加箭头

ax.annotate(s='x', xy=(max(X), 0), xytext=(max(X)+1, 0.3)) #标注x轴

ax.annotate(s='y', xy=(0, 1.0), xytext=(-0.2, max(Y)+1)) #标注y轴

plt.xlim(-1, 5) #设置横坐标范围

plt.ylim(-5, 3) #设置纵坐标范围

X_lim=np.arange(int(min(X)), max(X)+1, 1)

ax.set_xticks(X_lim) #设置x轴刻度

Y_lim=np.arange(-3, max(Y)+1, 1)

ax.set_yticks(Y_lim) #设置y轴刻度

ax.annotate(s=r'$y=log_a x$',xy=(1, 1), xytext=(1, 1)) #r'$y=(\frac{1}{2})^x$'效果图

0

(2)当a>1时 完整代码# -*- coding: utf-8 -*-

"""

Created on Mon Feb 17 17:32:49 2020

project name:draw_logarithm_figure

@author: 帅帅de三叔

"""

import math

import numpy as np

import matplotlib.pyplot as plt

import mpl_toolkits.axisartist as axisartist #导入坐标轴加工模块

plt.rcParams['font.sans-serif']=['SimHei']

plt.rcParams['axes.unicode_minus']=False

fig=plt.figure(figsize=(6,4)) #新建画布

ax=axisartist.Subplot(fig,111) #使用axisartist.Subplot方法创建一个绘图区对象ax

fig.add_axes(ax) #将绘图区对象添加到画布中

def logarithm_func(x, a=2): #定义指数函数

y=math.log(x, a)

return y

X=np.linspace(0.01, 4, 100) #构造自变量组

Y=[logarithm_func(x) for x in X] #求函数值

ax.plot(X, Y, label=r'$a>1$') #绘制指数函数

ax.scatter(1, 0, color='red')

plt.legend()

plt.show()

print(max(X), max(Y)) #测试一下自变量最大值和因变量最大值,为后面的坐标轴设置依据

ax.axis[:].set_visible(False) #隐藏原来的实线矩形

ax.axis["x"]=ax.new_floating_axis(0, 0, axis_direction="bottom") #添加x轴

ax.axis["y"]=ax.new_floating_axis(1, 0, axis_direction="bottom") #添加y轴

ax.axis["x"].set_axisline_style("-|>", size=1.0) #给x坐标轴加箭头

ax.axis["y"].set_axisline_style("-|>", size=1.0) #给y坐标轴加箭头

ax.annotate(s='x', xy=(max(X), 0), xytext=(max(X)+1, 0.3)) #标注x轴

ax.annotate(s='y', xy=(0, 1.0), xytext=(-0.2, max(Y)+1)) #标注y轴

plt.xlim(-1, 5) #设置横坐标范围

plt.ylim(-5, 3) #设置纵坐标范围

X_lim=np.arange(int(min(X)), max(X)+1, 1)

ax.set_xticks(X_lim) #设置x轴刻度

Y_lim=np.arange(-3, max(Y)+1, 1)

ax.set_yticks(Y_lim) #设置y轴刻度

ax.annotate(s=r'$y=log_a x$',xy=(1, 1), xytext=(1, 1)) #r'$y=(\frac{1}{2})^x$'效果图

a>1 两个代码对比,可以看到,仅改了参数a的初始值和label标签,因为两个函数的定义域和值域是一致的。

对数函数vs指数函数

这两个函数虽然互为反函数,但是定义域和值域不一致,所以需要在定义函数的时候给出不同的自变量取值范围,否则会出现math domain error 。

完整代码# -*- coding: utf-8 -*-

"""

Created on Tue Feb 18 08:49:21 2020

project name:logarithm_vs_exponential

@author: 帅帅de三叔

"""

import math

import numpy as np

import matplotlib.pyplot as plt

import mpl_toolkits.axisartist as axisartist #导入坐标轴加工模块

plt.rcParams['font.sans-serif']=['SimHei']

plt.rcParams['axes.unicode_minus']=False

fig=plt.figure(figsize=(6,4)) #新建画布

ax=axisartist.Subplot(fig,111) #使用axisartist.Subplot方法创建一个绘图区对象ax

fig.add_axes(ax) #将绘图区对象添加到画布中

def logarithm_func(x, a=2): #定义指数函数

y=math.log(x, a)

return y

def exponential_func(x, a=2): #定义指数函数

y=math.pow(a, x)

return y

X=np.linspace(0.01, 4, 100) #构造自变量组

Y=[logarithm_func(x) for x in X] #求函数值

ax.plot(X, Y, label='对数函数') #绘制指数函数

ax.scatter(1, 0, color='red')

X1=np.linspace(-4, 4, 100)

Y1=[exponential_func(x) for x in X1]

ax.plot(X1, Y1, label='指数函数')

ax.scatter(0, 1, color='red')

ax.plot(X1, X1, color='green', label=r'$y=x$')

plt.legend(loc=2)

plt.show()

print(max(X), max(Y)) #测试一下自变量最大值和因变量最大值,为后面的坐标轴设置依据

ax.axis[:].set_visible(False) #隐藏原来的实线矩形

ax.axis["x"]=ax.new_floating_axis(0, 0, axis_direction="bottom") #添加x轴

ax.axis["y"]=ax.new_floating_axis(1, 0, axis_direction="bottom") #添加y轴

ax.axis["x"].set_axisline_style("-|>", size=1.0) #给x坐标轴加箭头

ax.axis["y"].set_axisline_style("-|>", size=1.0) #给y坐标轴加箭头

ax.annotate(s='x', xy=(max(X), 0), xytext=(max(X)+1, 0.3)) #标注x轴

ax.annotate(s='y', xy=(0, 1.0), xytext=(-0.2, 5)) #标注y轴

plt.xlim(-5, 5) #设置横坐标范围

plt.ylim(-5, 5) #设置纵坐标范围

X_lim=np.arange(-4, 4, 1)

ax.set_xticks(X_lim) #设置x轴刻度

Y_lim=np.arange(-4, 4, 1)

ax.set_yticks(Y_lim) #设置y轴刻度效果图

a>1

只需要在定义指数函数和对数函数的时候给a赋予不同的参数便可出现不同的形状,下图是a=1/2 时的效果图

0

如果你不会写代码或者还有什么不懂的欢迎来“三行科创”微信公众号留言,同时交流群免费向大家开放,入群讲缘分。 参考文献

1,https://blog.csdn.net/zengbowengood/article/details/104338878

2,https://blog.csdn.net/zengbowengood/article/details/102862072

3,https://blog.csdn.net/zengbowengood/article/details/104360150

4,https://blog.csdn.net/zengbowengood/article/details/104260155

5,https://matplotlib.org/api/_as_gen/matplotlib.pyplot.html

6,https://blog.csdn.net/qq_17528659/article/details/82152530

- - -The end- - -

17521754388

python绘制对数函数_python绘制对数函数相关推荐

  1. python turtle绘制柱状图_python绘制图形(Turtle模块)

    用python的Turtle模块可以绘制很多精美的图形,下面简单介绍一下使用方法. 需要用到的工具有python,python 的安装这里就不再细说.自行搜索. from turtle import ...

  2. python彩色蟒蛇绘制方向_python绘制蟒蛇,绘制五彩蟒蛇

    原博文 2019-05-06 23:26 − python绘制蟒蛇,绘制五彩蟒蛇 1.用Python绘制蟒蛇 from turtle import * setup(650,350,200,200) p ...

  3. python奥运五环_Python绘制奥运五环

    绘制奥运五环主要涉及到Python中的turtle绘图库运用: turtle.forward(distance) 向当前画笔方向移动distance像素长度 turtle.backward(dista ...

  4. python如何绘制直线_python绘制直线的方法

    本文实例为大家分享了python绘制直线的具体代码,供大家参考,具体内容如下 #!/usr/bin/env python import vtk # 绘制通用方法 def myshow(linepoly ...

  5. python热力图背景_python 绘制场景热力图的示例

    我们在做诸如人群密集度等可视化的时候,可能会考虑使用热力图,在Python中能很方便地绘制热力图. 下面以识别图片中的行人,并绘制热力图为例进行讲解. 步骤1:首先识别图像中的人,得到bounding ...

  6. python画正方体_python绘制立方体的方法

    本文实例为大家分享了python绘制立方体的具体代码,供大家参考,具体内容如下 #!/usr/bin/env python # This is (almost) a direct C++ to Pyt ...

  7. python七段数码管绘制秒表_Python绘制七段数码管实例代码

    七段数码管(seven-segmentindicator)由7段数码管拼接而成,每段有亮或不亮两种情况,改进型的七段数码管还包括一个小数点位置 绘制模式: input:输入当前日期的数字形式 proc ...

  8. python 显示中文_Python|绘制个性化数据的动态图表及解决中文显示问题……

    先安装各个库文件,以下为我的win10系统安装的Python版本及各个库文件的版本,安装命令如下: pip3 install 库文件名==版本号 -i https://pypi.tuna.tsingh ...

  9. python彩虹图_python绘制彩虹图

    本文实例为大家分享了python绘制彩虹图的具体代码,供大家参考,具体内容如下 from turtle import * #控制彩虹路径 def path(pen, r, g, b): pen.pen ...

最新文章

  1. 最长不下降子序列的O(n^2)算法和O(nlogn)算法
  2. 人事面试的那些问题及背后的考察点
  3. ACM: hihicoder #1174 : 拓扑排序·一 STL- queue
  4. 用python画出圣诞树_【闲趣】如何用python画出一棵圣诞树
  5. html5图片列表纵向,div css图片列表实例布局案例ul li布局
  6. api postmain 鉴权_API授权与验证 - 文档中心 - 快代理
  7. 家里的存款以每个月六千元人民币的速度增长,这能达到什么生活水平?
  8. pytorch学习笔记(五):线性回归的简洁实现
  9. Win7系统经常蓝屏故障处理过程及思路
  10. latex文字加粗、斜体
  11. uniapp开发微信公众号(h5)项目如何引入微信jssdk,分享,扫一扫
  12. 日拱一卒,功不唐捐 | 每日思考俱乐部 专栏更新通知
  13. Python中计算两个数据点之间的欧式距离,一个点到数据集中其他点的距离之和
  14. Kinect Fusion三维重建
  15. GameFramework篇:StarForce全解读(前言)
  16. PHP:Maze迷宫寻址算法(附完整源码)
  17. 《Python编程从入门到实践 第二版》第十八章练习
  18. 计算机科学 江西二本大学排名,江西大学排名_江西二本大学排名
  19. 2010显卡性能排行
  20. Ubuntu 更新软件命令

热门文章

  1. 通过Wireshark来了解Zigbee协议
  2. 孙悟空无姓无名的时候,阎王生死簿是怎么写的呢?
  3. css3-pie,PIE使IE支持CSS3圆角盒阴影与渐变渲染
  4. 04---法拉第电磁感应定律
  5. 友情链接交易网站源码
  6. 视频教程-全新大数据企业电商数据仓库项目实战教程-大数据
  7. JBook api 相关使用说明
  8. 域名、主机和网站之间的区别
  9. table.bootstrapTable() 之基本使用方法
  10. 华硕fx80ge安装linux,华硕FX80GE火陨版(i7 8750H)笔记本u盘重装系统win8教程