利用python畫一顆心的方法示例
前言
Python一般使用Matplotlib制作統(tǒng)計圖形,用它自己的說法是‘讓簡單的事情簡單,讓復(fù)雜的事情變得可能'。用它可以制作折線圖,直方圖,條形圖,散點圖,餅圖,譜圖等等你能想到的和想不到的統(tǒng)計圖形,這些圖形可以導(dǎo)出為多種具有出版質(zhì)量的格式。此外,它和ipython結(jié)合使用,確實方便,誰用誰知道!本文將介紹利用python中的matplotlib畫一顆心,感興趣的朋友們下面來一起看看吧。
安裝matplotlib
首先要安裝matplotlib
pip install matplotlib
windows用戶可以去官網(wǎng)下載安裝。官網(wǎng)看到matpltlib的作者John Hunter (1968-2012)剛?cè)ナ啦痪茫诖烁兄x他創(chuàng)造了這樣一個強大的繪圖工具。
上代碼
#!/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)
效果是這個樣子,挺有意思的:

總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家學(xué)習(xí)或者使用python能帶來一定的幫助,如果有疑問大家可以留言交流。
相關(guān)文章
python神經(jīng)網(wǎng)絡(luò)Batch?Normalization底層原理詳解
這篇文章主要為大家介紹了python神經(jīng)網(wǎng)絡(luò)Batch?Normalization底層原理詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-05-05
Python機器學(xué)習(xí)算法之k均值聚類(k-means)
這篇文章主要為大家詳細(xì)介紹了Python機器學(xué)習(xí)算法之k均值聚類,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2018-02-02
基于python3抓取pinpoint應(yīng)用信息入庫
這篇文章主要介紹了基于python3抓取pinpoint應(yīng)用信息入庫,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-01-01

