python畫心型線
阿新 • • 發佈:2019-02-18
0.
首先講一個美麗的故事:
1649年,斯德哥爾摩的街頭,52歲的笛卡爾邂逅了18歲的瑞典公主克里斯汀。幾天後,他意外的接到通知,國王聘請他做小公主的數學老師。跟隨前來通知的侍衛一起來到皇宮,他見到了在街頭偶遇的女孩子。從此,他當上了小公主的數學老師。
小公主的數學在笛卡爾的悉心指導下突飛猛進,笛卡爾向她介紹了自己研究的新領域–直角座標系。每天形影不離的相處使他們彼此產生愛慕之心,公主的父親國王知道了後勃然大怒,下令將笛卡爾處死,小公主克里斯汀苦苦哀求後,國王將其流放回法國,克里斯汀公主也被父親軟禁起來。
笛卡爾回法國後不久便染上重病,他日日給公主寫信,因被國王攔截,克里斯汀一直沒收到笛卡爾的信。笛卡爾在給克里斯汀寄出第十三封信後就氣絕身亡了,這第十三封信內容只有短短的一個公式:r=a(1-sinθ)。國王看不懂,覺得他們倆之間並不是總是說情話的,將全城的數學家召集到皇宮,但沒有一個人能解開,他不忍心看著心愛的女兒整日悶悶不樂,就把這封信交給一直悶悶不樂的克里斯汀。
公主看到後,立即明瞭戀人的意圖,她馬上著手把方程的圖形畫出來,看到圖形,她開心極了,她知道戀人仍然愛著她,原來方程的圖形是一顆心的形狀。這也就是著名的”心形線”。
國王死後,克里斯汀登基,立即派人在歐洲四處尋找心上人,無奈斯人已故,先她一步走了,徒留她孤零零在人間…
好了,相信大家已經看到這個心型線的極座標公式了:
r=a(1-sinθ)
這是個極座標公式,沒關係,python也可以畫極座標圖,但是得先裝兩個庫:matplotlib和numpy。
1.極座標圖(看程式碼,看註釋)
import numpy as np
import matplotlib.pyplot as plt
T = np.linspace(0, 2 * np.pi, 1024) # 角度範圍 0-2*pi,劃為1024等份
plt.axes(polar=True) # 開啟極座標模式
plt.plot(T, 1. - np.sin(T), color="r")
plt.show ()
2.瘦一點的愛心
import matplotlib.pyplot as plt
import numpy as np
plt.title('heart', fontsize=24)
x = np.linspace(-1, 1, 200)
# 把函式分為上下兩個部分
y1 = np.sqrt(1-np.power(x, 2)) + np.power(np.square(x), 0.33)
y2 = -np.sqrt(1-np.power(x, 2)) + np.power(np.square(x), 0.33)
# 設定一下x軸、y軸的刻度和座標間距
# 不自己設定用自動的不好看
my_x_ticks = np.arange(-2 , 2.5, 0.5)
my_y_ticks = np.arange(-2, 2.5, 0.5)
plt.plot(x, y1, color='r')
plt.plot(x, y2, color='r')
plt.xticks(my_x_ticks)
plt.yticks(my_y_ticks)
plt.show()
執行一下,效果如下: