質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Spyder

Spyderとは、Pythonで分析するために作られたIDEです。プログラムの編集・実行・入力補完・デバッグなどの基本的なIDE機能の他、科学用途の計算をするために要するライブラリも装備。公式・サードパーティ製のプラグインもあり、機能を拡張することもできます。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

2回答

598閲覧

csvファイルから、経時グラフを日付ごとに重ねて色分けして表示したい

tirkjs

総合スコア7

Spyder

Spyderとは、Pythonで分析するために作られたIDEです。プログラムの編集・実行・入力補完・デバッグなどの基本的なIDE機能の他、科学用途の計算をするために要するライブラリも装備。公式・サードパーティ製のプラグインもあり、機能を拡張することもできます。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2022/08/24 06:10

pythonでcsvファイルから、見やすい可視化グラフを作ろうとしております。

csvファイルは以下のとおりです。 Number Time Y value 1 2022/5/12 23:31 94 2 2022/5/12 23:46 82 3 2022/5/13 0:01 78 4 2022/5/13 0:16 86 5 2022/5/13 0:31 92 6 2022/5/13 0:46 92 7 2022/5/13 1:01 83 8 2022/5/13 1:16 60 9 2022/5/13 1:31 53 10 2022/5/13 1:46 55 11 2022/5/13 2:01 87 12 2022/5/13 2:16 93 13 2022/5/13 2:31 93 14 2022/5/13 2:46 90 15 2022/5/13 3:01 73 16 2022/5/13 3:16 65 17 2022/5/13 3:31 56 18 2022/5/13 3:46 53 19 2022/5/13 4:01 53 20 2022/5/13 4:16 53 21 2022/5/13 4:31 54 22 2022/5/13 4:46 55 23 2022/5/13 5:01 55 24 2022/5/13 5:16 55 25 2022/5/13 5:32 58 26 2022/5/13 5:47 71 27 2022/5/13 6:02 74 28 2022/5/13 6:17 76 29 2022/5/13 6:32 88 30 2022/5/13 6:47 96 31 2022/5/13 7:02 94 32 2022/5/13 7:17 94 33 2022/5/13 7:34 86 34 2022/5/13 7:49 93 35 2022/5/13 8:04 97 36 2022/5/13 8:19 100 37 2022/5/13 8:34 106 38 2022/5/13 8:49 111 39 2022/5/13 9:04 115 40 2022/5/13 9:19 99 41 2022/5/13 9:34 80 42 2022/5/13 9:49 80 43 2022/5/13 10:04 93 44 2022/5/13 10:19 105 45 2022/5/13 10:34 100 46 2022/5/13 10:49 89 47 2022/5/13 11:04 92 48 2022/5/13 11:19 105 49 2022/5/13 11:34 111 50 2022/5/13 11:49 107 51 2022/5/13 12:04 108 52 2022/5/13 12:19 129 53 2022/5/13 12:34 144 54 2022/5/13 12:49 125 55 2022/5/13 13:04 104 56 2022/5/13 13:24 107 57 2022/5/13 13:39 120 58 2022/5/13 13:54 138 59 2022/5/13 14:09 138 60 2022/5/13 14:24 127 61 2022/5/13 14:39 124 62 2022/5/13 14:54 136 63 2022/5/13 15:09 145 64 2022/5/13 15:24 136 65 2022/5/13 15:39 131 66 2022/5/13 15:54 137 67 2022/5/13 16:09 145 68 2022/5/13 16:24 152 69 2022/5/13 16:39 147 70 2022/5/13 16:54 139 71 2022/5/13 17:09 128 72 2022/5/13 17:24 91 73 2022/5/13 17:39 67 74 2022/5/13 17:54 79 75 2022/5/13 18:09 87 76 2022/5/13 18:24 94 77 2022/5/13 18:39 110 78 2022/5/13 18:54 116 79 2022/5/13 19:09 130 80 2022/5/13 19:24 143 81 2022/5/13 19:39 115 82 2022/5/13 19:54 100 83 2022/5/13 20:09 124 84 2022/5/13 20:24 136 85 2022/5/13 21:12 129 86 2022/5/13 21:27 126 87 2022/5/13 21:42 119 88 2022/5/13 21:57 130 89 2022/5/13 22:12 141 90 2022/5/13 22:27 139 91 2022/5/13 22:42 142 92 2022/5/13 22:57 145 93 2022/5/13 23:12 149 94 2022/5/13 23:27 154 95 2022/5/13 23:42 143 96 2022/5/13 23:57 114 97 2022/5/14 0:12 96 98 2022/5/14 0:27 97 99 2022/5/14 0:42 102 100 2022/5/14 0:57 109 101 2022/5/14 1:12 121 102 2022/5/14 1:27 129 103 2022/5/14 1:42 128 104 2022/5/14 1:57 127 105 2022/5/14 2:12 115 106 2022/5/14 2:27 101 107 2022/5/14 2:42 100 108 2022/5/14 2:57 103 109 2022/5/14 3:12 105 110 2022/5/14 3:27 105 111 2022/5/14 3:42 100 112 2022/5/14 3:57 100 113 2022/5/14 4:12 100 114 2022/5/14 4:27 98 115 2022/5/14 4:42 102 116 2022/5/14 4:58 111 117 2022/5/14 5:13 110 118 2022/5/14 5:28 119 119 2022/5/14 5:43 138 120 2022/5/14 5:58 126 121 2022/5/14 6:13 106 122 2022/5/14 6:28 123 123 2022/5/14 6:43 132 124 2022/5/14 6:58 117 125 2022/5/14 7:13 114 126 2022/5/14 7:31 129 127 2022/5/14 7:46 143 128 2022/5/14 8:01 145 129 2022/5/14 8:16 142 130 2022/5/14 8:31 143 131 2022/5/14 8:46 140 132 2022/5/14 9:01 132 133 2022/5/14 9:16 129 134 2022/5/14 9:31 128 135 2022/5/14 9:46 116 136 2022/5/14 10:01 97 137 2022/5/14 10:16 94 138 2022/5/14 10:31 105 139 2022/5/14 10:46 113 140 2022/5/14 11:01 113 141 2022/5/14 11:16 114 142 2022/5/14 11:31 114 143 2022/5/14 11:46 103 144 2022/5/14 12:03 104 145 2022/5/14 12:18 108 146 2022/5/14 12:33 109 147 2022/5/14 12:48 122 148 2022/5/14 13:03 154 149 2022/5/14 13:18 174 150 2022/5/14 13:33 161 151 2022/5/14 13:48 154 152 2022/5/14 14:03 152 153 2022/5/14 14:18 144 154 2022/5/14 14:33 162 155 2022/5/14 14:48 170 156 2022/5/14 15:03 150 157 2022/5/14 15:18 137 158 2022/5/14 15:33 129 159 2022/5/14 15:48 127 160 2022/5/14 16:03 129 161 2022/5/14 16:20 116 162 2022/5/14 16:35 118 163 2022/5/14 16:50 117 164 2022/5/14 17:05 113 165 2022/5/14 17:20 101 166 2022/5/14 17:35 90 167 2022/5/14 17:50 100 168 2022/5/14 18:05 107 169 2022/5/14 18:20 104 170 2022/5/14 18:35 105 171 2022/5/14 18:50 106 172 2022/5/14 19:05 110 173 2022/5/14 19:20 103 174 2022/5/14 19:35 91 175 2022/5/14 19:50 107 176 2022/5/19 8:35 122 177 2022/5/19 8:50 113 178 2022/5/19 9:07 107 179 2022/5/19 9:22 106 180 2022/5/19 9:37 95 181 2022/5/19 9:52 86 182 2022/5/19 10:07 86 183 2022/5/19 10:22 95 184 2022/5/19 10:37 103 185 2022/5/19 10:52 107 186 2022/5/19 11:07 100 187 2022/5/19 11:22 87 188 2022/5/19 11:38 80 189 2022/5/19 11:53 79 190 2022/5/19 12:08 87 191 2022/5/19 12:23 101 192 2022/5/19 12:38 100 193 2022/5/19 12:53 77 194 2022/5/19 13:08 57 195 2022/5/19 13:23 58 196 2022/5/19 13:38 79 197 2022/5/19 13:53 94 198 2022/5/19 14:08 89 199 2022/5/19 14:23 77 200 2022/5/19 14:38 84 201 2022/5/19 14:53 95 202 2022/5/19 15:08 90 203 2022/5/19 15:23 92 204 2022/5/19 15:38 90 205 2022/5/19 15:53 81 206 2022/5/19 16:09 86 207 2022/5/19 16:24 94 208 2022/5/19 16:39 99 209 2022/5/19 16:54 98 210 2022/5/19 17:09 89 211 2022/5/19 17:24 87 212 2022/5/19 17:39 94 213 2022/5/19 17:54 95 214 2022/5/19 18:11 91 215 2022/5/19 18:26 90 216 2022/5/19 18:41 86 217 2022/5/19 18:56 88 218 2022/5/19 19:10 106 219 2022/5/19 19:26 138 220 2022/5/19 19:41 150 221 2022/5/19 19:56 123 222 2022/5/19 20:11 108 223 2022/5/19 20:27 129 224 2022/5/19 20:42 136 225 2022/5/19 20:57 113 226 2022/5/19 21:12 106 227 2022/5/19 21:27 118 228 2022/5/19 21:45 139 229 2022/5/19 22:00 151 230 2022/5/19 22:15 137 231 2022/5/19 22:30 106 232 2022/5/19 22:45 99 233 2022/5/19 23:00 116 234 2022/5/19 23:15 123 235 2022/5/19 23:30 115 236 2022/5/19 23:45 107

実現したいこと

  • Year/month/day/hour:min の数値データを、0〜24 hoursをX軸として、Year/Month/dayごとに色分けしたプロットおよび線で、重ねて表示したい(excelで作成している添付図のように)。

イメージ説明

発生している問題・エラーメッセージ

Year/month/day/hour:min の数値データがX軸となり、Y valueのグラフが表示され、1日ごと(0時から24時まで)の重なりグラフがかけない。

該当のソースコード

ソースコードを教えていただきたいと思います。

ぜひよろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ありがとうございます。
コードの意味が理解できまして、大変わかりやすいです。
そこで、Anacondaで実行したのですが、以下のエラーが出ました。
こちらのエラーの内容と、対処をお教えいただけると幸いです。
どうぞご教授のほどよろしくお願いいたします。


File "/Volumes/GlucoseGraph/untitled0.py", line 15, in <module>
df = pd.read_csv('kimoto.csv', sep='\t',parse_dates=['Time'])

File "/Users/opt/anaconda3/lib/python3.8/site-packages/pandas/io/parsers.py", line 610, in read_csv
return _read(filepath_or_buffer, kwds)

File "/Users/topt/anaconda3/lib/python3.8/site-packages/pandas/io/parsers.py", line 462, in _read
parser = TextFileReader(filepath_or_buffer, **kwds)

