teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

2

追記

2020/02/22 16:23

投稿

hayataka2049
hayataka2049

スコア30939

answer CHANGED
@@ -30,4 +30,36 @@
30
30
  ![](2e657973176b326ce5d25f2cf437db20.png)
31
31
 
32
32
 
33
- 間を繋げたい場合、`DataFrame.plot`一発だといけない気がします。いろいろやり方は思いつきます。`df[["Time[us]", "data1"]]`と`df[["Time[us]", "data2"]]`をそれぞれ作り、NaNがある行を落として、同じ`Axes`オブジェクトに対してプロットするというロジックで書くのが一つの手です。
33
+ 間を繋げたい場合、`DataFrame.plot`一発だといけない気がします。いろいろやり方は思いつきます。`df[["Time[us]", "data1"]]`と`df[["Time[us]", "data2"]]`をそれぞれ作り、NaNがある行を落として、同じ`Axes`オブジェクトに対してプロットするというロジックで書くのが一つの手です。このやり方でやるとこんな感じです。
34
+
35
+ ```python
36
+ import io
37
+ import pandas as pd
38
+ import matplotlib.pyplot as plt
39
+
40
+ txt = """
41
+ Time[us],data1,data2
42
+ 0,NaN,1
43
+ 246.3,0,NaN
44
+ 778.8,0,NaN
45
+ 1778.8,0,NaN
46
+ 2778.8,NaN,1
47
+ 3778.8,0,NaN
48
+ 4778.8,NaN,0
49
+ 5278.8,0,NaN
50
+ 6718.8,NaN,1
51
+ 7718.8,NaN,0
52
+ """
53
+
54
+ df = pd.read_csv(io.StringIO(txt))
55
+
56
+ ax = plt.subplot()
57
+ for col in ["data1", "data2"]:
58
+ tmp = df[["Time[us]", col]]
59
+ tmp.dropna(axis=0, how="any").plot(x="Time[us]", ax=ax)
60
+
61
+ plt.savefig("result.png")
62
+ ```
63
+
64
+ result.png
65
+ ![イメージ説明](2ea3b3e47f32b62619833b94075cfd36.png)

1

追記

2020/02/22 16:23

投稿

hayataka2049
hayataka2049

スコア30939

answer CHANGED
@@ -27,4 +27,7 @@
27
27
  ```
28
28
 
29
29
  result.png
30
- ![](2e657973176b326ce5d25f2cf437db20.png)
30
+ ![](2e657973176b326ce5d25f2cf437db20.png)
31
+
32
+
33
+ 間を繋げたい場合、`DataFrame.plot`一発だといけない気がします。いろいろやり方は思いつきます。`df[["Time[us]", "data1"]]`と`df[["Time[us]", "data2"]]`をそれぞれ作り、NaNがある行を落として、同じ`Axes`オブジェクトに対してプロットするというロジックで書くのが一つの手です。