演示浮动轴2

轴在矩形框内

以下代码演示了如何将浮动极坐标曲线放在矩形框内。 为了更好地了解极坐标曲线,请查看demo_curvelinear_grid.py。

演示浮动轴2

  1. import numpy as np
  2. import matplotlib.pyplot as plt
  3. import mpl_toolkits.axisartist.angle_helper as angle_helper
  4. from matplotlib.projections import PolarAxes
  5. from matplotlib.transforms import Affine2D
  6. from mpl_toolkits.axisartist import SubplotHost
  7. from mpl_toolkits.axisartist import GridHelperCurveLinear
  8. def curvelinear_test2(fig):
  9. """Polar projection, but in a rectangular box.
  10. """
  11. # see demo_curvelinear_grid.py for details
  12. tr = Affine2D().scale(np.pi / 180., 1.) + PolarAxes.PolarTransform()
  13. extreme_finder = angle_helper.ExtremeFinderCycle(20,
  14. 20,
  15. lon_cycle=360,
  16. lat_cycle=None,
  17. lon_minmax=None,
  18. lat_minmax=(0,
  19. np.inf),
  20. )
  21. grid_locator1 = angle_helper.LocatorDMS(12)
  22. tick_formatter1 = angle_helper.FormatterDMS()
  23. grid_helper = GridHelperCurveLinear(tr,
  24. extreme_finder=extreme_finder,
  25. grid_locator1=grid_locator1,
  26. tick_formatter1=tick_formatter1
  27. )
  28. ax1 = SubplotHost(fig, 1, 1, 1, grid_helper=grid_helper)
  29. fig.add_subplot(ax1)
  30. # Now creates floating axis
  31. # floating axis whose first coordinate (theta) is fixed at 60
  32. ax1.axis["lat"] = axis = ax1.new_floating_axis(0, 60)
  33. axis.label.set_text(r"$\theta = 60^{\circ}$")
  34. axis.label.set_visible(True)
  35. # floating axis whose second coordinate (r) is fixed at 6
  36. ax1.axis["lon"] = axis = ax1.new_floating_axis(1, 6)
  37. axis.label.set_text(r"$r = 6$")
  38. ax1.set_aspect(1.)
  39. ax1.set_xlim(-5, 12)
  40. ax1.set_ylim(-5, 10)
  41. ax1.grid(True)
  42. fig = plt.figure(1, figsize=(5, 5))
  43. fig.clf()
  44. curvelinear_test2(fig)
  45. plt.show()

下载这个示例