回答編集履歴
3
修正
    
        answer	
    CHANGED
    
    | 
         @@ -7,6 +7,6 @@ 
     | 
|
| 
       7 
7 
     | 
    
         
             
            `shading="flat"` の場合は、`C` はそのまま各メッシュの色に対応づけられるので、`X, Y` が (M, N) の2次元配列であれば、`C` は (M - 1, N - 1) の2次元配列を指定します。
         
     | 
| 
       8 
8 
     | 
    
         | 
| 
       9 
9 
     | 
    
         
             
            一方、shading="gouraud" の場合、C は各メッシュの色ではなく、`X, Y` の各点の色と対応づけられるので、`X, Y` が (M, N) の2次元配列であれば、`C` も (M, N) の2次元配列を指定します。
         
     | 
| 
       10 
     | 
    
         
            -
            実際のメッシュの色は、[グーローシェーディング](https://ja.wikipedia.org/wiki/%E3%82%B0%E3%83%BC%E3%83%AD%E3%83%BC%E3%82%B7%E3%82%A7%E3%83%BC%E3%83%87%E3%82%A3%E3%83%B3%E3%82%B0) によって、生成されます。
         
     | 
| 
      
 10 
     | 
    
         
            +
            実際のメッシュの色は、[グーローシェーディング](https://ja.wikipedia.org/wiki/%E3%82%B0%E3%83%BC%E3%83%AD%E3%83%BC%E3%82%B7%E3%82%A7%E3%83%BC%E3%83%87%E3%82%A3%E3%83%B3%E3%82%B0) によって、ポリゴンの頂点の色から補間されて生成されます。
         
     | 
| 
       11 
11 
     | 
    
         | 
| 
       12 
12 
     | 
    
         
             
            [matplotlib - pcolormesh でメッシュを描画する方法](https://pystyle.info/matplotlib-pcolormesh/#outline__7)
         
     | 
2
修正
    
        answer	
    CHANGED
    
    | 
         @@ -1,60 +1,12 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
             
     | 
| 
      
 1 
     | 
    
         
            +
            > shadingを'gouraud'にしていたのですが,'flat'とすると, 動作しました.
         
     | 
| 
       2 
2 
     | 
    
         | 
| 
       3 
     | 
    
         
            -
             
     | 
| 
      
 3 
     | 
    
         
            +
            `shading` の指定の話でしたか。その場合、"flat" と "gouraud" で引数 `C` の解釈が異なってきます。
         
     | 
| 
       4 
4 
     | 
    
         | 
| 
       5 
     | 
    
         
            -
             
     | 
| 
      
 5 
     | 
    
         
            +
            pcolormesh(X, Y, C) の指定ですが、
         
     | 
| 
       6 
6 
     | 
    
         | 
| 
       7 
     | 
    
         
            -
            というエラーが出ているので、そうなっていないのではないでしょうか。
         
     | 
| 
       8 
     | 
    
         
            -
            ` 
     | 
| 
      
 7 
     | 
    
         
            +
            `shading="flat"` の場合は、`C` はそのまま各メッシュの色に対応づけられるので、`X, Y` が (M, N) の2次元配列であれば、`C` は (M - 1, N - 1) の2次元配列を指定します。
         
     | 
| 
       9 
8 
     | 
    
         | 
| 
      
 9 
     | 
    
         
            +
            一方、shading="gouraud" の場合、C は各メッシュの色ではなく、`X, Y` の各点の色と対応づけられるので、`X, Y` が (M, N) の2次元配列であれば、`C` も (M, N) の2次元配列を指定します。
         
     | 
| 
      
 10 
     | 
    
         
            +
            実際のメッシュの色は、[グーローシェーディング](https://ja.wikipedia.org/wiki/%E3%82%B0%E3%83%BC%E3%83%AD%E3%83%BC%E3%82%B7%E3%82%A7%E3%83%BC%E3%83%87%E3%82%A3%E3%83%B3%E3%82%B0) によって、生成されます。
         
     | 
| 
       10 
11 
     | 
    
         | 
| 
       11 
     | 
    
         
            -
            ```
         
     | 
| 
       12 
     | 
    
         
            -
            X
         
     | 
| 
       13 
     | 
    
         
            -
            [[-3. -3. -3. -3. -3. -3. -3.]
         
     | 
| 
       14 
     | 
    
         
            -
             [-2. -2. -2. -2. -2. -2. -2.]
         
     | 
| 
       15 
     | 
    
         
            -
             [-1. -1. -1. -1. -1. -1. -1.]
         
     | 
| 
       16 
     | 
    
         
            -
             [ 0.  0.  0.  0.  0.  0.  0.]
         
     | 
| 
       17 
     | 
    
         
            -
             [ 1.  1.  1.  1.  1.  1.  1.]
         
     | 
| 
       18 
     | 
    
         
            -
             [ 2.  2.  2.  2.  2.  2.  2.]
         
     | 
| 
       19 
     | 
    
         
            -
             [ 3.  3.  3.  3.  3.  3.  3.]]
         
     | 
| 
       20 
     | 
    
         
            -
            Y
         
     | 
| 
       21 
     | 
    
         
            -
            [[-3. -2. -1.  0.  1.  2.  3.]
         
     | 
| 
       22 
     | 
    
         
            -
             [-3. -2. -1.  0.  1.  2.  3.]
         
     | 
| 
       23 
     | 
    
         
            -
             [-3. -2. -1.  0.  1.  2.  3.]
         
     | 
| 
       24 
     | 
    
         
            -
             [-3. -2. -1.  0.  1.  2.  3.]
         
     | 
| 
       25 
     | 
    
         
            -
             [-3. -2. -1.  0.  1.  2.  3.]
         
     | 
| 
       26 
     | 
    
         
            -
             [-3. -2. -1.  0.  1.  2.  3.]
         
     | 
| 
       27 
     | 
    
         
            -
             [-3. -2. -1.  0.  1.  2.  3.]]
         
     | 
| 
       28 
     | 
    
         
            -
            Z
         
     | 
| 
       29 
     | 
    
         
            -
            [[27. 19. 13.  9.  7.  7.  9.]
         
     | 
| 
       30 
     | 
    
         
            -
             [19. 12.  7.  4.  3.  4.  7.]
         
     | 
| 
       31 
     | 
    
         
            -
             [13.  7.  3.  1.  1.  3.  7.]
         
     | 
| 
       32 
     | 
    
         
            -
             [ 9.  4.  1.  0.  1.  4.  9.]
         
     | 
| 
       33 
     | 
    
         
            -
             [ 7.  3.  1.  1.  3.  7. 13.]
         
     | 
| 
       34 
     | 
    
         
            -
             [ 7.  4.  3.  4.  7. 12. 19.]
         
     | 
| 
       35 
     | 
    
         
            -
             [ 9.  7.  7.  9. 13. 19. 27.]]
         
     | 
| 
       36 
     | 
    
         
            -
            ```
         
     | 
| 
       37 
     | 
    
         
            -
             
     | 
| 
       38 
     | 
    
         
            -
            ```python
         
     | 
| 
       39 
     | 
    
         
            -
            import matplotlib.pyplot as plt
         
     | 
| 
       40 
     | 
    
         
            -
            import numpy as np
         
     | 
| 
       41 
     | 
    
         
            -
             
     | 
| 
       42 
     | 
    
         
            -
             
     | 
| 
       43 
     | 
    
         
            -
            def f(x, y):
         
     | 
| 
       44 
     | 
    
         
            -
                return x ** 2 + y ** 2 + x * y
         
     | 
| 
       45 
     | 
    
         
            -
             
     | 
| 
       46 
     | 
    
         
            -
            # 格子状の点を作成する。
         
     | 
| 
       47 
     | 
    
         
            -
            X, Y = np.mgrid[-3:3:7j, -3:3:7j]
         
     | 
| 
       48 
     | 
    
         
            -
            # 各点の Z の値を計算する。
         
     | 
| 
       49 
     | 
    
         
            -
            Z = f(X, Y)
         
     | 
| 
       50 
     | 
    
         
            -
             
     | 
| 
       51 
     | 
    
         
            -
            print(X)
         
     | 
| 
       52 
     | 
    
         
            -
            print(Y)
         
     | 
| 
       53 
     | 
    
         
            -
            print(Z)
         
     | 
| 
       54 
     | 
    
         
            -
             
     | 
| 
       55 
     | 
    
         
            -
            fig, ax = plt.subplots(figsize=(7, 7))
         
     | 
| 
       56 
     | 
    
         
            -
            ax.pcolormesh(X, Y, Z)
         
     | 
| 
       57 
     | 
    
         
            -
             
     | 
| 
       58 
     | 
    
         
            -
            plt.show()
         
     | 
| 
       59 
     | 
    
         
            -
            ```
         
     | 
| 
       60 
     | 
    
         
            -
             
     | 
| 
      
 12 
     | 
    
         
            +
            [matplotlib - pcolormesh でメッシュを描画する方法](https://pystyle.info/matplotlib-pcolormesh/#outline__7)
         
     | 
1
d
    
        answer	
    CHANGED
    
    | 
         @@ -1,7 +1,13 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            pcolormesh( 
     | 
| 
      
 1 
     | 
    
         
            +
            pcolormesh() は、格子状の (x, y) の座標一覧と各座標に対応する値の一覧が渡されたとき、色を値に基づき変化させたヒートマップを作成する関数です。
         
     | 
| 
       2 
     | 
    
         
            -
            渡す配列の形状がすなっているか確認してください。
         
     | 
| 
       3 
2 
     | 
    
         | 
| 
      
 3 
     | 
    
         
            +
            pcolormesh(X, Y, Z) に渡す値は、x の座標一覧、y の座標一覧、(x, y) のときの値を表すすべて形状が (N, M) の2次元配列です。
         
     | 
| 
       4 
4 
     | 
    
         | 
| 
      
 5 
     | 
    
         
            +
            > TypeError: Dimensions of C (6, 3000) are incompatible with X (3001) and/or Y (7); see help(pcolormesh)
         
     | 
| 
      
 6 
     | 
    
         
            +
             
     | 
| 
      
 7 
     | 
    
         
            +
            というエラーが出ているので、そうなっていないのではないでしょうか。
         
     | 
| 
      
 8 
     | 
    
         
            +
            `X.shape` のようにして、配列の形状を確認できるので、渡す配列の形状が上記に説明した通りになっているか確認してください。
         
     | 
| 
      
 9 
     | 
    
         
            +
             
     | 
| 
      
 10 
     | 
    
         
            +
             
     | 
| 
       5 
11 
     | 
    
         
             
            ```
         
     | 
| 
       6 
12 
     | 
    
         
             
            X
         
     | 
| 
       7 
13 
     | 
    
         
             
            [[-3. -3. -3. -3. -3. -3. -3.]
         
     |