前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python绘制参数方程图

Python绘制参数方程图

作者头像
云深无际
发布2021-05-18 11:30:34
1.8K0
发布2021-05-18 11:30:34
举报
文章被收录于专栏:云深之无迹

vscode里面自动的jupyter,有毒,用不了。。。要执行下面的操作

代码语言:javascript
复制
pip install pip-autoremove
代码语言:javascript
复制
 pip-autoremove.exe jupyter -y
代码语言:javascript
复制
pip install jupyter

新版的code,可以设置更多的选项

终于看到了我们久违的python,可以使用tab跳出了

shift+Enter

Markdown也正常使用

代码语言:javascript
复制
import matplotlib.pyplot as plt  
from matplotlib import animation  
import numpy as np  
import math  
def xin():  
    t = np.linspace(0, math.pi*2, 1000)  
    # 参数方程的范围
    x = np.cos(3*t)
    y = np.sin(2*t)
    # 参数式
    plt.plot(x, y, color='blue', 
             linewidth=2, label='圆')  
    # 传入x,y,颜色是蓝色,线宽,
    plt.xlabel('t')  
    plt.ylabel('h')  
    # y,x轴的名字
    plt.ylim(-1, 1)  
    plt.xlim(-1.5,1.5)  
    # 坐标轴的长度
    plt.legend()  
    plt.show()  
xin()

先完整的绘制一个图

  1. 取x点
  2. 书写表达式
  3. 绘制
  4. 美化
代码语言:javascript
复制
    x = np.cos(50*t)
    y = np.sin(39*t)

将参数改变,再绘制一次

接下来绘制圆的参数方程

代码语言:javascript
复制
#半径
r = 2.0
# 圆心
a, b = (0., 0.)
#参数方程
theta = np.arange(0, 2*np.pi, 0.01)
x = a + r * np.cos(theta)
y = b + r * np.sin(theta)

很完美

代码语言:javascript
复制
from math import pi
from numpy import cos, sin
from matplotlib import pyplot as plt

if __name__ == '__main__':
    '''plot data margin'''
    angles_circle = [i * pi / 180 for i in range(0, 360)]  # i先转换成double
 
    x = cos(angles_circle)
    y = sin(angles_circle)
    plt.plot(x, y, 'r')

    plt.axis('equal')
    plt.axis('scaled')
    plt.show()

另外一种绘制圆形的方法~

代码语言:javascript
复制
import numpy as np
from matplotlib import pyplot as plt
r=2.0
a,b=0.0,0.0
# 标准方程
x = np.arange(a-r, a+r, 0.01)
y = b + np.sqrt(r**2 - (x - a)**2)

fig = plt.figure() 
axes = fig.add_subplot(111)
axes.plot(x, y) # 上半部
axes.plot(x, -y) # 下半部

axes.axis('equal')

plt.show()

这里是使用的圆的标准方程进行绘制

代码语言:javascript
复制
import matplotlib.pyplot as plt
import numpy as np

# create 1000 equally spaced points between -10 and 10
x = np.linspace(-10, 10, 1000)

# calculate the y value for each element of the x vector
y = x**2 + 2*x + 2  

fig, ax = plt.subplots()
ax.plot(x, y)

抛物线

代码语言:javascript
复制
import matplotlib.pyplot as plt

a=[]
b=[]
# y=0
# x=-50

for x in range(-50,50,1):
    y=x**2+2*x+2
    a.append(x)
    b.append(y)
    #x= x+1

fig= plt.figure()
axes=fig.add_subplot(111)
axes.plot(a,b)
plt.show()

三个参数,分别代表子图的行数,列数,图索引号

因为频繁的出现add_asubplot()

代码语言:javascript
复制
https://matplotlib.org/stable/api/_as_gen/matplotlib.pyplot.subplot.html
代码语言:javascript
复制
import matplotlib.pyplot as plt
import numpy as np
'''
Set the values in the variable x
The function arange helps to generate an array with the 
following parameters arange(start,end,increment)
'''
x = np.arange(-100,100,1)
'''
Now set the formula in the variable y
'''
y = x**2
'''
Then add the pair (x,y) to the plot
'''
plt.plot(x,y)
'''
Finally show the graph
'''
plt.show()
代码语言:javascript
复制
import numpy as np
import matplotlib.pyplot as plt
x = np.arange(0, 100)
plt.subplot(221)
plt.plot(x, x)
plt.subplot(222)
plt.plot(x, -x)
plt.subplot(223)
plt.plot(x, x ** 2)
plt.subplot(224)
plt.plot(x, np.log(x))
plt.show()
代码语言:javascript
复制
import numpy as np
import matplotlib.pyplot as plt

x = np.arange(0, 100)
# 首先就是生成点列,x
fig = plt.figure()
# 创建一个大的画布
ax1 = fig.add_subplot(221)
ax1.plot(x, x)
# 第一个图,直接221的位置
ax2 = fig.add_subplot(222)
ax2.plot(x, -x)
# 222的位置,-的斜率
ax3 = fig.add_subplot(223)
ax3.plot(x, x ** 2)
# 二次函数
ax4 = fig.add_subplot(224)
ax4.plot(x, np.log(x))
# 对数形式
plt.show()

pyplot的方式中plt.subplot()参数和面向对象中的add_subplot()参数和含义都相同


这里针对,子图的绘制函数做了一个简单的绘制~

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-05-11,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 云深之无迹 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档