>  기사  >  백엔드 개발  >  Python을 사용하여 하트를 그리는 방법의 예

Python을 사용하여 하트를 그리는 방법의 예

高洛峰
高洛峰원래의
2017-02-03 16:02:461909검색

머리말

Python은 일반적으로 Matplotlib을 사용하여 통계 그래픽을 생성합니다. 말 그대로 '간단한 것을 단순하게 만들고 복잡한 것을 가능하게 만듭니다'. 이를 사용하여 선 차트, 히스토그램, 막대 차트, 분산형 차트, 원형 차트, 스펙트럼 차트 및 예상할 수 있는 기타 통계 그래픽을 다양한 출판 품질 형식으로 내보낼 수 있습니다. 게다가 ipython과 함께 사용하면 정말 편리하다는 점은 써보신 분들은 아실 거예요! 이 기사에서는 Python에서 matplotlib를 사용하여 하트를 그리는 방법을 소개합니다. 관심 있는 친구는 아래를 살펴보세요.

matplotlib 설치

먼저 matplotlib를 설치해야 합니다

pip install matplotlib

Windows 사용자는 다음으로 이동하세요. 공식 웹사이트에서 다운로드하고 설치하세요. 공식 웹사이트에는 matpltlib의 저자인 John Hunter(1968-2012)가 막 세상을 떠난 것으로 나타났습니다. 이렇게 강력한 그리기 도구를 만들어준 그에게 감사의 말씀을 전하고 싶습니다.

코드

#!/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)

요약

위 내용은 이 글의 전체 내용입니다. If를 배우거나 사용하는 모든 사람에게 이 글의 내용이 도움이 되기를 바랍니다. 궁금한 점이 있으면 메시지를 남겨서 소통할 수 있습니다.

파이썬을 활용한 하트 그리는 방법과 관련 글을 더 보려면 PHP 중국어 홈페이지를 주목해주세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.