python - टर्मिनल में पायथन ASCII भूखंड
matplotlib (4)
आप प्लॉट्स के लिए सिम्पी के TextBackend
को भी आजमा सकते हैं, doc देखें। या बस textplot
उपयोग textplot
।
यहां यह एक उदाहरण है
from sympy import symbols
from sympy.plotting import textplot
x = symbols('x')
textplot(x**2,0,5)
आउटपुट के साथ
24.0992 | /
| ..
| /
| ..
| ..
| /
| ..
| ..
12.0496 | ---------------------------------------..--------------
| ...
| ..
| ..
| ...
| ...
| ...
| .....
| .....
0 | .............
0 2.5 5
ऑक्टेव के साथ मैं टर्मिनल के लिए सरणी प्लॉट करने में सक्षम हूं, उदाहरण के लिए, फ़ंक्शन x^2
मानों के साथ सरणी को साजिश करने से यह टर्मिनल मेरे आउटपुट में देता है:
10000 ++---------+-----------+----------+-----------+---------++
++ + + + + ++
|+ : : : : +|
|++ : : : : ++|
| + : : : : + |
| ++ : : : : ++ |
8000 ++.+..................................................+.++
| ++ : : : : ++ |
| ++ : : : : ++ |
| + : : : : + |
| ++ : : : : ++ |
| + : : : : + |
6000 ++....++..........................................++....++
| ++ : : : : ++ |
| + : : : : + |
| ++ : : : : ++ |
| ++: : : :++ |
4000 ++........++..................................++........++
| + : : + |
| ++ : : ++ |
| :++ : : ++: |
| : ++ : : ++ : |
| : ++ : : ++ : |
2000 ++.............++........................++.............++
| : ++ : : ++ : |
| : +++ : : +++ : |
| : ++ : : ++ : |
| : +++: :+++ : |
+ + ++++ ++++ + +
0 ++---------+-----------+----------+-----------+---------++
0 20000 40000 60000 80000 100000
क्या कोई तरीका है कि मैं पाइथन में कुछ ऐसा कर सकता हूं, विशेष रूप से matplotlib के साथ? bashplotlib इस कार्यक्षमता में से कुछ प्रदान करता प्रतीत होता है लेकिन ऑक्टेव की पेशकश की तुलना में काफी बुनियादी प्रतीत होता है।
चूंकि कुछ उत्तरों पहले से ही सुझाव देते हैं कि gnuplot
एक शानदार विकल्प है।
हालांकि, एक gnuplot subprocess को कॉल करने की कोई आवश्यकता नहीं है, यह एक पायथन gnuplotlib
पुस्तकालय का उपयोग करना अधिक आसान हो सकता है।
उदाहरण (से: https://github.com/dkogan/gnuplotlib ):
>>> import numpy as np
>>> import gnuplotlib as gp
>>> x = np.linspace(-5,5,100)
>>> gp.plot( x, np.sin(x) )
[ graphical plot pops up showing a simple sinusoid ]
>>> gp.plot( (x, np.sin(x), {'with': 'boxes'}),
... (x, np.cos(x), {'legend': 'cosine'}),
... _with = 'lines',
... terminal = 'dumb 80,40',
... unset = 'grid')
[ ascii plot printed on STDOUT]
1 +-+---------+----------+-----------+-----------+----------+---------+-+
+ +|||+ + + +++++ +++|||+ + +
| |||||+ + + +|||||| cosine +-----+ |
0.8 +-+ |||||| + + ++||||||+ +-+
| ||||||+ + ++||||||||+ |
| ||||||| + ++||||||||| |
| |||||||+ + ||||||||||| |
0.6 +-+ |||||||| + +||||||||||+ +-+
| ||||||||+ | ++||||||||||| |
| ||||||||| + ||||||||||||| |
0.4 +-+ ||||||||| | ++||||||||||||+ +-+
| ||||||||| + +|||||||||||||| |
| |||||||||+ + ||||||||||||||| |
| ||||||||||+ | ++||||||||||||||+ + |
0.2 +-+ ||||||||||| + ||||||||||||||||| + +-+
| ||||||||||| | +||||||||||||||||+ | |
| ||||||||||| + |||||||||||||||||| + |
0 +-+ +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +-+
| + ||||||||||||||||||+ | ++|||||||||| |
| | +||||||||||||||||| + ||||||||||| |
| + ++|||||||||||||||| | +|||||||||| |
-0.2 +-+ + ||||||||||||||||| + ||||||||||| +-+
| | ++||||||||||||||+ | ++||||||||| |
| + ||||||||||||||| + ++|||||||| |
| | +|||||||||||||| + ||||||||| |
-0.4 +-+ + ++||||||||||||+ | +|||||||| +-+
| + ||||||||||||| + ||||||||| |
| | +|||||||||||+ + ++||||||| |
-0.6 +-+ + ++|||||||||| | +||||||| +-+
| + ||||||||||| + ++|||||| |
| + +|||||||||+ + ||||||| |
| + ++|||||||| + +++||||| |
-0.8 +-+ + + ++||||||+ + + +||||| +-+
| + + +|||||| + + ++|||| |
+ + + ++ ++|||++ + + ++ + + ++||| +
-1 +-+---------+----------+-----------+-----------+----------+---------+-+
-6 -4 -2 0 2 4 6
मैंने अभी asciiplotlib जारी किया है जो उम्मीद करनी चाहिए कि आपका जीवन यहां बहुत आसान हो। लाइन प्लॉट्स के लिए, आपको gnuplot और asciiplotlib इंस्टॉल करने की आवश्यकता है,
pip install asciiplotlib
इसके बाद, लाइन प्लॉट बस के साथ उत्पन्न होते हैं
import asciiplotlib as apl
import numpy
x = numpy.linspace(0, 2 * numpy.pi, 10)
y = numpy.sin(x)
fig = apl.figure()
fig.plot(x, y, label="data", width=50, height=15)
fig.show()
1 +-----------------------------------------------------------+
| ** +A** + + + + |
0.8 |-+ ** * data ***A***-|
0.6 |-+ A ** +-|
| * |
0.4 |-+** A +-|
0.2 |-* * +-|
|* * |
0 |-+ * A +-|
| * * |
-0.2 |-+ * ** +-|
-0.4 |-+ A** * +-|
| * * |
-0.6 |-+ ** *A +-|
-0.8 |-+ ** +-|
| + + + + A***** ** + |
-1 +-----------------------------------------------------------+
0 1 2 3 4 5 6 7
यदि आप matplotlib से बाध्य हैं, तो जवाब वर्तमान में नहीं है। वर्तमान में, matplotlib में कई backends , लेकिन ASCII उनमें से एक नहीं है।