Closed ntezak closed 2 years ago
The following patch fixes the issue for me, but I am unsure if it breaks something else
diff --git a/plotille/_figure.py b/plotille/_figure.py
index 0fe4f9a..577194a 100644
--- a/plotille/_figure.py
+++ b/plotille/_figure.py
@@ -641,8 +641,6 @@ class Text:
class Span:
def __init__(self, xmin, xmax, ymin, ymax, lc):
- assert 0 <= xmin <= xmax <= 1
- assert 0 <= ymin <= ymax <= 1
self._xmin = xmin
self._xmax = xmax
self._ymin = ymin
@@ -671,28 +669,16 @@ class Span:
@classmethod
def create(cls, xmin, xmax, ymin, ymax, lc=None):
- if not (0 <= xmin <= xmax <= 1):
- raise ValueError('xmin has to be <= xmax and both have to be within [0, 1].')
- if not (0 <= ymin <= ymax <= 1):
- raise ValueError('ymin has to be <= ymax and both have to be within [0, 1].')
-
return cls(xmin, xmax, ymin, ymax, lc)
def write(self, canvas, with_colors):
color = self.lc if with_colors else None
- # plot texts with color
- xdelta = canvas.xmax_inside - canvas.xmin
- assert xdelta > 0
-
- ydelta = canvas.ymax_inside - canvas.ymin
- assert ydelta > 0
-
canvas.rect(
- canvas.xmin + self.xmin * xdelta,
- canvas.ymin + self.ymin * ydelta,
- canvas.xmin + self.xmax * xdelta,
- canvas.ymin + self.ymax * ydelta,
+ self.xmin,
+ self.ymin,
+ self.xmax,
+ self.ymax,
color=color,
)
Hi,
This is an issue with v3.8.0 . In master, the issue is already fixed, see this PR #42. It is just not published yet. Please have a try with master.
I added specific tests in 86ec904, which is part of #44 . When I finished that PR, I will publish a new version.
Figure.axvline(x, ...)
requires0 <= x <= 1
, and it seems reasonable to assume that if the x_limits of the figure arex1, x2
the reference coordinate x is mapped tox1 + (x2 - x1) * x
. In this settingx=0
corresponds tox1
andx=1
corresponds tox2
.In reality it seems that
x=0
corresponds to the middle vertical(x1 + x2) / 2
. So-1
would correspond to the left boundary, but negative reference coordinates are forbidden!And likewise