回答編集履歴

3

修正

2020/06/24 17:59

投稿

tiitoi
tiitoi

スコア21956

test CHANGED
@@ -16,7 +16,7 @@
16
16
 
17
17
  一方、shading="gouraud" の場合、C は各メッシュの色ではなく、`X, Y` の各点の色と対応づけられるので、`X, Y` が (M, N) の2次元配列であれば、`C` も (M, N) の2次元配列を指定します。
18
18
 
19
- 実際のメッシュの色は、[グーローシェーディング](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) によって、生成されます。
19
+ 実際のメッシュの色は、[グーローシェーディング](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) によって、ポリゴンの頂点の色から補間されて生成されます。
20
20
 
21
21
 
22
22
 

2

修正

2020/06/24 17:59

投稿

tiitoi
tiitoi

スコア21956

test CHANGED
@@ -1,119 +1,23 @@
1
- pcolormesh() は、格子状 (x, y) の座標一覧各座標に対応する値の一覧が渡されたき、色を値に基づき変化させヒートマップを作成する関数です。
1
+ > shadingを'gouraud'にしていたですが,'flat'とすると, 動作しまし.
2
2
 
3
3
 
4
4
 
5
- pcolormesh(X, Y, Z) に渡す値は、x 座標一覧、y 座標一覧(x, y) のきの値を表すすべて形状が (N, M)2次元配列です。
5
+ `shading`指定話でしたか。その場合"flat""gouraud" で引数 `C` 解釈が異なってきます。
6
6
 
7
7
 
8
8
 
9
- > TypeError: Dimensions of C (6, 3000) are incompatible with X (3001) and/or Y (7); see help(pcolormesh)
9
+ pcolormesh(X, Y, C) の指定ですが、
10
10
 
11
11
 
12
12
 
13
- というエラーが出ているので、そうなっていないのではないでしょうか。
14
-
15
- `X.shape` のようにして配列形状を確認できるので、渡す配列の形状が上記に説明た通りになっているか確認してください
13
+ `shading="flat"` の場合は`C` はそまま各メッシュの色に対応づけられるので、`X, Y` が (M, N) の2次元配列であれば、`C` は (M - 1, N - 1) 2次元配列を指定ます
16
14
 
17
15
 
18
16
 
17
+ 一方、shading="gouraud" の場合、C は各メッシュの色ではなく、`X, Y` の各点の色と対応づけられるので、`X, Y` が (M, N) の2次元配列であれば、`C` も (M, N) の2次元配列を指定します。
19
18
 
20
-
21
- ```
22
-
23
- X
24
-
25
- [[-3. -3. -3. -3. -3. -3. -3.]
26
-
27
- [-2. -2. -2. -2. -2. -2. -2.]
19
+ 実際のメッシュの色は、[グーローシェーディング](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) によって、生成されます。
28
-
29
- [-1. -1. -1. -1. -1. -1. -1.]
30
-
31
- [ 0. 0. 0. 0. 0. 0. 0.]
32
-
33
- [ 1. 1. 1. 1. 1. 1. 1.]
34
-
35
- [ 2. 2. 2. 2. 2. 2. 2.]
36
-
37
- [ 3. 3. 3. 3. 3. 3. 3.]]
38
-
39
- Y
40
-
41
- [[-3. -2. -1. 0. 1. 2. 3.]
42
-
43
- [-3. -2. -1. 0. 1. 2. 3.]
44
-
45
- [-3. -2. -1. 0. 1. 2. 3.]
46
-
47
- [-3. -2. -1. 0. 1. 2. 3.]
48
-
49
- [-3. -2. -1. 0. 1. 2. 3.]
50
-
51
- [-3. -2. -1. 0. 1. 2. 3.]
52
-
53
- [-3. -2. -1. 0. 1. 2. 3.]]
54
-
55
- Z
56
-
57
- [[27. 19. 13. 9. 7. 7. 9.]
58
-
59
- [19. 12. 7. 4. 3. 4. 7.]
60
-
61
- [13. 7. 3. 1. 1. 3. 7.]
62
-
63
- [ 9. 4. 1. 0. 1. 4. 9.]
64
-
65
- [ 7. 3. 1. 1. 3. 7. 13.]
66
-
67
- [ 7. 4. 3. 4. 7. 12. 19.]
68
-
69
- [ 9. 7. 7. 9. 13. 19. 27.]]
70
-
71
- ```
72
20
 
73
21
 
74
22
 
75
- ```python
76
-
77
- import matplotlib.pyplot as plt
78
-
79
- import numpy as np
80
-
81
-
82
-
83
-
84
-
85
- def f(x, y):
86
-
87
- return x ** 2 + y ** 2 + x * y
88
-
89
-
90
-
91
- # 格子状の点を作成する。
92
-
93
- X, Y = np.mgrid[-3:3:7j, -3:3:7j]
94
-
95
- # 各点の Z の値を計算する。
96
-
97
- Z = f(X, Y)
98
-
99
-
100
-
101
- print(X)
102
-
103
- print(Y)
104
-
105
- print(Z)
106
-
107
-
108
-
109
- fig, ax = plt.subplots(figsize=(7, 7))
110
-
111
- ax.pcolormesh(X, Y, Z)
112
-
113
-
114
-
115
- plt.show()
116
-
117
- ```
118
-
119
- ![ージ説明](b218242797ce26340a0acc2a95b9b198.jpeg)
23
+ [matplotlib - pcolormesh でッシュを描画する方法](https://pystyle.info/matplotlib-pcolormesh/#outline__7)

1

d

2020/06/24 17:52

投稿

tiitoi
tiitoi

スコア21956

test CHANGED
@@ -1,6 +1,18 @@
1
- pcolormesh(X, Y, Z) に渡す値は、すべて形 (N, M) の x の座標一覧、y の座標一覧、(x, y) のときの z の座標一覧です。
1
+ pcolormesh() は、格子 (x, y) の座標一覧と各座標に対応する値の一覧が渡されたとき、色を値に基づき変化させたヒートマップを作成する関数です。
2
2
 
3
+
4
+
5
+ pcolormesh(X, Y, Z) に渡す値は、x の座標一覧、y の座標一覧、(x, y) のときの値を表すすべて形状が (N, M) の2次元配列です。
6
+
7
+
8
+
9
+ > TypeError: Dimensions of C (6, 3000) are incompatible with X (3001) and/or Y (7); see help(pcolormesh)
10
+
11
+
12
+
13
+ というエラーが出ているので、そうなっていないのではないでしょうか。
14
+
3
- 渡す配列の形状がなっているか確認してください。
15
+ `X.shape` のようにして、配列の形状を確認できるので、渡す配列の形状が上記に説明した通りになっているか確認してください。
4
16
 
5
17
 
6
18