回答編集履歴
4
d
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
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
test
CHANGED
File without changes
|
1
f
test
CHANGED
@@ -42,4 +42,14 @@
|
|
42
42
|
|
43
43
|
|
44
44
|
|
45
|
-
|
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)
|