最后活跃于 1 month ago

Python Gerador de Histograma (IFUSP)

generate.py 原始文件
1#!/usr/bin/env python
2# -*- coding: utf-8 -*-
3from __future__ import unicode_literals
4
5'''
6 Para geração de histograma dos tempos de queda
7'''
8
9import sys
10import numpy as np
11import matplotlib.mlab as mlab
12import matplotlib.pyplot as plt
13
14# Tamanho da página do histograma
15width = 20 # cm
16height = 15 # cm
17
18if len(sys.argv) < 4:
19 print "Usage: generate.py data.txt title output"
20 exit(1)
21
22output = sys.argv[3]
23title = sys.argv[2].decode(encoding='UTF-8',errors='strict')
24
25data = np.fromfile(sys.argv[1], sep='\n')
26
27num_bins = 12
28avg = np.average(data)
29std = np.std(data)
30
31fig, ax = plt.subplots()
32n, bins, patches = ax.hist(data, num_bins, color='burlywood', histtype='stepfilled')
33
34print "Média: %s Desvio Padrão: %s" %(avg, std)
35
36ax.axvline(avg, color='red', label="Média = %.2f s" %avg)
37ax.axvline(avg-std, color='lightblue', label="Média - Desvio Padrão = %.2f s" %(avg-std))
38ax.axvline(avg+std, color='darkblue', label="Média + Desvio Padrão = %.2f s" % (avg+std))
39
40ax.set_xlabel('Tempo (s)')
41ax.set_ylabel('Contagem (n)')
42ax.set_title(title)
43ax.set_ylim( None, n.max() * 1.2)
44
45legend = ax.legend(loc='upper left', shadow=True, prop={'size':10})
46fig.tight_layout()
47
48fig.set_size_inches(width / 2.54, height / 2.54)
49plt.savefig('%s.png' %output, dpi=100)
grafa.py 原始文件
1#!/usr/bin/env python
2# -*- coding: utf-8 -*-
3from __future__ import unicode_literals
4
5'''
6 Para geração de histograma das acelerações
7'''
8
9import sys
10import numpy as np
11import matplotlib.mlab as mlab
12import matplotlib.pyplot as plt
13
14# Tamanho da página do histograma
15width = 20 # cm
16height = 15 # cm
17
18# Altura de queda
19deltaS = 34 # metros
20
21if len(sys.argv) < 3:
22 print "Usage: generate.py data.txt output"
23 exit(1)
24
25output = sys.argv[2]
26
27data = np.fromfile(sys.argv[1], sep='\n')
28
29data = (2 * deltaS) / (data ** 2)
30
31num_bins = 12
32avg = np.average(data)
33std = np.std(data)
34
35fig, ax = plt.subplots()
36n, bins, patches = ax.hist(data, num_bins, color='burlywood', histtype='stepfilled')
37
38print "Média: %s Desvio Padrão: %s" %(avg, std)
39
40ax.axvline(avg, color='red', label="Média = %.2f m/s²" %avg)
41ax.axvline(avg-std, color='lightblue', label="Média - Desvio Padrão = %.2f m/s²" %(avg-std))
42ax.axvline(avg+std, color='darkblue', label="Média + Desvio Padrão = %.2f m/s²" % (avg+std))
43
44ax.set_xlabel('Aceleração (m/s²)')
45ax.set_ylabel('Contagem (n)')
46ax.set_title('Histograma das Acelerações Médias')
47ax.set_ylim( None, n.max() * 1.2)
48
49legend = ax.legend(loc='upper left', shadow=True, prop={'size':10})
50fig.tight_layout()
51
52fig.set_size_inches(width / 2.54, height / 2.54)
53plt.savefig('%s.png' %output, dpi=100)
grafv.py 原始文件
1#!/usr/bin/env python
2# -*- coding: utf-8 -*-
3from __future__ import unicode_literals
4
5'''
6 Para geração de histograma das velocidades
7'''
8
9import sys
10import numpy as np
11import matplotlib.mlab as mlab
12import matplotlib.pyplot as plt
13
14# Tamanho da página do histograma
15width = 20 # cm
16height = 15 # cm
17
18# Altura de queda
19deltaS = 34 # metros
20
21if len(sys.argv) < 3:
22 print "Usage: generate.py data.txt output"
23 exit(1)
24
25output = sys.argv[2]
26
27data = np.fromfile(sys.argv[1], sep='\n')
28
29data = deltaS / data
30
31num_bins = 12
32avg = np.average(data)
33std = np.std(data)
34
35fig, ax = plt.subplots()
36n, bins, patches = ax.hist(data, num_bins, color='burlywood', histtype='stepfilled')
37
38print "Média: %s Desvio Padrão: %s" %(avg, std)
39
40ax.axvline(avg, color='red', label="Média = %.2f m/s" %avg)
41ax.axvline(avg-std, color='lightblue', label="Média - Desvio Padrão = %.2f m/s" %(avg-std))
42ax.axvline(avg+std, color='darkblue', label="Média + Desvio Padrão = %.2f m/s" % (avg+std))
43
44ax.set_xlabel('Velocidade (m/s)')
45ax.set_ylabel('Contagem (n)')
46ax.set_title('Histograma das Velocidades Médias')
47ax.set_ylim( None, n.max() * 1.2)
48
49legend = ax.legend(loc='upper left', shadow=True, prop={'size':10})
50fig.tight_layout()
51
52fig.set_size_inches(width / 2.54, height / 2.54)
53plt.savefig('%s.png' %output, dpi=100)