Saya ingin dua plot terpisah ini menjadi satu. Bagaimana saya bisa melakukannya? Kedua plot mewakili angka-angka dalam daftar dis. Korespondensi pertama dengan 20 dan lainnya sesuai dengan 40. Demikian pula, dapat dilakukan untuk berbagai nomor lainnya.
masukkan deskripsi gambar di sini python matplotlib

0
Kumar Hemjeet 4 April 2021, 16:37

1 menjawab

Jawaban Terbaik

Saya berasumsi bahwa Anda ingin memplot kedua garis ke dalam satu wilayah plot. Dalam hal ini, Anda harus menyesuaikan kode Anda sebagai berikut.

Perhatikan bahwa Anda sedang membuat objek fig, ax baru di loop while Anda, jadi setiap kali Anda merencanakan sesuatu, objek itu berada dalam gambar baru. Sebagai gantinya, Anda ingin mengatur gambar dan sumbu Anda sebelum loop sementara, sehingga Anda terus menambahkan plot pada gambar yang sama. Adaptasi paling sederhana dari kode Anda untuk mencapai ini adalah sebagai berikut:

# variables left out for brevity

fig, ax = plt.subplots(figsize=(12, 2))

while b<=len(dis)-1:
    n=2*3.14*dis[b]*r/(avg*100)
    s=np.random.normal(mean,std,round(n))
    for i in s:   
        t=np.arange(0.1,time,t_i) 
        k=r+i
        c=v/k
        m=np.sqrt((k**2-(k-0.01)**2)/k)
        j=np.arcsin(m)
        x=k*(np.sin((c*t)+j))+f*t
        y=k*(np.cos((c*t)+j))
        ax.set_xlim([0.3,2])
        ax.set_ylim([y.min()-0.05,-0.1])
        reversed = False
        ind0=0
        while ind0 < len(x):
            ind1 = ind0 + 1
            if reversed:
                while ind1 < len(x) and x[ind1] <= x[ind1 - 1]:
                    ind1 += 1
                ym = np.minimum(ym, np.interp(xm, x[ind0:ind1][::-1], y[ind0:ind1][::-1], left=high, right=high))
            else:
                while ind1 < len(x) and x[ind1] >= x[ind1 - 1]:
                    ind1 += 1
                ym=np.minimum(ym, np.interp(xm, x[ind0:ind1], y[ind0:ind1], left=high, right=high))
            ind0 = ind1
            reversed = not reversed
    ax.set_xlabel('x (mm)')
    ax.set_ylabel('y (mm)')
    ax.plot(xm, ym, color='r', alpha=0.5)
    b+=1

Ini memberikan gambar berikut:

two lines in the same plot

0
luuk 4 April 2021, 21:34