text.py 803 B

123456789101112131415161718192021222324
  1. import sympy.plotting.backends.base_backend as base_backend
  2. from sympy.plotting.series import LineOver1DRangeSeries
  3. from sympy.plotting.textplot import textplot
  4. class TextBackend(base_backend.Plot):
  5. def __init__(self, *args, **kwargs):
  6. super().__init__(*args, **kwargs)
  7. def show(self):
  8. if not base_backend._show:
  9. return
  10. if len(self._series) != 1:
  11. raise ValueError(
  12. 'The TextBackend supports only one graph per Plot.')
  13. elif not isinstance(self._series[0], LineOver1DRangeSeries):
  14. raise ValueError(
  15. 'The TextBackend supports only expressions over a 1D range')
  16. else:
  17. ser = self._series[0]
  18. textplot(ser.expr, ser.start, ser.end)
  19. def close(self):
  20. pass