回答編集履歴

4

d

2020/02/20 10:11

投稿

tiitoi
tiitoi

スコア21956

test CHANGED
@@ -92,13 +92,17 @@
92
92
 
93
93
 
94
94
 
95
- # データの各要素間の値を補完する。
95
+ # データの各要素間の値を線形補完する。
96
96
 
97
97
  df = df.reindex(
98
98
 
99
99
  pd.date_range(start=df.index.min(), end=df.index.max(), freq="h")
100
100
 
101
101
  ).interpolate()
102
+
103
+
104
+
105
+ # 描画する。
102
106
 
103
107
  fig, ax = plt.subplots()
104
108
 

3

d

2020/02/20 10:11

投稿

tiitoi
tiitoi

スコア21956

test CHANGED
@@ -53,3 +53,73 @@
53
53
 
54
54
 
55
55
  [color mapping - Change colour of curve according to its y-value in matplotlib - Stack Overflow](https://stackoverflow.com/questions/20165169/change-colour-of-curve-according-to-its-y-value-in-matplotlib)
56
+
57
+
58
+
59
+ ## 追記
60
+
61
+
62
+
63
+ 回答したあとに気づきましたが、すでにあるデータから色わけした直線を作成する場合は中間値のyの値を計算しておく必要がありますね。
64
+
65
+
66
+
67
+ ```python
68
+
69
+ import matplotlib as mpl
70
+
71
+ import matplotlib.pyplot as plt
72
+
73
+ import numpy as np
74
+
75
+ import pandas as pd
76
+
77
+
78
+
79
+ # 以下のようなデータが与えられたとする。
80
+
81
+ x = pd.date_range("2012-01-01", "2013-02-22")
82
+
83
+ y = np.random.choice([-1, 1], len(x)).cumsum()
84
+
85
+ df = pd.DataFrame({"date": x, "value": y}).set_index("date")
86
+
87
+ df.plot()
88
+
89
+ plt.show()
90
+
91
+
92
+
93
+
94
+
95
+ # データの各要素間の値を補完する。
96
+
97
+ df = df.reindex(
98
+
99
+ pd.date_range(start=df.index.min(), end=df.index.max(), freq="h")
100
+
101
+ ).interpolate()
102
+
103
+ fig, ax = plt.subplots()
104
+
105
+
106
+
107
+ cmap = mpl.colors.ListedColormap(["red", "green", "blue", "cyan", "pink"])
108
+
109
+ bounds = [-50, -20, -10, 10, 20, 50]
110
+
111
+
112
+
113
+ plt.scatter(df.index, df["value"], s=3, c=df["value"], cmap=cmap, edgecolor="none")
114
+
115
+ plt.show()
116
+
117
+ ```
118
+
119
+
120
+
121
+ ![イメージ説明](5412878c8507399a9dcf8a95beff3ca6.png)
122
+
123
+
124
+
125
+ ![イメージ説明](aad29623761053f7ed4def63731c8f3c.png)

2

f

2020/02/20 10:08

投稿

tiitoi
tiitoi

スコア21956

test CHANGED
File without changes

1

f

2020/02/20 09:46

投稿

tiitoi
tiitoi

スコア21956

test CHANGED
@@ -42,4 +42,14 @@
42
42
 
43
43
 
44
44
 
45
- * 参考: [color mapping - Change colour of curve according to its y-value in matplotlib - Stack Overflow](https://stackoverflow.com/questions/20165169/change-colour-of-curve-according-to-its-y-value-in-matplotlib)
45
+ ![イメージ説明](105079fb4267ca6eb0dce5e65c6b5982.png)
46
+
47
+
48
+
49
+
50
+
51
+ 以下の質問を参考にしました。
52
+
53
+
54
+
55
+ [color mapping - Change colour of curve according to its y-value in matplotlib - Stack Overflow](https://stackoverflow.com/questions/20165169/change-colour-of-curve-according-to-its-y-value-in-matplotlib)