teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

2

修正

2020/05/24 04:28

投稿

tiitoi
tiitoi

スコア21960

answer CHANGED
@@ -10,21 +10,38 @@
10
10
  import matplotlib.pyplot as plt
11
11
  import numpy as np
12
12
 
13
- # Figure を subplots(行数, 列数) で分割し、2つの Axes を作成する
13
+ # Figure を subplots(行数, 列数) で分割する
14
- # 1行2列だと [Axes1, Axes2] というリストが返ってくるので、タプル展開した
15
- fig, [ax1, ax2] = plt.subplots(1, 2)
14
+ fig, axes = plt.subplots(2, 3, figsize=(12, 8))
16
15
 
17
- # 棒グラフを作成する。
16
+ # [1行1列目] 棒グラフを作成する。
18
17
  x = np.arange(1, 6)
19
18
  y = np.random.randint(50, 100, 5)
20
- ax1.bar(x, y)
19
+ axes[0, 0].bar(x, y)
21
20
 
22
- # 円グラフを作成する。
21
+ # [1行2列目] 円グラフを作成する。
23
22
  x = [100, 200, 300, 400, 500]
24
- labels = ["label1", "label2", "label3", "label4", "label5"]
25
- ax2.pie(x, labels=labels, autopct="%1.1f %%")
23
+ axes[0, 1].pie(x)
26
24
 
25
+ # [1行3列目] 棒グラフを作成する。
26
+ x = np.linspace(-3, 3, 10)
27
+ y = x ** 2
28
+ axes[0, 2].plot(x, y)
29
+
30
+ # [2行1列目] 等高線を作成する。
31
+ X, Y = np.mgrid[-5:5:50j, -5:5:50j]
32
+ Z = np.sin(X) + np.cos(10 + X * Y)
33
+ axes[1, 0].contour(X, Y, Z)
34
+
35
+ # [2行2列目] 等高線を作成する。
36
+ axes[1, 1].contourf(X, Y, Z)
37
+
38
+ # [2行3列目] 折れ線グラフを作成する。
39
+ x = [1, 2, 3, 4, 5, 6, 7]
40
+ y1 = [1, 1, 2, 3, 5, 8, 13]
41
+ y2 = [0, 2, 4, 6, 8, 10, 12]
42
+ axes[1, 2].stackplot(x, y1, y2)
43
+
27
44
  plt.show()
28
45
  ```
29
46
 
30
- ![イメージ説明](f3dc7ef42b3024c87ee65ee03b4ee48c.jpeg)
47
+ ![イメージ説明](c956d0e7bbfbadc9ebc09dbc17ae784f.jpeg)

1

修正

2020/05/24 04:28

投稿

tiitoi
tiitoi

スコア21960

answer CHANGED
@@ -1,10 +1,10 @@
1
1
  Figure は1つの図を表す、Axes は図の中の描画領域を表すオブジェクトです。
2
2
  matplotlib ではまず最初に Figure と Axes を作成するところから始めます。
3
- Figure を格子状に分割して、Axes を作成する場合は plt.subplots(行の分割数, 列の分割数) で指定します。
3
+ Figure を格子状に分割して、Axes を作成する場合は plt.subplots(行の分割数, 列の分割数) を使用します。
4
4
 
5
5
  ![イメージ説明](839386c2995ee71594a188d0dc5b597f.png)
6
6
 
7
- Axes を作成したら、それぞれの Axes オブジェクトが持つ plot() や bar() といった関数を呼び出して、データを描画します。
7
+ Axes を作成したら、それぞれの Axes オブジェクトが持つ plot() や bar() といったメソッドを呼び出して、データを描画対象の Axes 上に描画します。
8
8
 
9
9
  ```python
10
10
  import matplotlib.pyplot as plt