Advertisement
wagner-cipriano

Matplotlib Plot Example

Dec 5th, 2016
185
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.84 KB | None | 0 0
  1. #!/usr/bin/python
  2. # -*- coding: utf-8 -*-
  3. """
  4. Cellular Automata Domany-kinzel - PLOT commands
  5. Autores:
  6.  THIAGO LINHARES BRANT REIS
  7.  VANDERCI FERNANDES ARRUDA
  8.  Wagner Cipriano.
  9.  Email: wagnao-gmail
  10. Disciplina: Princípios de Modelagem Matemática. CefetMG
  11. Prof: Thiago Mattos
  12. """
  13. import matplotlib.pyplot as plt
  14. import getopt, sys
  15. import importlib
  16.  
  17. #Definindo as strings de formatação (cores e formato dos pontos das curvas)
  18. StrFmtList = [ {'fmt':'k-o',   'mfc':'w', 'mec':'k', 'leg':'P1: 0.20'},   #Círculos pretos
  19.                {'fmt':'r-s',   'mfc':'w', 'mec':'r', 'leg':'P1: 0.50'},   #Quadrado vermelho
  20.                {'fmt':'g-d',   'mfc':'w', 'mec':'g', 'leg':'P1: 0.59'},   #Losango rocho
  21.                {'fmt':'b-^',   'mfc':'w', 'mec':'b', 'leg':'P1: 0.595'},  #Triangulo azul
  22.                {'fmt':'m-<',   'mfc':'w', 'mec':'m', 'leg':'P1: 0.60'},   #Magenta
  23.                {'fmt':'y-v',   'mfc':'w', 'mec':'y', 'leg':'P1: 0.80'},   #Brow
  24.               ]
  25.  
  26. def DoPlot(Dados):
  27.     ax = plt.subplot()
  28.     #Labels legenda
  29.     for i in range(len(Dados.ListLeg)):
  30.         if(i < len(StrFmtList)):
  31.             StrFmtList[i]['leg'] = Dados.ListLeg[i]
  32.  
  33.     for idx in range(len(Dados.Y)):
  34.         ListRMS = Dados.Y[idx]
  35.         Fmt = StrFmtList[idx]
  36.         X = Dados.X
  37.         #Get X Values (P1)
  38.         P2v = None
  39.         if(type(Dados.P1List) == dict):
  40.             #get P2 value
  41.             P2v = str(Fmt['leg'][Fmt['leg'].find('=')+1:]).strip()
  42.             if(P2v):
  43.                 X = Dados.P1List[str(P2v)]
  44.  
  45.         #Gerando as cada curvas no grafico
  46.         plt.plot(X, ListRMS, Fmt['fmt'], label=Fmt['leg'], markerfacecolor=Fmt['mfc'], markeredgecolor=Fmt['mec'], linewidth=Dados.linewidth)
  47.  
  48.     #Legend Generate
  49.     plt.legend(fontsize='medium', borderpad=1, fancybox=True, frameon=False, loc=Dados.LegLoc)  #, bbox_to_anchor=(0.05, 1.02, 2.0, .0001)
  50.  
  51.     #Escala log log
  52.     if(Dados.Scale == 'loglog'):
  53.         ax.set_xscale('log')
  54.         ax.set_yscale('log')
  55.  
  56.     #Inserir grade ao fundo do grafico
  57.     plt.grid(True)
  58.  
  59.     #Configurando titulo do grafico e nome dos eixos
  60.     plt.xlabel(Dados.xlabel)
  61.     plt.ylabel(Dados.ylabel)
  62.     plt.title(Dados.title)
  63.  
  64.     #Exibir o grafico
  65.     plt.show()
  66. #
  67.  
  68.  
  69.  
  70. if(__name__ == '__main__'):
  71.  
  72.     Help = """
  73.      Cellular Automata Domany-kinzel PLOTS
  74.        Options:
  75.          -f   File Data
  76.    """
  77.  
  78.     #Get params (comand line options)
  79.     opts,args = getopt.getopt(sys.argv[1:],'f:h')
  80.     FileName = None
  81.     for key,val in opts:
  82.         if(key == '-f'):  FileName = str(val)
  83.         elif(key == '-h'):
  84.             print(Help); sys.exit(1);
  85.     if(not FileName):
  86.         print(Help); sys.exit(1);
  87.     print('FileName:   %s\n' %(FileName))
  88.  
  89.     #import dados gerados pelo algoritmo ACDK.py
  90.     Dados = importlib.import_module(FileName)
  91.  
  92.     DoPlot(Dados)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement