Usetex基线测试

Usetex基线测试示例

  1. import matplotlib.pyplot as plt
  2. import matplotlib.axes as maxes
  3. from matplotlib import rcParams
  4. rcParams['text.usetex'] = True
  5. class Axes(maxes.Axes):
  6. """
  7. A hackish way to simultaneously draw texts w/ usetex=True and
  8. usetex=False in the same figure. It does not work in the ps backend.
  9. """
  10. def __init__(self, *args, usetex=False, preview=False, **kwargs):
  11. self.usetex = usetex
  12. self.preview = preview
  13. super().__init__(*args, **kwargs)
  14. def draw(self, renderer):
  15. with plt.rc_context({"text.usetex": self.usetex,
  16. "text.latex.preview": self.preview}):
  17. super().draw(renderer)
  18. subplot = maxes.subplot_class_factory(Axes)
  19. def test_window_extent(ax, usetex, preview):
  20. va = "baseline"
  21. ax.xaxis.set_visible(False)
  22. ax.yaxis.set_visible(False)
  23. text_kw = dict(va=va,
  24. size=50,
  25. bbox=dict(pad=0., ec="k", fc="none"))
  26. test_strings = ["lg", r"$\frac{1}{2}\pi$",
  27. r"$p^{3^A}$", r"$p_{3_2}$"]
  28. ax.axvline(0, color="r")
  29. for i, s in enumerate(test_strings):
  30. ax.axhline(i, color="r")
  31. ax.text(0., 3 - i, s, **text_kw)
  32. ax.set_xlim(-0.1, 1.1)
  33. ax.set_ylim(-.8, 3.9)
  34. ax.set_title("usetex=%s\npreview=%s" % (str(usetex), str(preview)))
  35. fig = plt.figure(figsize=(2 * 3, 6.5))
  36. for i, usetex, preview in [[0, False, False],
  37. [1, True, False],
  38. [2, True, True]]:
  39. ax = subplot(fig, 1, 3, i + 1, usetex=usetex, preview=preview)
  40. fig.add_subplot(ax)
  41. fig.subplots_adjust(top=0.85)
  42. test_window_extent(ax, usetex=usetex, preview=preview)
  43. plt.show()

下载这个示例