利用python畫一顆心的方法樣本

來源:互聯網
上載者:User
前言

Python一般使用Matplotlib製作統計圖形,用它自己的說法是‘讓簡單的事情簡單,讓複雜的事情變得可能'。用它可以製作折線圖,長條圖,橫條圖,散佈圖,餅圖,譜圖等等你能想到的和想不到的統計圖形,這些圖形可以匯出為多種具有出版品質的格式。此外,它和ipython結合使用,確實方便,誰用誰知道!本文將介紹利用python中的matplotlib畫一顆心,感興趣的朋友們下面來一起看看吧。

安裝matplotlib

首先要安裝matplotlib

pip install matplotlib

windows使用者可以去官網下載安裝。官網看到matpltlib的作者John Hunter (1968-2012)剛去世不久,在此感謝他創造了這樣一個強大的繪圖工具。

上代碼

#!/usr/bin/env python3from mpl_toolkits.mplot3d import Axes3Dfrom matplotlib import cmfrom matplotlib.ticker import LinearLocator, FormatStrFormatterimport matplotlib.pyplot as pltimport 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)

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家學習或者使用python能帶來一定的協助,如果有疑問大家可以留言交流。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.