forked from NekoMimi-Cateye/CSVtoGraph_forNNCT3J
-
Notifications
You must be signed in to change notification settings - Fork 0
/
csv_loader.py
108 lines (94 loc) · 3.52 KB
/
csv_loader.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
import pandas as pd
import matplotlib.pyplot as plt
print('【はじめに】Pythonユーザー: csvファイルをこのexeファイルと同じディレクトリに入れてください')
print('【はじめに】Colaboratoryからの実行: csvファイルをMy Drive直下に入れてください')
print('【はじめに】csvファイルの表以外の部分(ヘッダーとフッダー)を削除してください\n')
print('ファイル名を入力してください. 例) ./hoge.csv 注)./ は必要')
print('ファイル名: ', end='')
path = input()
df = pd.read_csv(str(path), header=0)
df_h = pd.read_csv(str(path), header=None)
print('\n----------------------------------------')
print('{:7s} {:s}\n'.format('[INFO]', path))
print(df)
print('----------------------------------------')
data_tag = []
x_tag = 0
for i in range(len(df.columns)):
data_tag.append(df_h[i][0])
while(1):
print('横軸にしたいデータ列のタグを選択してください (タグ: ', end='')
for i in data_tag:
print('{:s}, '.format(i), end='')
print(')')
check = input()
if (check in data_tag):
nx = df[check]
x_tag = check
break
else:
print('[ERROR] \'{:s}\' という名前のタグは見つかりません. もう一度選択してください'.format(check))
nx = df['TIME']
ny = []
print('\n縦軸にするデータ列を選んでいきます.')
for i in data_tag:
if (i == x_tag):
continue
else:
print('{:s}を横軸, {:s}を縦軸としてグラフを作成しますか? (はい: yes , いいえ: その他のコマンド(何かを入力))'.format(x_tag, i))
check = input()
if (check == 'yes'):
ny.append(df[i])
print('\nグラフの題名を入力してください')
title = input()
print('\nグラフを作成しています')
print('作成完了 保存先: ./result.png')
x = []
y = [[] for i in range(len(ny))]
for i in nx:
x.append(i)
for i in range(len(ny)):
for j in ny[i]:
y[i].append(j)
plt.figure(figsize = (12, 12))
plt.rcParams["font.family"] = "Times New Roman"
plt.rcParams["xtick.direction"] = "in"
plt.rcParams["ytick.direction"] = "in"
plt.rcParams["xtick.minor.visible"] = True
plt.rcParams["ytick.minor.visible"] = True
plt.rcParams["xtick.major.width"] = 1.5
plt.rcParams["ytick.major.width"] = 1.5
plt.rcParams["xtick.minor.width"] = 1.0
plt.rcParams["ytick.minor.width"] = 1.0
plt.rcParams["xtick.major.size"] = 10
plt.rcParams["ytick.major.size"] = 10
plt.rcParams["xtick.minor.size"] = 5
plt.rcParams["ytick.minor.size"] = 5
plt.rcParams["font.size"] = 14
plt.rcParams["axes.linewidth"] = 1.5
for i in range(len(y)):
plt.subplot(len(y), 1, i+1)
if (i == 0):
plt.title(title)
plt.tick_params(labelbottom=False)
plt.rcParams["font.family"] = "Times New Roman"
plt.rcParams["xtick.direction"] = "in"
plt.rcParams["ytick.direction"] = "in"
plt.rcParams["xtick.minor.visible"] = True
plt.rcParams["ytick.minor.visible"] = True
plt.rcParams["xtick.major.width"] = 1.5
plt.rcParams["ytick.major.width"] = 1.5
plt.rcParams["xtick.minor.width"] = 1.0
plt.rcParams["ytick.minor.width"] = 1.0
plt.rcParams["xtick.major.size"] = 10
plt.rcParams["ytick.major.size"] = 10
plt.rcParams["xtick.minor.size"] = 5
plt.rcParams["ytick.minor.size"] = 5
plt.rcParams["font.size"] = 14
plt.rcParams["axes.linewidth"] = 1.5
plt.ylim((-2.5, 7.5))
plt.plot(x, y[i])
plt.tick_params(labelbottom=True)
plt.savefig('result.png')
print("Successed!")
plt.show()