Pretty Printing

From SymPy

Jump to: navigation, search

Introduction

SymPy is able to display nice-looking formulas on a pure terminal using ascii-art. Even more -- when unicode is available, it uses special better-looking symbols for drawing.

To try it, run isympy in a unicode-capable terminal such as uxterm or gnome-terminal.


Example

$ ./bin/isympy 
Python 2.4.4 console for SymPy 0.5.6-hg. These commands were executed:
>>> from __future__ import division
>>> from sympy import *
>>> x, y, z = symbols('xyz')
>>> k, m, n = symbols('kmn', integer=True)
>>> Basic.set_repr_level(2)     # 2D output
>>> pprint_try_use_unicode()    # try to setup unicode pprint
 
In [1]: f = Function('f')
 
In [2]: f(x/(y+1), y)
Out[2]: 
 ⎛  x     ⎞
f⎜─────, y⎟
 ⎝1 + y   ⎠
 
In [3]: sqrt((sqrt(x+1))+1)
Out[3]: 
   ⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽
  ╱       ⎽⎽⎽⎽⎽⎽⎽ 
╲╱  1 + ╲╱ 1 + x  
 
In [4]: th=Symbol('theta'); ph=Symbol('phi')
 
In [5]: Integral(sin(th)/cos(ph), (th,0,pi), (ph, 0, 2*pi))
Out[5]: 
2*π π             
 ⌠  ⌠             
 ⎮  ⎮ sin(θ)      
 ⎮  ⎮ ────── dθ dφ
 ⎮  ⎮ cos(φ)      
 ⌡  ⌡             
 0  0             
 
In [6]: Integral(x**2*sin(y), (x,0,1), (y,0,pi))
Out[6]: 
π 1                
⌠ ⌠                
⎮ ⎮  2             
⎮ ⎮ x *sin(y) dx dy
⌡ ⌡                
0 0                
 
In [7]: Mul(*[Symbol('theta%i' %i) for i in range(1,5)])
Out[7]: θ₁*θ₂*θ₃*θ₄
 
In [8]: Symbol('Y_00')(th,ph)**2 == 1/(4*pi)
Out[8]: 
   2          1 
Y₀₀ (θ, φ) = ───
             4*π
 
In [9]: Matrix([
   ...:   [1/(4*pi), 1],
   ...:   [1, f(x)]
   ...: ])
Out[9]: 
⎡         ⎤
⎢  1      ⎥
⎢ ───    1⎥
⎢ 4*π     ⎥
⎢         ⎥
⎢         ⎥
⎣   1 f(x)

This is how it looks like

in uxterm:

Image:uterm-isympy-unicode.png

and gnome-terminal:

Image:gnome-terminal-unicode.png

and gnome-terminal in Debian testing:

Image:isympy-pprint-gnome-terminal.png

and here is one more axample:

Image:isympy-pprint-integrals.png

Personal tools