1
1
import numpy as np
2
2
3
+ from matplotlib .font_manager import FontProperties
3
4
4
5
from .artist import Artist
5
6
from .description import Desc
6
- from .conversion_edge import Graph , CoordinateEdge
7
+ from .conversion_edge import Graph , CoordinateEdge , DefaultEdge
7
8
8
9
9
10
class Text (Artist ):
10
11
def __init__ (self , container , edges = None , ** kwargs ):
11
12
super ().__init__ (container , edges , ** kwargs )
12
13
14
+ scalar = Desc ((), "display" )
15
+
13
16
edges = [
14
17
CoordinateEdge .from_coords (
15
18
"xycoords" , {"x" : Desc ((), "auto" ), "y" : Desc ((), "auto" )}, "data"
16
19
),
20
+ CoordinateEdge .from_coords ("text" , {"text" : Desc (())}, "display" ),
21
+ CoordinateEdge .from_coords ("color" , {"color" : Desc (())}, "display" ),
22
+ CoordinateEdge .from_coords ("alpha" , {"alpha" : Desc (())}, "display" ),
23
+ CoordinateEdge .from_coords (
24
+ "fontproperties" , {"fontproperties" : Desc (())}, "display"
25
+ ),
26
+ CoordinateEdge .from_coords ("usetex" , {"usetex" : Desc (())}, "display" ),
27
+ CoordinateEdge .from_coords ("rotation" , {"rotation" : Desc (())}, "display" ),
28
+ CoordinateEdge .from_coords (
29
+ "antialiased" , {"antialiased" : Desc (())}, "display"
30
+ ),
31
+ DefaultEdge .from_default_value ("text_def" , "text" , scalar , "" ),
32
+ DefaultEdge .from_default_value ("color_def" , "color" , scalar , "k" ),
33
+ DefaultEdge .from_default_value ("alpha_def" , "alpha" , scalar , 1 ),
34
+ DefaultEdge .from_default_value (
35
+ "fontproperties_def" , "fontproperties" , scalar , FontProperties ()
36
+ ),
37
+ DefaultEdge .from_default_value ("usetex_def" , "usetex" , scalar , False ),
38
+ DefaultEdge .from_default_value ("rotation_def" , "rotation" , scalar , 0 ),
39
+ DefaultEdge .from_default_value (
40
+ "antialiased_def" , "antialiased" , scalar , False
41
+ ),
17
42
]
18
43
19
44
self ._graph = self ._graph + Graph (edges )
@@ -28,7 +53,7 @@ def draw(self, renderer, graph: Graph) -> None:
28
53
"x" : Desc ((), "display" ),
29
54
"y" : Desc ((), "display" ),
30
55
"text" : Desc ((), "display" ),
31
- "color" : Desc ((4 , ), "rgba " ),
56
+ "color" : Desc ((), "display " ),
32
57
"alpha" : Desc ((), "display" ),
33
58
"fontproperties" : Desc ((), "display" ),
34
59
"usetex" : Desc ((), "display" ),
@@ -53,6 +78,10 @@ def draw(self, renderer, graph: Graph) -> None:
53
78
x = evald ["x" ]
54
79
y = evald ["y" ]
55
80
81
+ _ , canvash = renderer .get_canvas_width_height ()
82
+ if renderer .flipy ():
83
+ y = canvash - y
84
+
56
85
if not np .isfinite (x ) or not np .isfinite (y ):
57
86
# TODO: log?
58
87
return
0 commit comments