如何绘制不同尺寸的图?

时间:2019-07-04 15:31:29

标签: python matplotlib plot

我有一个图,但是里面有很多点。所以我想在每个特定的x轴值上做3个y轴点。我有一个y轴列表,我想要一些点,例如y列表的第二大,一半和第二低值。

当我尝试绘制它时,它给出了这样的错误:ValueError:x和y必须具有相同的第一尺寸,但形状为(10,)和(3,)

for i in range(0, 100):
    x = []
    y = []
    z = []
    Re = 0.1 * (1.1**i)  # 0,1<2017'e kadar Reynolds sayısı oluşturuyor.
    B = e ** (-0.08 * Re) * (2.5 * np.log(Re) + 5.25) + 8.5 * (1 - e ** (-0.08 * Re))  # B hesaplanıyor.
    C = 0.8+0.9*((e**(-0.08*Re)/(Re**2))+((1-e**(-0.08*Re))/(B**2)))**(-0.5)  # C=ub/u star
    F = 0.31*Re*e**(-0.1*Re)+1.8*e**(-0.88*d50/D)*(1-e**(-0.1*Re))  # Urmb,b/u star
    A = F/C   # Urmbs,b/Ub

    for j in range(10):
        n = np.random.normal(mean, sd, 100)

        Dcbss = 0.7*math.tan(fi/1.5) / (((1 + (abs(n[j])*A))**2)*(1+(1/2.5)*((abs(n[j])*F)**2)*math.tan(fi/1.5)))
        x.append(Re)
        y.append(Dcbss)
        y.sort()


    plt.xscale('log')
    z= [y[1], y[5],y [9]]

    plt.plot(x, z, 'ro', marker='.', markersize=0.5)


plt.show()
plt.close()

这是我的价值观,例如:

y = [0.026251744070733794 0.03918 0.06198 0.10905 0.14959 0.16720 0.16873 0.20148 0.20706 0.23270]

x = [1252.78 1252.78 1252.78 1252.78 1252.78 1252.78 1252.78 1252.78 1252.78 1252.78

z = [ 0.03918 0.16720 0.23270]

那么我怎样才能在每个x值上采用这3个值,并在图形上仅看到3个点?像plot(x,z)

1 个答案:

答案 0 :(得分:0)

您的x向量显然为10,而z向量为3。我假设您想为向量z= [y[1], y[5],y [9]]绘制相同的水平坐标Re。如果是这样,只需更换

plt.plot(x, z, 'ro', marker='.', markersize=0.5)

作者

plt.plot([Re]*3, z, 'ro', marker='.', markersize=0.5)