Heim  >  Artikel  >  Backend-Entwicklung  >  Beispiel für das Zeichnen eines Herzens mit Python

Beispiel für das Zeichnen eines Herzens mit Python

高洛峰
高洛峰Original
2017-02-03 16:02:461854Durchsuche

Vorwort

Python verwendet im Allgemeinen Matplotlib, um statistische Grafiken zu erstellen. In seinen eigenen Worten macht es „einfache Dinge einfach und macht komplexe Dinge möglich“. Sie können damit Liniendiagramme, Histogramme, Balkendiagramme, Streudiagramme, Kreisdiagramme, Spektrumdiagramme und andere statistische Grafiken erstellen, die Sie sich vorstellen können und die Sie nicht erwarten können. Diese Grafiken können in eine Vielzahl von Formaten in Publikationsqualität exportiert werden. Darüber hinaus ist es sehr praktisch, es in Kombination mit ipython zu verwenden. Jeder, der es verwendet, weiß es! In diesem Artikel wird die Verwendung von Matplotlib in Python zum Zeichnen eines Herzens vorgestellt. Interessierte Freunde können einen Blick darauf werfen.

Matplotlib installieren

Zuerst müssen Sie Matplotlib installieren

pip install matplotlib

Windows-Benutzer können zu gehen die offizielle Website zum Herunterladen und Installieren. Auf der offiziellen Website wurde festgestellt, dass der Autor von matpltlib, John Hunter (1968-2012), gerade verstorben ist. Ich möchte ihm für die Entwicklung eines so leistungsstarken Zeichenwerkzeugs danken.

Code

#!/usr/bin/env python3
from mpl_toolkits.mplot3d import Axes3D
from matplotlib import cm
from matplotlib.ticker import LinearLocator, FormatStrFormatter
import matplotlib.pyplot as plt
import numpy as np
 
 
def heart_3d(x,y,z):
 return (x**2+(9/4)*y**2+z**2-1)**3-x**2*z**3-(9/80)*y**2*z**3
 
 
def plot_implicit(fn, bbox=(-1.5, 1.5)):
 ''' create a plot of an implicit function
 fn ...implicit function (plot where fn==0)
 bbox ..the x,y,and z limits of plotted interval'''
 xmin, xmax, ymin, ymax, zmin, zmax = bbox*3
 fig = plt.figure()
 ax = fig.add_subplot(111, projection='3d')
 A = np.linspace(xmin, xmax, 100) # resolution of the contour
 B = np.linspace(xmin, xmax, 40) # number of slices
 A1, A2 = np.meshgrid(A, A) # grid on which the contour is plotted
 
 for z in B: # plot contours in the XY plane
  X, Y = A1, A2
  Z = fn(X, Y, z)
  cset = ax.contour(X, Y, Z+z, [z], zdir='z', colors=('r',))
  # [z] defines the only level to plot
  # for this contour for this value of z
 
 for y in B: # plot contours in the XZ plane
  X, Z = A1, A2
  Y = fn(X, y, Z)
  cset = ax.contour(X, Y+y, Z, [y], zdir='y', colors=('red',))
 
 for x in B: # plot contours in the YZ plane
  Y, Z = A1, A2
  X = fn(x, Y, Z)
  cset = ax.contour(X+x, Y, Z, [x], zdir='x',colors=('red',))
 
 # must set plot limits because the contour will likely extend
 # way beyond the displayed level. Otherwise matplotlib extends the plot limits
 # to encompass all values in the contour.
 ax.set_zlim3d(zmin, zmax)
 ax.set_xlim3d(xmin, xmax)
 ax.set_ylim3d(ymin, ymax)
 
 plt.show()
 
if __name__ == '__main__':
 plot_implicit(heart_3d)

Zusammenfassung

Das Obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, dass der Inhalt dieses Artikels für jeden beim Erlernen oder Verwenden von Python hilfreich sein kann . Wenn Sie Fragen haben, können Sie eine Nachricht hinterlassen.

Weitere Beispiele für die Verwendung von Python zum Zeichnen eines Herzens und verwandte Artikel finden Sie auf der chinesischen PHP-Website!

Stellungnahme:
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