使用python中的循环在同一页上创建子图
我有python代码可以工作,它可以打印正确绘制的部分“a和b”的各个图形。我修改了这个代码,所以我可以让“a”部分在一张纸上打印所有图形,而“b”部分使用子图在一张纸上打印。使用新代码时,“a”部分正常工作,但我无法让“b”部分正确绘图,即使我使用了“a”部分的相同代码,只是更改了一些值使用python中的循环在同一页上创建子图,python,loops,matplotlib,Python,Loops,Matplotlib,我有python代码可以工作,它可以打印正确绘制的部分“a和b”的各个图形。我修改了这个代码,所以我可以让“a”部分在一张纸上打印所有图形,而“b”部分使用子图在一张纸上打印。使用新代码时,“a”部分正常工作,但我无法让“b”部分正确绘图,即使我使用了“a”部分的相同代码,只是更改了一些值 import numpy as np import matplotlib.pyplot as plt A = 1 # Wave amplitude in meters T = 10 # Time Per
import numpy as np
import matplotlib.pyplot as plt
A = 1 # Wave amplitude in meters
T = 10 # Time Period in secs
pi = 3.14 # Value of pi
n_w = 10 # Number of waves
wavelength = 156 # Wavelength in meters
k = (2 * pi) / wavelength
w = (2 * pi) / T
def wave_elevation(x,t):
return A * np.cos((k * x) - (w * t))
# Part a)
x_list = np.array([0,0.25,0.5,0.75,1.0])*wavelength
for x in x_list:
wave_ele_Val = []
for i in np.linspace(0,T*n_w,1000):
wave_ele_Val.append(wave_elevation(x, i))
fig, ax = plt.subplots(figsize=(15, 5))
plt.plot(np.linspace(0,T*n_w,1000),wave_ele_Val)
plt.title("Wave Elevation-Time Variations @"+ str(x) + " WaveLengths")
plt.xlabel("Time (s)")
plt.ylabel("\u03B7")
plt.grid()
plt.show()
# Part b)
t_list = np.array([0,0.25,0.5,0.75,1.0])*T
for t in t_list:
wave_ele_Val = []
for i in np.linspace(0,wavelength*n_w,1560):
wave_ele_Val.append(wave_elevation(i,t))
fig, ax = plt.subplots(figsize=(15, 5))
plt.plot(np.linspace(0,wavelength*n_w,1560),wave_ele_Val,'r')
plt.title("Wave Elevation-Space Variations @ " + str(t) + "* Time Periods")
plt.xlabel("x (m)")
plt.ylabel("\u03B7")
plt.grid()
plt.show()
这是新代码
import numpy as np
import matplotlib.pyplot as plt
A = 1 # Wave amplitude in meters
T = 10 # Time Period in secs
pi = 3.14 # Value of pi
n_w = 10 # Number of waves
wavelength = 156 # Wavelength in meters
k = (2 * pi) / wavelength
w = (2 * pi) / T
def wave_elevation(x,t):
return A * np.cos((k * x) - (w * t))
# Part a)
x_list = np.array([0,0.25,0.5,0.75,1.0])*wavelength
fig, ax = plt.subplots(len(x_list), figsize=(15, 10))
for i, x in enumerate(x_list):
wave_ele_Val = []
for j in np.linspace(0,T*n_w,1000):
wave_ele_Val.append(wave_elevation(x, j))
ax[i].plot(np.linspace(0,T*n_w,1000),wave_ele_Val,)
ax[i].grid()
ax[i].set_title("Wave Elevation-Time Variations @"+ str(x) + " WaveLengths")
ax[i].set_xlabel("Time (s)")
ax[i].set_ylabel("\u03B7")
plt.tight_layout()
plt.show()
# Part b)
t_list = np.array([0,0.25,0.5,0.75,1.0])*T
fig, ax = plt.subplots(len(t_list), figsize=(15, 10))
for i, t in enumerate(t_list):
wave_ele_Val = []
for j in np.linspace(0,wavelength*n_w,1560):
wave_ele_Val.append(wave_elevation(t, j))
ax[i].plot(np.linspace(0,wavelength*n_w,1560),wave_ele_Val,'r')
ax[i].grid()
ax[i].set_title("Wave Elevation-Time Variations @"+ str(x) + " WaveLengths")
ax[i].set_xlabel("Time (s)")
ax[i].set_ylabel("\u03B7")
plt.tight_layout()
plt.show()
使用新的代码和。这就是a&b部分的外观。并且您已经切换了b部分中函数调用的参数<代码>波浪高程附加(波浪高程(i,t))现在是
波浪高程附加(波浪高程(t,j))
。交换t、j位置。