File "/Users/opt/anaconda3/lib/python3.8/site-packages/pandas/io/parsers.py", line 819, in init
self._engine = self._make_engine(self.engine)

File "/Users/opt/anaconda3/lib/python3.8/site-packages/pandas/io/parsers.py", line 1050, in _make_engine
return mapping[engine](self.f, **self.options) # type: ignore[call-arg]

File "/Users/opt/anaconda3/lib/python3.8/site-packages/pandas/io/parsers.py", line 1961, in init
self._validate_parse_dates_presence(self.names)

File "/Users/opt/anaconda3/lib/python3.8/site-packages/pandas/io/parsers.py", line 1415, in _validate_parse_dates_presence
raise ValueError(

ValueError: Missing column provided to 'parse_dates': 'Time'

投稿2022/08/25 01:28

tirkjs

総合スコア7

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

can110

2022/08/25 01:49

エラーメッセージのとおりTime列がないと思います。 なお、私の回答コードでは、もとのCSVファイルは質問に記載されているままタブ区切りとして読み込んでいますが、kimoto.csvの区切り文字は何でしょうか。もしカンマならsep='\t'だと正常に読めないはずです。
tirkjs

2022/08/25 03:38

すみません、ケアレスミスです。 問題解決しました。 迅速なご対応ありがとうございました。
guest

0

ベストアンサー

  • 日時から日毎にグループ化
  • 日時のうちの時刻を、基準日からの相対時刻に変換(正規化)

することでx軸となる時刻を一致させて日毎に複数グラフを描画できます。

Python

1import pandas as pd 2import matplotlib.pyplot as plt 3import matplotlib.dates as md 4from datetime import datetime, timedelta 5 6# 検証データ 7df = pd.read_csv('data.txt', sep='\t',parse_dates=['Time']) 8 9# x軸(時刻)の範囲制限用 10org_date = '2022-01-01' # 時刻の基準となる日付。なんでもよい 11st = datetime.strptime(org_date, '%Y-%m-%d') 12xlim = [pd.to_datetime(st), pd.to_datetime(st+timedelta(days=1))] 13 14fig, ax = plt.subplots() 15 16# 日毎にグループ化 17#for day, gdf in df.groupby(pd.Grouper(key='Time', freq='D')): # 対象範囲に含まれる全日付毎 18for day, gdf in df.groupby([df['Time'].dt.date]): # 存在する日付のみ 19 20 gdf = gdf.copy() # Suppress SettingWithCopyWarning 21 22 # 日付を基準日に統一 23 gdf['orgTime'] = pd.to_datetime(gdf['Time'].dt.strftime(f'{org_date} %H:%M')) 24 25 gdf.plot( ax=ax, x='orgTime', y='Y value', label=day.strftime('%Y-%m-%d')) 26 27 # x軸の調整 28 ax.set_xlim(xlim) 29 ax.xaxis.set_major_locator(md.HourLocator(interval = 1)) # 1hour 30 ax.xaxis.set_major_formatter(md.DateFormatter("%H:%M")) # hour:min 31 32plt.show()

イメージ説明

投稿2022/08/24 07:50

編集2022/08/24 08:59
can110

総合スコア38262

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問