Heim > Backend-Entwicklung > Python-Tutorial > So erstellen Sie ein dreidimensionales Liniendiagramm mit Python und Matplotlib

So erstellen Sie ein dreidimensionales Liniendiagramm mit Python und Matplotlib

WBOY
Freigeben: 2023-04-22 13:19:08
nach vorne
2065 Leute haben es durchsucht

1.0 Einführung

Die dreidimensionale Bildtechnologie ist eine der fortschrittlichsten Computeranzeigetechnologien der Welt, um dreidimensionale Produkte in einem Webbrowser darzustellen , kann aber auch Produkte dynamisch anzeigen. Das Kombinationsverfahren eignet sich besonders für das Remote-Browsing.

Das dreidimensionale Bild ist visuell vielschichtig und farbenfroh und hat eine starke visuelle Wirkung, sodass der Betrachter lange in der Szene verweilen und einen tiefen Eindruck hinterlassen kann. Die dreidimensionalen Bilder vermitteln den Menschen ein reales und lebensechtes Gefühl, die Charaktere sind bereit, gesehen zu werden, und sie haben ein immersives Gefühl, das einen hohen künstlerischen Wert hat.

2.0 3D-Zeichenmethoden und -typen

Zuerst müssen Sie die Matplotlib-Bibliothek installieren. Sie können pip verwenden:

pip install matplotlib
Nach dem Login kopieren

Es wird davon ausgegangen, dass das Matplotlib-Toolpaket installiert wurde.

Verwenden Sie matplotlib.figure.Figure, um einen Rahmen zu erstellen:

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

So erstellen Sie ein dreidimensionales Liniendiagramm mit Python und Matplotlib

1. Liniendiagramme

Grundlegende Verwendung: ax.plot(x,y,z,label=' ')

Code Wie folgt:

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()
Nach dem Login kopieren

Der Effekt ist wie folgt:

So erstellen Sie ein dreidimensionales Liniendiagramm mit Python und Matplotlib

2. Streudiagramme (Streudiagramme)

Grundlegende Syntax:

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

Der Code sieht ungefähr wie folgt aus:

  • xs,ys,zs: Eingabedaten;

  • s: Größe des Streupunkts

  • c: Farbe, wie z c = ' r’ ist rot;

  • Tiefenshase: transparent, True ist transparent, der Standardwert ist True, False ist undurchsichtig

  • *args usw. sind Erweiterungsvariablen, wie z. B. maker = ‘o’, dann ist das Streuungsergebnis o‘-Form

Beispielcode:

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()
Nach dem Login kopieren

Effekt:

So erstellen Sie ein dreidimensionales Liniendiagramm mit Python und Matplotlib

3. Wireframe-Plots

Grundlegende Verwendung: ax.plot_wireframe(X, Y, Z, *args, ** kwargs

  • Beispielcode:

    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()
    Nach dem Login kopieren

  • 4. Tri-Surface-Plots (Tri-Surface-Plots)

  • Grundlegende Verwendung: ax.plot_trisurf(*args, **kwargs)
  • ax.plot_trisurf (*args, **kwargs)

  • Funktionsdefinition:

#Funktionsdefinition

matplotlib.pyplot.scatter(x, y,

s=None, #Scatter size array scalar

c=None, #Color sequence array, sequenceSo erstellen Sie ein dreidimensionales Liniendiagramm mit Python und Matplotlib marker=None, #Point style

cmap=Keine, #colormap Farbstil

norm=Keine, #Normalisierung Normalisiertes Farblager

vmin=Keine, vmax=Keine, #Entspricht dem oben genannten normalisierten Bereich

alpha=Keine, #Transparenz

linewidths=Keine, #Linienbreite

verts=Keine, #

Edgecolors=Keine, #edgecolor

Daten=Keine,

**kwargs

)

Beispielcode:

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()
Nach dem Login kopieren
So erstellen Sie ein dreidimensionales Liniendiagramm mit Python und MatplotlibEffekt:

Das obige ist der detaillierte Inhalt vonSo erstellen Sie ein dreidimensionales Liniendiagramm mit Python und Matplotlib. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:yisu.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage