Python matplotlib 愛の方程式?

 今日も見に来てくださって、ありがとうございます。石川さんです。

 明日からゴールデンウィークですね。だけどどこかへお出かけすることもなかなか難しい状況ですよね。こういう状況なので、このごろ、SNSを見る時間がちょっぴり増えてきました。先日、たぶんツイッターだと思うのですけど、エプロンに書かれた方程式の話題がおすすめで出てきました。確か、奥さまからもらったエプロンに謎の数式が描かれてあって、どうしても気になったので、描画してみたら、奥さまの方のエプロンにすでにその描画結果が描かれてあったというお話でした。ぼくは、とっさに、「これをちょっと描画してみたい」という欲求にかられまして、お試しにmatplotlibを使ってプロットしてみることにしてみました。

 書かれていた方程式、絶対に覚えておけないと思って、とっさにメモをしました。メモには手書きではなくて、Googleキープを使いました。ルートの記号などの数式が描けなかったので、プログラミング的な数式に置き換えて、テキストで保存しました。なので、式があっているかどうかちょっぴり不安なのですよねぇ。

x**2+(y-(x**2)**(1/3))**2=1

 環境依存の記号で書くと以下のようになります。他の人たちも、ちゃんと読めるかなぁ。。。

x² + (y - ∛x²)² = 1

 最近、データサイエンティストの学習で、y=の形式にすればグラフが描ける、ということを知っていたので、まずは、展開するのかなぁ、と、調査開始。この式、まあまあ話題になっているようです。いろいろと探していると、式を展開せずとも描画できそうな記事に出会いました。

スクリプト

 上記のURLを参考に作ったスクリプトは以下の通りです。シンプルでしょ?

import numpy as np
import matplotlib.pyplot as plt
fig, ax = plt.subplots()

y, x = np.ogrid[-1.5:2:1000j, -1.75:1.75:1000j]
plt.contour(
    x.ravel(), y.ravel(), x**2 + (y - (x**2)**(1/3))**2, [1])
plt.show()

実行結果

ハートです♪

まとめ

 描画、見事に成功しました。

 マニアックな愛の告白ですよねぇ、でも、嫌いじゃないです。(笑)

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です


reCaptcha の認証期間が終了しました。ページを再読み込みしてください。