사용자 도구

사이트 도구


python:console

차이

문서의 선택한 두 판 사이의 차이를 보여줍니다.

차이 보기로 링크

양쪽 이전 판이전 판
다음 판
이전 판
python:console [2018/02/10 16:41] – [ascii문자로 plotting] rex8312python:console [2024/03/23 02:42] (현재) – 바깥 편집 127.0.0.1
줄 2: 줄 2:
  
 ===== 컬러 문자 출력 ===== ===== 컬러 문자 출력 =====
-    *  [[https://pypi.python.org/pypi/colorama|colorama]]+ 
 +  [[https://github.com/willmcgugan/rich|rich]] 
 +    * https://medium.com/trabe/building-rich-console-interfaces-in-python-16338cc30eaa 
 +  * [[https://pypi.org/project/termcolor/|termcolor]] 
 +  * [[https://pypi.python.org/pypi/colorama|colorama]]
  
 ===== ascii문자로 plotting ===== ===== ascii문자로 plotting =====
줄 9: 줄 13:
       * 예제       * 예제
 <code python ascii_plot.py> <code python ascii_plot.py>
-def ascii_plot(xs, ys):+def ascii_plot(xs, ys, title=None, print_out=False):
     import subprocess     import subprocess
     import platform     import platform
줄 17: 줄 21:
         path = "/usr/bin/gnuplot"         path = "/usr/bin/gnuplot"
     gnuplot = subprocess.Popen([path],      gnuplot = subprocess.Popen([path], 
-                                stdin=subprocess.PIPE,  +                               stdin=subprocess.PIPE,  
-                                stdout=subprocess.PIPE,  +                               stdout=subprocess.PIPE, 
-                                universal_newlines=True) +                               universal_newlines=True) 
-    input_string = "set term dumb 79 25\n"+    input_string = "set term dumb 90 25\n"
     input_string += "set key off\n"     input_string += "set key off\n"
-    input_string += "plot '-' using 1:2 title 'Line1' with linespoints \n" +     
-    for i, j in zip(xs, ys): +    if not hasattr(ys[0], '__len__'): 
-        input_string += "%f %f\n" % (i, j) +        ys_list = [ys] 
-    input_string += "e\n"+    else: 
 +        ys_list = ys 
 + 
 +    input_string += "plot "  
 +    input_string += ', '.join(["'-' using 1:2 title 'Line1' with linespoints" for ys in ys_list]) 
 +    input_string += '\n
 + 
 +    for ys in ys_list: 
 +        for i, j in zip(xs, ys): 
 +            input_string += "%f %f\n" % (i, j) 
 +        input_string += "e\n" 
     output_string, error_msg = gnuplot.communicate(input_string)     output_string, error_msg = gnuplot.communicate(input_string)
 +
 +    if title is not None:
 +        title = '** {} **\n'.format(title.title())
 +        output_string = title + output_string
 +
 +    if print_out:
 +        print(output_string)
 +        
     return output_string     return output_string
  
줄 46: 줄 69:
     * https://pypi.python.org/pypi/progressbar2     * https://pypi.python.org/pypi/progressbar2
  
-===== UI =====+===== TUI =====
  
   * http://urwid.org/   * http://urwid.org/
 +  * http://npyscreen.readthedocs.io
python/console.1518280884.txt.gz · 마지막으로 수정됨: (바깥 편집)