Rumah >pembangunan bahagian belakang >Tutorial Python >Cara membuat carta garis tiga dimensi menggunakan Python dan Matplotlib

Cara membuat carta garis tiga dimensi menggunakan Python dan Matplotlib

WBOY
WBOYke hadapan
2023-04-22 13:19:082069semak imbas

1.0 Pengenalan

Teknologi imej tiga dimensi ialah salah satu teknologi paparan komputer paling canggih di dunia Mana-mana komputer biasa hanya perlu memasang pemalam untuk mempersembahkan produk tiga dimensi dalam pelayar web . Ia bukan sahaja seperti hidup, Dan ia boleh memaparkan proses gabungan produk secara dinamik, yang amat sesuai untuk penyemakan imbas jauh.

Imej tiga dimensi secara visual berlapis dan berwarna-warni, serta mempunyai kesan visual yang kuat, membolehkan penonton kekal dalam adegan itu untuk masa yang lama dan meninggalkan kesan yang mendalam. Gambar tiga dimensi memberi orang perasaan yang nyata dan hidup, watak sedia untuk dilihat, dan mereka mempunyai perasaan yang mengasyikkan, yang mempunyai nilai penghargaan artistik yang tinggi.

Kaedah dan jenis lukisan 3D 2.0

Mula-mula, anda perlu memasang perpustakaan Matplotlib, anda boleh menggunakan pip:

pip install matplotlib

Anggapkan bahawa pakej alat matplotlib telah dipasang.

Gunakan matplotlib.figure.Rajah untuk mencipta bingkai plot:

import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')

Cara membuat carta garis tiga dimensi menggunakan Python dan Matplotlib

1 Penggunaan Asas: ax.plot(x,y,z,label=' ')

Kodnya adalah seperti berikut:

Kesannya adalah seperti berikut:
import matplotlib as mpl
from mpl_toolkits.mplot3d import Axes3D
import numpy as np
import matplotlib.pyplot as plt
 
mpl.rcParams['legend.fontsize'] = 10
 
fig = plt.figure()
ax = fig.add_subplot(projection='3d')
theta = np.linspace(-4 * np.pi, 4 * np.pi, 100)
z = np.linspace(-2, 2, 100)
r = z ** 2 + 1
x = r * np.sin(theta)
y = r * np.cos(theta)
ax.plot(x, y, z, label='parametric curve')
ax.legend()

Cara membuat carta garis tiga dimensi menggunakan Python dan Matplotlib2. Plot serakan

Sintaks asas:

ax.scatter(xs, ys, zs, s=20, c=None, depthshade= Benar, *args, *kwargs)

Kodnya kira-kira seperti berikut:

    xs,ys,zs: input data;
  • s: saiz titik taburan
  • c: warna, seperti c = 'r&rsquo ialah merah;
  • depthshase: transparent , True is transparent, lalai ialah True, False is legap
  • *args, dsb. ialah pembolehubah lanjutan, seperti maker = ‘o’, kemudian hasil taburan adalah dalam bentuk ’o‘
  • 3. Plot rangka wayar

    Penggunaan asas: ax.plot_wireframe(X, Y, Z, *args, **kwargs)
  • X, Y, Z : data input

rstride: panjang langkah baris
from mpl_toolkits.mplot3d import Axes3D
import matplotlib.pyplot as plt
import numpy as np
 
 
def randrange(n, vmin, vmax):
    '''
    Helper function to make an array of random numbers having shape (n, )
    with each number distributed Uniform(vmin, vmax).
    '''
    return (vmax - vmin)*np.random.rand(n) + vmin
 
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
 
n = 100
 
# For each set of style and range settings, plot n random points in the box
# defined by x in [23, 32], y in [0, 100], z in [zlow, zhigh].
for c, m, zlow, zhigh in [('r', 'o', -50, -25), ('b', '^', -30, -5)]:
    xs = randrange(n, 23, 32)
    ys = randrange(n, 0, 100)
    zs = randrange(n, zlow, zhigh)
    ax.scatter(xs, ys, zs, c=c, marker=m)
 
ax.set_xlabel('X Label')
ax.set_ylabel('Y Label')
ax.set_zlabel('Z Label')
 
plt.show()

cstride: panjang langkah lajurCara membuat carta garis tiga dimensi menggunakan Python dan Matplotlib

rcount : had atas baris

  • akaun: had atas bilangan lajur

  • Kod sampel:

  • 4. Rajah permukaan segi tiga (plot Tri-Surface)
  • Penggunaan asas: ax.plot_trisurf(*args, **kwargs)

    ax.plot_trisurf(* args, **kwargs)
  • X, Y, Z: Data

    Parameter lain adalah serupa dengan plot permukaan

Rendering berjalan:

from mpl_toolkits.mplot3d import axes3d
import matplotlib.pyplot as plt
 
 
fig = plt.figure()
ax = fig.add_subplot(100, projection='3d')
 
# Grab some test data.
X, Y, Z = axes3d.get_test_data(0.12)
 
# Plot a basic wireframe.
ax.plot_wireframe(X, Y, Z, rstride=10, cstride=10)
 
plt.show()

Cara membuat carta garis tiga dimensi menggunakan Python dan Matplotlib

5. Sebarkan plot secara rawak

Gunakan serakan untuk menjana plot serakan rawak.

Takrifan fungsi:

#Takrifan fungsi

matplotlib.pyplot.scatter(x, y,

s=Tiada, #Scatter array skalar

c =Tiada, #tatasusunan jujukan warna, jujukan
from mpl_toolkits.mplot3d import Axes3D
import matplotlib.pyplot as plt
import numpy as np
 
 
n_radii = 8
n_angles = 36
 
radii = np.linspace(0.125, 1.0, n_radii)
angles = np.linspace(0, 2*np.pi, n_angles, endpoint=False)
 
angles = np.repeat(angles[..., np.newaxis], n_radii, axis=1)
 
 
# points in the (x, y) plane.
x = np.append(0, (radii*np.cos(angles)).flatten())
y = np.append(0, (radii*np.sin(angles)).flatten())
 
 
z = np.sin(-x*y)
 
fig = plt.figure()
ax = fig.add_subplot(projection='3d')
 
ax.plot_trisurf(x, y, z, linewidth=0.2, antialiased=True)
 
plt.show()
penanda=Tiada, #Gaya titik

cmap=Tiada, #gaya warna peta warna

norma=Tiada, #Normalisasi Kem warna ternormal

vmin=Tiada, vmax =Tiada, #Sepadan dengan julat biasa di atas Cara membuat carta garis tiga dimensi menggunakan Python dan Matplotlib alpha=Tiada, #Transparency

linewidths=Tiada, #Lebar garis

verts=Tiada, #

edgecolors =Tiada, #Edge color

data=Tiada,

**kwargs

)

Kod sampel:


Kesan:



Atas ialah kandungan terperinci Cara membuat carta garis tiga dimensi menggunakan Python dan Matplotlib. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:yisu.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam