是否可以像matplotlib.text.Text一样旋转matplotlib.axes.Axes
# text and Axes instance
t = figure.text(0.5,0.5,"some text")
a = figure.add_axes([0.1,0.1,0.8,0.8])
# rotation
t.set_rotation(angle)
a.set_rotation()???
文本实例上的简单set_rotation将按照其坐标轴的角度值旋转文本。对轴实例有什么办法吗?
答案 0 :(得分:12)
您是在询问如何旋转整个轴(而不仅仅是文本)?
如果是这样,是的,这是可能的,但你必须事先了解情节的范围。
你必须使用axisartist
,它允许这样的更复杂的关系,但是有点复杂,不适用于交互式可视化。如果你试图缩放等,你会遇到问题。
import matplotlib.pyplot as plt
from matplotlib.transforms import Affine2D
import mpl_toolkits.axisartist.floating_axes as floating_axes
fig = plt.figure()
plot_extents = 0, 10, 0, 10
transform = Affine2D().rotate_deg(45)
helper = floating_axes.GridHelperCurveLinear(transform, plot_extents)
ax = floating_axes.FloatingSubplot(fig, 111, grid_helper=helper)
fig.add_subplot(ax)
plt.show()
答案 1 :(得分:1)
是的,有可能。但是你必须分别旋转每个标签。因此,您可以尝试使用迭代:
from matplotlib import pyplot as plt
figure = plt.figure()
ax = figure.add_subplot(111)
t = figure.text(0.5,0.5,"some text")
t.set_rotation(90)
labels = ax.get_xticklabels()
for label in labels:
label.set_rotation(45)
plt.show()