先日、X でこんなポストを見かけました。
8月24日はウクライナの独立記念日のようですね。
真似して日本の国旗を Python で描いてみたので、今回はそれを共有したいと思います。
日本の国旗の制式
日本の国旗の制式は法律で定められていて、内閣府のサイトにこう記載されています。
- 寸法の割合及び日章の位置
縦 横の三分の二
日章
直径 縦の五分の三
中心 旗の中心 - 彩色
地 白色
日章 紅色
サイズは分かりやすいですね。
日の丸の色は「紅色」とありますが、カラーコードを調べてみると決まっていないようです。
内閣府のサイトの国旗には赤(#FF0000
)になっていますが、ここは最近流行りの ChatGPTに質問してみました。
ChatGPT の回答はこうでした。
日本の国旗「日の丸」に使用される赤色には特定のカラーコードがあります。ただし、これは用途やコンテキストによって異なる場合があります。日本の政府は、国旗と海上自衛隊の旗に使用するための正確な色を指定しています。この赤色の一般的な近似値として、RGBで(173, 35, 51)、またはHTMLカラーコードで #AD2333 がしばしば用いられます。
これは公式の色として指定されているわけではないので、公式な文書や場所で使用する際には、日本政府が指定する正確な色を確認することが重要です。
2021年9月時点での情報ですので、最新のガイドラインがある場合は、それに従ってください。
ということで、#AD2333
を採用します。
↓ こんな色です。
日本の国旗を描くコード
参考にした X のポストと同じように matplotlib を使用していますので、事前に pip 等でインストールしてください。
Google Colabolatory だとデフォルトで matplotlib はインストールされています。
import matplotlib.pyplot as plt
import matplotlib.patches as patches
def draw_japan_flag():
# Create a new figure with aspect ratio 3:2
fig, ax = plt.subplots(figsize=(7.5, 5))
# Set the background color to white
ax.set_facecolor("white")
# Define the crimson red color code for Nisshoki (Japanese flag)
crimson_red = "#AD2333"
# Draw a crimson red circle in the center
center_circle = patches.Circle((3.75, 2.5), radius=1.5, color=crimson_red)
ax.add_patch(center_circle)
# Turn off the axis
ax.axis("off")
# Set the x and y axis limits
ax.set_xlim(0, 7.5)
ax.set_ylim(0, 5)
# Display the figure
plt.show()
draw_japan_flag()
上記コードを実行して描かれたものが下記になります。
![](https://www.taklog.info/wp-content/uploads/2023/08/JapanFlag.png)
matplotlib で描いているのでサイズは正確ではないかもしれません。
画像ファイルのサイズを見ると「601 ✕ 405」となっているので、だいたい合ってはいると思います。
Google Colaboratory
本記事に掲載しているコードは Google Colaboratory で動作を確認しています。
下記リンクからアクセスして、ご自身の Google ドライブにコピーしていただければ、すぐに実行できます。
私が確認した時点では、
- Python 3.10.12
- matplotlib 3.7.1
でした。
おわりに
今回は Python で日本の国旗を描いてみました。
参考にした X のポストに習って matplotlib を使用しましたが、正確なサイズで描くためには pillow などの画像処理系のライブラリを使ったほうが良いかもしれませんね。
X で Python クイズを配信しています。
#Pythonクイズ
— Taklog (@taklog_info) September 29, 2023
No.12
次のコードを実行した時の出力として正しいものは A 〜 D のどれでしょうか? #Python #pythonprogramming pic.twitter.com/jOX7RxY8to
よかったらフォローしてください!
以上です。
コメント