1000字范文,内容丰富有趣,学习的好帮手!
1000字范文 > python绘制笛卡尔直角坐标系

python绘制笛卡尔直角坐标系

时间:2021-10-02 16:36:58

相关推荐

python绘制笛卡尔直角坐标系

python绘制笛卡尔直角坐标系

背景完整代码代码解读

背景

有些数学题目经常要用到数形结合思想,尤其是一些函数题目,如果能够把函数图像画出来进行解题的话,思路会更加清晰明了。python绘图主要用到matplotlib绘图模块,平时我们看到的往往是下面这种图

用一个实线矩形把几何图形封闭起来,看起来好像在一个象限里面。现实中,我们通常采用描点作图,首先建立一个笛卡尔直角坐标系,然后根据一个自变量,一个因变量的在坐标系里面描一些点,然后用一条光滑曲线把这些点串起来,更像下面这种图

那么,我们怎么才能利用matplotlib模块画出上面的正弦函数呢?先看代码,再听分解

完整代码

# -*- coding: utf-8 -*-"""Created on Fri Nov 1 20:39:16 project name:plot sine function image with python@author: 帅帅de三叔"""import mathimport numpy as np #导入数值计算模块import matplotlib.pyplot as plt #导入绘图模块import mpl_toolkits.axisartist as axisartist #导入坐标轴加工模块fig=plt.figure(figsize=(4,2)) #新建画布ax=axisartist.Subplot(fig,111) #使用axisartist.Subplot方法创建一个绘图区对象axfig.add_axes(ax) #将绘图区对象添加到画布中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=(2*math.pi,0) ,xytext=(2*math.pi,0.1)) #标注x轴ax.annotate(s='y' ,xy=(0,1.0) ,xytext=(-0.5,1.0)) #标注y轴plt.xlim(-6.3,6.3) #设置横坐标范围plt.ylim(-1.1,1.1) #设置纵坐标范围ax.set_xticks([-2*math.pi,-math.pi,0,math.pi,2*math.pi]) #设置x轴刻度ax.set_yticks([-1,1]) #设置y轴刻度y=[] #用来存放函数值x=np.linspace(-2*math.pi,2*math.pi,100) #构造横坐标数据for xi in x: #生成函数值y.append(math.sin(xi))#追加plt.plot(x,y,color="blue") #描点连线plt.show() #出图

代码解读

工欲善其事必先利其器,画坐标轴当然要用到坐标轴加工类axisartist,接下来就是用匠心精神不断打磨坐标轴。

首先,隐藏原来的实线矩形

ax.axis[:].set_visible(False)

其次,添加自定义x轴和y轴

ax.axis["x"]=ax.new_floating_axis(0,0,axis_direction="bottom") ax.axis["y"]=ax.new_floating_axis(1,0,axis_direction="bottom")

接着,加箭头,设置箭头款式,并把坐标轴标注出来

ax.axis["x"].set_axisline_style("->",size=1.0) ax.axis["y"].set_axisline_style("->",size=1.0) ax.annotate(s='x' ,xy=(2*math.pi,0) ,xytext=(2*math.pi,0.1)) ax.annotate(s='y' ,xy=(0,1.0) ,xytext=(-0.5,1.0))

修缮刻度和范围

plt.xlim(-6.3,6.3) plt.ylim(-1.1,1.1) ax.set_xticks([-2*math.pi,-math.pi,0,math.pi,2*math.pi]) ax.set_yticks([-1,1])

到这里,一个比较好看的正弦函数图像才算画出来,逻辑上来说,要使得坐标轴的标注位置恰当,加标注操作应该在设置坐标轴范围操作之后。

延伸阅读 python画三维爱心

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。