如何在Python中一个绘图中绘制速度剖面和边界厚度剖面?
我正试图构建一个如下图所示的情节: 我可以单独绘制每个配置文件;此代码用于绘制边界层:如何在Python中一个绘图中绘制速度剖面和边界厚度剖面?,python,matplotlib,Python,Matplotlib,我正试图构建一个如下图所示的情节: 我可以单独绘制每个配置文件;此代码用于绘制边界层: import numpy as np import matplotlib.pyplot as plt x = np.linspace(0,10,1000) U=0.5 nu=15.89*10**-6 delta=5/np.sqrt(U/(nu*x)) plt.plot(x,delta) plt.xlim(0,10) plt.ylim(0,0.12) plt.grid() plt.show() ,这一个用
import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(0,10,1000)
U=0.5
nu=15.89*10**-6
delta=5/np.sqrt(U/(nu*x))
plt.plot(x,delta)
plt.xlim(0,10)
plt.ylim(0,0.12)
plt.grid()
plt.show()
,这一个用于绘制速度剖面图:
import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(0,10,31)
eta = np.linspace(0,10,31)
U=0.5
nu=15.89*10**-6
y = eta/np.sqrt(U/(nu*2))
fp=np.array([0, 0.066513, 0.132974, 0.199252, 0.265127, 0.330298, 0.394392, 0.456971, 0.517552, 0.575633, 0.630712, 0.682317, 0.73004, 0.773553, 0.812637, 0.847192, 0.877241, 0.902924, 0.924491, 0.942275, 0.956661, 0.968092, 0.976998, 0.98379, 0.98889, 0.992639, 0.995322, 0.997228, 0.998547, 0.999438, 1.000034])
u = fp*U
plt.plot(u,y)
plt.grid()
plt.show()
我曾尝试将两个图合并成一个图,如图中所示,但我做不到。请您建议我如何做。您可以在第二个绘图的u值上添加一个位置。其他两条曲线可以用类似的方式绘制 使用默认比例,3条曲线与
delta
曲线相比相当高。在给定位置插值,可以用delta
曲线的高度缩放新曲线:
将numpy导入为np
将matplotlib.pyplot作为plt导入
图,ax=plt.子批次(图尺寸=(12,4))
x=np.linspace(0.001,10,1000)
U=0.5
nu=15.89*10**-6
δ=5/np.sqrt(U/(nu*x))
ax.plot(x,delta,color='dodgerblue')
eta=np.linspace(0,10,31)
fp=np.array([0,0.066513,0.132974,0.199252,0.265127,0.330298,0.394392,0.456971,0.517552,0.575633,0.630712,0.682317,0.73004,0.773553,0.812637,0.847192,0.877241,0.902924,0.924491,0.942275,0.956661,0.968092,0.976998,0.379,0.98889,0.9999,0.9938])
u=fp*u
对于[1,3,6,9]中的位置:
y=eta/np.sqrt(U/(nu*位置))
#比例=0.6
缩放=np.interp(位置,x,增量)/y.max()
ax.绘图(u+位置,y*缩放,颜色为紫色)
ax.plot([position,position],[0,y.max()*缩放],color='black')
ax.set_xlim(0,10)
ax.set_ylim(0,0.12)
ax.grid()
plt.show()
PS:以下更改将按给定绘制曲线(无缩放),然后将其延伸至所需高度:
所需高度=0.12
对于[1,3,6,9]中的位置:
y=eta/np.sqrt(U/(nu*位置))
ax.plot(np.append(u+位置,(u+位置)[-1]),np.append(y,所需高度),color='purple')
ax.绘图([位置,位置],[0,所需高度],颜色='黑色')
删除第一个plt.show()?@扭曲,它不起作用,因为每个绘图中的轴限制不同。非常感谢。如果
y=eta/np.sqrt(U/(nu*position))
和position=[1 3 5 7]
,我如何为不同的位置
值绘制多个剖面?您可以了解如何计算比例(或高度)?相应的高度表示斜率为零的常量值。例如下面示意图中描绘的轮廓:italic boldI我认为我们可以通过重复阵列的最后一个值来解决高度问题。