Python 如何旋转简单的matplotlib轴

Python 如何旋转简单的matplotlib轴,python,matplotlib,Python,Matplotlib,是否可以像旋转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_旋转将使文本围绕其坐标轴旋转角度值。对于Axis实例,是

是否可以像旋转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_旋转将使文本围绕其坐标轴旋转角度值。对于Axis实例,是否有任何方法可以执行相同的操作?

是的,这是可能的。但必须分别旋转每个标签。因此,您可以尝试使用迭代:

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()

您是否在询问如何旋转整个轴(而不仅仅是文本)

如果是这样,是的,这是可能的,但你必须事先知道绘图的范围

您必须使用
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()

是否有办法将旋转轴绘制在另一个绘图的顶部?这确实创建了一个旋转轴,但它缺少了“常规”轴所具有的许多属性(例如,我不知道如何删除x/y记号和背景)@choldgraf-是的,但对于使用
AxisArtister
工具包制作的轴,单个脊椎、x轴、y轴、记号等的处理方式略有不同。(这是普通轴和
axisartist
轴之间的主要区别。因此API不同。)下面是一个例子:但是,可能有一种更简单的方法(例如,旋转数据)。你到底想做什么?谢谢你的提示-确实有效(出于某种原因,只是在轴上设置了可见的,而辅助轴对象不起作用)。我试图创建一个覆盖在散点图上的直方图(例如,类似于)。这很接近我想要的,但很难用简单的方式缩放浮动直方图。@JoeKington有没有办法在不设置范围的情况下实现这种旋转?你能看一看吗