You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Matplotlib的pyplot旋转图表坐标轴与图像?

在Matplotlib中旋转坐标轴及生成旋转后的散点图

针对你的需求,我整理了几种常见的实现方式,你可以根据具体想要的效果来选择:

1. 旋转坐标轴刻度标签

如果只是想让X轴或Y轴的数值标签旋转一定角度(比如避免标签重叠、提升可读性),可以使用plt.xticks()和plt.yticks()的rotation参数来设置旋转角度。修改你的代码如下:

import matplotlib.pyplot as plt
import numpy as np

x1 = [0, 0.02, 0.04, 0.08, 0.12, 0.16, 0.2]
y1 = [0.0005, 0.052, 0.0905, 0.1675, 0.2485, 0.3225, 0.4035]

plt.scatter(x1, y1)
plt.title("y-x scatter")
plt.xlabel("x")
plt.ylabel("y")

# 将X轴刻度标签旋转45度,你可以调整rotation的值来改变角度
plt.xticks(rotation=45)
# 同理,旋转Y轴刻度标签
plt.yticks(rotation=90)

plt.show()

2. 生成旋转90度的图表(交换XY轴)

如果你的目标是让整个图表旋转90度展示,最直接的方式就是在绘制散点图时交换X和Y数据的位置,同时记得更新轴标签和标题:

import matplotlib.pyplot as plt
import numpy as np

x1 = [0, 0.02, 0.04, 0.08, 0.12, 0.16, 0.2]
y1 = [0.0005, 0.052, 0.0905, 0.1675, 0.2485, 0.3225, 0.4035]

# 交换x1和y1的位置,实现图表旋转90度的效果
plt.scatter(y1, x1)
plt.title("x-y scatter (rotated 90°)")
plt.xlabel("y")
plt.ylabel("x")

plt.show()

3. 进阶:旋转整个坐标系至任意角度

如果需要将图表旋转非90度的任意角度,可以借助Matplotlib的Affine2D变换来实现,示例代码如下:

import matplotlib.pyplot as plt
import numpy as np
from matplotlib.transforms import Affine2D

x1 = [0, 0.02, 0.04, 0.08, 0.12, 0.16, 0.2]
y1 = [0.0005, 0.052, 0.0905, 0.1675, 0.2485, 0.3225, 0.4035]

fig, ax = plt.subplots()
# 创建旋转变换,rotate_deg的参数为顺时针旋转角度
rotation_transform = Affine2D().rotate_deg(30) + ax.transData
ax.scatter(x1, y1, transform=rotation_transform)

ax.set_title("Scatter plot rotated 30°")
ax.set_xlabel("x")
ax.set_ylabel("y")

plt.show()

根据你的实际需求选对应的方法就可以啦~

内容的提问来源于stack exchange,提问作者boyden

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 04:31:26