520用Python畫一顆特別的?送給她

520用Python畫一顆特別的?送給她

來自專欄 Python與數據分析

今天520,大家有沒有和心愛的女生在一起呢?

今天我們來用Python畫一顆特別的愛心,送給那個特別的她,給她一份浪漫的驚喜吧~

還記得那個心形曲線的公式嗎?

(x^{2}+y^{2}-1)^{3}-x^{2}y^{3}=0

我們用Python基於上面的公式來畫一畫愛心吧~

準備工作

代碼中用到numpy和matplotlib,需要先安裝這兩個庫

pip3 install numpypip3 install matplotlib

愛心基本款

我們先來畫一顆最樸素的愛心

import numpy as npimport matplotlib.pyplot as pltx_coords = np.linspace(-100, 100, 500)y_coords = np.linspace(-100, 100, 500)points = []for y in y_coords: for x in x_coords: if ((x*0.03)**2+(y*0.03)**2-1)**3-(x*0.03)**2*(y*0.03)**3 <= 0: points.append({"x": x, "y": y})heart_x = list(map(lambda point: point["x"], points))heart_y = list(map(lambda point: point["y"], points))plt.scatter(heart_x, heart_y, s=10, alpha=0.5)plt.show()

運行後上面的代碼會顯示下面的圖

愛心的形狀有了,接下來我們來解鎖高級定製款,給愛心填充不同的顏色。

愛心高級定製款

給愛心填充不同的顏色,只需在上面代碼的scatter函數中指定cmap參數即可,如下

plt.scatter(heart_x, heart_y, s=10, alpha=0.5, c=range(len(heart_x)), cmap=<cmap>)

下面是不同色系的定製款

<cmap="autumn"> 橙色的愛心送給熱情洋溢的她

<cmap="cool"> 紫色的愛心送給優雅寧靜的她

<cmap="magma"> 晚霞般的愛心送給醇厚脫俗的她

<cmap="rainbow"> 彩虹般的愛心送給充滿絢麗幻想的她

<cmap="Reds"> 熾熱的愛心送給熱烈奔放的她

<cmap="spring"> 青春的愛心送給充滿朝氣的她

<cmap="viridis"> 翡翠色的愛心送給平靜柔和的她

<cmap="gist_rainbow"> 五彩繽紛的愛心送給多姿多彩的她

大家是不是學會了呢 ?

最後祝大家520快樂!

本文已更新微信同名公眾號,歡迎掃一掃關注~


推薦閱讀:

Python 實現 Python 解釋器
用Python實現機器學習演算法:線性回歸
Python爬蟲入門—分析Ajax爬取今日頭條美圖
學習筆記四:改善Python程序的91個建議
BAT機器學習面試1000題系列(71-75題)

TAG:Python | Python入門 | Python教程 |