pythonで図形を組み合わせてミ〇キーを作る

# python初心者がAnacondaで某キャラを作りました
どうもこんにちは
授業で初めてpythonを触りそこで図形を組み合わせて某キャラを作って遊びました。そこでの体験を忘れないように、ここに記録しておきます

## コードを書く前に
まず最初にAnacondaをダウンロードします


https://www.anaconda.com/

パソコンの設定で**Anaconda Prompt**を探してきてそこで
```python
spyder
```
と入力すると、
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3553821/2fd60f04-11d4-7e31-91f2-bfb0c2084253.png)
こんな感じのものが出てきます。
そこで新規ファイルを作成してもいいし、最初のファイルでもいいのでコードを書いて実際に作っていきたいと思います。
今回は図形を組み合わせて作っていくわけですが、多分画像やグラフが出力されるところがデフォルトでは赤い矢印のところになっています。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3553821/7bf41602-38f9-a862-e46e-e8c4bcf7faaa.png)
しかしここでは小さい＆見にくいです。
なので
設定＞lPythonコンソール＞グラフィックス＞グラフィックスのバックエンドを*自動*に変えてください
![設定の画像](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3553821/8903156e-1165-2ec3-fb1c-7f413fe39678.png "設定の画像")
こんな感じです。

## コードを書いていこう
さあ実際に書いていこうと思います。
```python
import matplotlib.pyplot as plt
import matplotlib.patches as pat
```
* `import matplotlib.pyplot as plt` `import matplotlib.patches as pat`は、図形・画像を出力するために使うものです。
またそれぞれ`plt` `pat`という名前でインポートしています。

:::note
初心者なのでよくわかっていないですが、正直自分がわかりやすいのであれば、この部分を自分の好きな名前に変えてもいいかも…
(でも、自分が今回作るにあたり、いろいろ調べた限りこの名前がほとんどこんな感じの名前だった…)
:::
次に
```python
fig = plt.figure(figsize=(6,6))

ax = fig.add_subplot(111)
"""
ax.grid(axis = "both")
"""
ax.set_xlim(-4, 4)
ax.set_ylim(-4, 4)
```
* `fig = plt.figure(figsize=(6,6))`６×６の大きさで描画領域を作ります。
* `ax = fig.add_subplot(111)`１行１列のグリッドで１つのプロットをするという事らしい
* `ax.grid(axis = "both")` グリッド線を入れるかどうか入れたい人は入れた方が良い
* `ax.set_xlim(-4, 4)` `ax.set_ylim(-4, 4)`x軸y軸共に-4から４の間で書く範囲を決めて表示させる

```python
C = pat.Circle(xy = (0, 0), radius = 1.1, color = "black") #真ん中の丸
C1 = pat.Circle(xy = (-1.207, 1.207),radius=0.7, color = "black") #左耳
C2 = pat.Circle(xy = (1.207, 1.207),radius=0.7, color = "black") #右耳
C3 = pat.Ellipse(xy = (0, -0.1), width = 0.5,height=0.3, edgecolor = "white", facecolor = "black") #鼻
C4 = pat.Ellipse(xy = (0.35, 0.35), width = 0.3, height = 0.6, color = "white") #右目
C5 = pat.Ellipse(xy = (-0.35, 0.35), width = 0.3, height = 0.6, color = "white") #左目
C6 = pat.Ellipse(xy = (0.35, 0.25), width = 0.3, height = 0.4, edgecolor = "white", facecolor = "black") #右目中の黒
C7 = pat.Ellipse(xy = (-0.35, 0.25), width = 0.3, height = 0.4, edgecolor = "white", facecolor = "black") #左目中の黒
C8 = pat.Arc(xy = (-0.9, 0), theta1=270, theta2=320, width = 1, height = 1, edgecolor = "white") #C8~C10は口
C9 = pat.Arc(xy = (0.9, 0), theta1=220, theta2=270, width = 1, height = 1, edgecolor = "white")
C10 = pat.Arc(xy = (0, -0.05), theta1=210, theta2=331, width = 2, height = 1.3, edgecolor = "white")
```
それぞれの説明はコードの横の **＃** の後ろの文字を読んでください。

```python
#それぞれを表示させるための物
ax.add_patch(C)
ax.add_patch(C1)
ax.add_patch(C2)
ax.add_patch(C3)
ax.add_patch(C4)
ax.add_patch(C5)
ax.add_patch(C6)
ax.add_patch(C7)
ax.add_patch(C8)
ax.add_patch(C9)
ax.add_patch(C10)
```
これで先ほどの図形を表示させます。
最後に
```python
#最後にこれを書いて図を表示させる
plt.show()
```
このコードを書くことによって図形を表示させます。

## 結果
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3553821/07b01397-9fc5-7aa1-5b10-b313a6f7c684.png)
ちょっとパチモン感が否めないのですが、初めてpythonを触った人が作ったので勘弁してください。

## 全体のコード
### 全体のコードを見たい人はこちら
```python
import matplotlib.pyplot as plt
import matplotlib.patches as pat

fig = plt.figure(figsize=(6,6))

ax = fig.add_subplot(111)
"""
ax.grid(axis = "both")
"""
ax.set_xlim(-4, 4)
ax.set_ylim(-4, 4)

C = pat.Circle(xy = (0, 0), radius = 1.1, color = "black") #真ん中の丸
C1 = pat.Circle(xy = (-1.207, 1.207),radius=0.7, color = "black") #左耳
C2 = pat.Circle(xy = (1.207, 1.207),radius=0.7, color = "black") #右耳
C3 = pat.Ellipse(xy = (0, -0.1), width = 0.5,height=0.3, edgecolor = "white", facecolor = "black") #鼻
C4 = pat.Ellipse(xy = (0.35, 0.35), width = 0.3, height = 0.6, color = "white") #右目
C5 = pat.Ellipse(xy = (-0.35, 0.35), width = 0.3, height = 0.6, color = "white") #左目
C6 = pat.Ellipse(xy = (0.35, 0.25), width = 0.3, height = 0.4, edgecolor = "white", facecolor = "black") #右目中の黒
C7 = pat.Ellipse(xy = (-0.35, 0.25), width = 0.3, height = 0.4, edgecolor = "white", facecolor = "black") #左目中の黒
C8 = pat.Arc(xy = (-0.9, 0), theta1=270, theta2=320, width = 1, height = 1, edgecolor = "white") #C8~C10は口
C9 = pat.Arc(xy = (0.9, 0), theta1=220, theta2=270, width = 1, height = 1, edgecolor = "white")
C10 = pat.Arc(xy = (0, -0.05), theta1=210, theta2=331, width = 2, height = 1.3, edgecolor = "white")

#それぞれを表示させるための物
ax.add_patch(C)
ax.add_patch(C1)
ax.add_patch(C2)
ax.add_patch(C3)
ax.add_patch(C4)
ax.add_patch(C5)
ax.add_patch(C6)
ax.add_patch(C7)
ax.add_patch(C8)
ax.add_patch(C9)
ax.add_patch(C10)

#最後にこれを書いて図を表示させる
plt.show()
```
## 最後に
初心者が作ったのでつたない部分もたくさんありますが、いろいろと勘弁してください。改善点ありましたらX(旧Twitter)de
教えてください!!

## X(旧Twitter)

https://twitter.com/Alpha606786241

終わりチャンチャン…初めて書いたから疲れた…