X Tutup
Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions doc/api/next_api_changes/deprecations/31143-AL.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
``backend_svg.XMLWriter`` is deprecated
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
It is an internal helper not intended for external use.
53 changes: 28 additions & 25 deletions lib/matplotlib/backends/backend_svg.py
Original file line number Diff line number Diff line change
Expand Up @@ -104,7 +104,7 @@ def _short_float_fmt(x):
return f'{x:f}'.rstrip('0').rstrip('.')


class XMLWriter:
class _XMLWriter:
"""
Parameters
----------
Expand Down Expand Up @@ -252,6 +252,15 @@ def flush(self):
pass # replaced by the constructor


@mpl._api.deprecated("3.11")
class XMLWriter(_XMLWriter):
"""
An XML writer class.

:meta private:
"""


def _generate_transform(transform_list):
parts = []
for type, value in transform_list:
Expand Down Expand Up @@ -295,7 +304,7 @@ def __init__(self, width, height, svgwriter, basename=None, image_dpi=72,
*, metadata=None):
self.width = width
self.height = height
self.writer = XMLWriter(svgwriter)
self.writer = _XMLWriter(svgwriter)
self.image_dpi = image_dpi # actual dpi at which we rasterize stuff

if basename is None:
Expand Down Expand Up @@ -926,7 +935,7 @@ def draw_gouraud_triangles(self, gc, triangles_array, colors_array,
id='colorMat')
writer.element(
'feColorMatrix',
attrib={'type': 'matrix'},
type='matrix',
values='1 0 0 0 0 \n0 1 0 0 0 \n0 0 1 0 0 \n1 1 1 1 0 \n0 0 0 0 1 ')
writer.end('filter')

Expand Down Expand Up @@ -982,37 +991,30 @@ def draw_image(self, gc, x, y, im, transform=None):
if transform is None:
w = 72.0 * w / self.image_dpi
h = 72.0 * h / self.image_dpi

self.writer.element(
'image',
transform=_generate_transform([
('scale', (1, -1)), ('translate', (0, -h))]),
x=_short_float_fmt(x),
y=_short_float_fmt(-(self.height - y - h)),
width=_short_float_fmt(w), height=_short_float_fmt(h),
attrib=attrib)
attrib=attrib,
)
else:
alpha = gc.get_alpha()
if alpha != 1.0:
attrib['opacity'] = _short_float_fmt(alpha)

flipped = (
Affine2D().scale(1.0 / w, 1.0 / h) +
transform +
Affine2D()
.translate(x, y)
.scale(1.0, -1.0)
.translate(0.0, self.height))

attrib['transform'] = _generate_transform(
[('matrix', flipped.frozen())])
attrib['style'] = (
'image-rendering:crisp-edges;'
'image-rendering:pixelated')
Affine2D().scale(1 / w, 1 / h)
+ transform
+ Affine2D().translate(x, y).scale(1, -1).translate(0, self.height))
self.writer.element(
'image',
width=_short_float_fmt(w), height=_short_float_fmt(h),
attrib=attrib)
attrib=attrib,
transform=_generate_transform([('matrix', flipped.frozen())]),
style='image-rendering:crisp-edges;image-rendering:pixelated',
)

if url is not None:
self.writer.end('a')
Expand Down Expand Up @@ -1060,14 +1062,15 @@ def _draw_text_as_path(self, gc, x, y, s, prop, angle, ismath, mtext=None):
if alpha != 1:
style['opacity'] = _short_float_fmt(alpha)
font_scale = fontsize / text2path.FONT_SCALE
attrib = {
'style': _generate_css(style),
'transform': _generate_transform([
writer.start(
'g',
style=_generate_css(style),
transform=_generate_transform([
('translate', (x, y)),
('rotate', (-angle,)),
('scale', (font_scale, -font_scale))]),
}
writer.start('g', attrib=attrib)
('scale', (font_scale, -font_scale)),
]),
)

if not ismath:
font = text2path._get_font(prop)
Expand Down
Loading
X Tutup