NaNが挟まった部分はプロットされません。そして前後をNaNに挟まれているポイントでは線は引けません。
マーカーを出せばとりあえずマーカーは見えるようになるので、もしかしたらそれが目的のものかもしれません。
python
1import io
2import pandas as pd
3import matplotlib.pyplot as plt
4
5txt = """
6Time[us],data1,data2
70,NaN,1
8246.3,0,NaN
9778.8,0,NaN
101778.8,0,NaN
112778.8,NaN,1
123778.8,0,NaN
134778.8,NaN,0
145278.8,0,NaN
156718.8,NaN,1
167718.8,NaN,0
17"""
18
19df = pd.read_csv(io.StringIO(txt))
20df.plot(x="Time[us]", marker=".")
21plt.savefig("result.png")
result.png
間を繋げたい場合、DataFrame.plot
一発だといけない気がします。いろいろやり方は思いつきます。df[["Time[us]", "data1"]]
とdf[["Time[us]", "data2"]]
をそれぞれ作り、NaNがある行を落として、同じAxes
オブジェクトに対してプロットするというロジックで書くのが一つの手です。このやり方でやるとこんな感じです。
python
1import io
2import pandas as pd
3import matplotlib.pyplot as plt
4
5txt = """
6Time[us],data1,data2
70,NaN,1
8246.3,0,NaN
9778.8,0,NaN
101778.8,0,NaN
112778.8,NaN,1
123778.8,0,NaN
134778.8,NaN,0
145278.8,0,NaN
156718.8,NaN,1
167718.8,NaN,0
17"""
18
19df = pd.read_csv(io.StringIO(txt))
20
21ax = plt.subplot()
22for col in ["data1", "data2"]:
23 tmp = df[["Time[us]", col]]
24 tmp.dropna(axis=0, how="any").plot(x="Time[us]", ax=ax)
25
26plt.savefig("result.png")
result.png
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/02/23 01:30