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

So erstellen Sie ein dreidimensionales Liniendiagramm mit Python und Matplotlib

WBOY
WBOYnach vorne
2023-04-22 13:19:081906Durchsuche

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

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')

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()

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()

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()

  • 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()
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!

Stellungnahme:
Dieser Artikel ist reproduziert unter:yisu.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen