[codesyntax lang=”python”]

#!/usr/bin/python3
###################################################
# Atividade prática da disciplina Matemática Aplicada II
# ————
# Programa: graph
# ————
# Objetivo: Lê um arquivo e gera um gráfico em um arquivo
###################################################

# —————- Arquivos de Entrada e Saída —————————–

finnam = ‘adv_dif_divisao1d-ana.dat’
print(finnam)
fin = open(finnam,’r’) # abre o arquivo de entrada

linhas = sum(1 for line in fin) # conta o número de linhas no arquivo de entrada
fin.close() # fecha o arquivo de entrada
fin = open(finnam,’r’) # abre o arquivo de entrada

# —————- Criação dos Vetores —————————–

from numpy import zeros

x = zeros(linhas)
y1 = zeros(linhas)
y2 = zeros(linhas)
y3 = zeros(linhas)
y4 = zeros(linhas)
y5 = zeros(linhas)

# —————- Leitura e Escrita do Arquivo —————————–

i = 0
for line in fin:
dados = list(filter(None,line.strip().split(‘ ‘)))
#print(dados[0],dados[1])
x[i] = float(dados[0])
y1[i] = float(dados[1])
y2[i] = float(dados[2])
y3[i] = float(dados[3])
y4[i] = float(dados[4])
i += 1

# —————- Gera o gráfico com Matplotlib —————————–

import matplotlib.pyplot as plt
from matplotlib import rcParams
rcParams[‘font.family’] = ‘serif’
rcParams[‘font.sans-serif’] = [‘Palatino’]

print(x)
print(y1)
print(len(x),len(y1))

#plt.figure(figsize=(18, 12), dpi=400) # This increases resolution
#plt.figure(dpi=300)
#plt.xlim([0,1])
#plt.ylim([0,0.5])
plt.title(‘Advecção Difusao 1D’)
plt.xlabel(‘x’)
plt.ylabel(‘u(x,t)’)
#plt.style.use(‘ggplot’)

plt.plot(x,y1, label=”Tempo: 0.000″)
plt.plot(x,y2, label=”Tempo: 0.125″)
plt.plot(x,y3, label=”Tempo: 0.250″)
plt.plot(x,y4, label=”Tempo: 0.725″)
#plt.legend(bbox_to_anchor=(1.05, 1), loc=2, borderaxespad=0.)
#plt.gcf().autofmt_xdate()
plt.savefig(“result-adv_dif-analitica.png”, dpi = 300)
plt.show()

[/codesyntax]

Back to Top