利用python绘制笛卡尔直角坐标系

作者:帅帅de三叔 时间:2021-03-07 13:39:56 

背景:

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

利用python绘制笛卡尔直角坐标系

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

利用python绘制笛卡尔直角坐标系

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

代码:

import math
import 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方法创建一个绘图区对象ax
fig.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)

利用python绘制笛卡尔直角坐标系

其次,添加自定义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") 

利用python绘制笛卡尔直角坐标系

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

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)) 

利用python绘制笛卡尔直角坐标系

修缮刻度和范围:

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绘制笛卡尔直角坐标系

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

来源:https://blog.csdn.net/zengbowengood/article/details/102862072

标签:python,绘制,直角,坐标系
0
投稿

猜你喜欢

  • Python中的字符串查找操作方法总结

    2021-06-13 12:21:46
  • Laravel实现ApiToken认证请求

    2023-11-24 10:35:48
  • python 读取竖线分隔符的文本方法

    2023-03-12 14:45:14
  • 使用Python编写类UNIX系统的命令行工具的教程

    2023-08-24 05:03:02
  • cmd运行python文件时对结果进行保存的方法

    2023-03-12 03:18:02
  • Oracle 数组的学习 小知识也要积累,养成好的学习态度

    2009-08-04 12:42:00
  • asp删除mssql数据库中没有记录的图片代码

    2011-03-11 11:22:00
  • django解决跨域请求的问题详解

    2021-07-21 14:45:45
  • pycharm使用anaconda全过程

    2023-07-19 04:57:12
  • HTML头部属性全接触

    2007-09-05 19:09:00
  • ASP 改良版MD5、SHA256多重加密类(二次及多次)

    2012-11-30 20:26:47
  • 谈谈Python进行验证码识别的一些想法

    2022-09-19 12:50:53
  • 如何用Python做一个微信机器人自动拉群

    2023-04-07 10:50:09
  • Python检测和防御DOS攻击的最简单方法

    2022-04-12 17:23:19
  • 终结IE6下背景图片闪烁问题

    2009-03-04 10:11:00
  • xml css htc 的综合运用

    2008-10-10 11:41:00
  • 如何利用PyQt5制作一个简单的登录界面

    2023-11-18 20:36:31
  • ASPJPEG组件简要攻略之水印、缩略图和描边代码

    2008-12-17 12:08:00
  • 长文章自动分页类

    2008-09-10 12:11:00
  • Tensorflow Summary用法学习笔记

    2023-08-12 15:08:53
  • asp之家 网络编程 m.aspxhome.com