回答編集履歴

4

修正

2021/10/22 13:59

投稿

bsdfan
bsdfan

スコア4794

test CHANGED
@@ -56,7 +56,7 @@
56
56
 
57
57
  [[(x0, y0), (x1, y1)] for x0, y0, x1, y1 in zip(x, y, x[1:], y[1:])],
58
58
 
59
- colors=['blue' if v > 0 else 'red' for v in y2[1:]],
59
+ colors=[select_color(v) for v in y2[1:]],,
60
60
 
61
61
  lw=0.5)
62
62
 

3

変更

2021/10/22 13:59

投稿

bsdfan
bsdfan

スコア4794

test CHANGED
@@ -54,8 +54,12 @@
54
54
 
55
55
  lc = LineCollection(
56
56
 
57
- ...
57
+ [[(x0, y0), (x1, y1)] for x0, y0, x1, y1 in zip(x, y, x[1:], y[1:])],
58
58
 
59
- colors=[select_color(v) for v in y2[1:]],
59
+ colors=['blue' if v > 0 else 'red' for v in y2[1:]],
60
+
61
+ lw=0.5)
62
+
63
+ ax.add_collection(lc)
60
64
 
61
65
  ```

2

追記

2021/10/22 12:45

投稿

bsdfan
bsdfan

スコア4794

test CHANGED
@@ -25,3 +25,37 @@
25
25
  ax.add_collection(lc)
26
26
 
27
27
  ```
28
+
29
+
30
+
31
+ ###### 0の場合に色を黒にしたい場合
32
+
33
+ いろいろやり方がありそうですが、色を決める関数を作ってしまうのがわかりやすいとおもいます。
34
+
35
+
36
+
37
+ ```python
38
+
39
+ def select_color(v):
40
+
41
+ if v > 0:
42
+
43
+ return 'b'
44
+
45
+ elif v < 0:
46
+
47
+ return 'r'
48
+
49
+ else:
50
+
51
+ return 'k'
52
+
53
+
54
+
55
+ lc = LineCollection(
56
+
57
+ ...
58
+
59
+ colors=[select_color(v) for v in y2[1:]],
60
+
61
+ ```

1

修正

2021/10/18 23:45

投稿

bsdfan
bsdfan

スコア4794

test CHANGED
@@ -1,4 +1,4 @@
1
- 色を変えて複数の線を引きたいような場合は、LinceCollectionを使うといいです。第一引数のn番目の線をcolorsのn番目の色で描きます。
1
+ 色を変えて複数の線を引きたいような場合は、LineCollectionを使うといいです。第一引数のn番目の線をcolorsのn番目の色で描きます。
2
2
 
3
3
 
4
4