Python 如何使用pyplot旋转绘图x轴和y轴

Python 如何使用pyplot旋转绘图x轴和y轴,python,matplotlib,Python,Matplotlib,它的工作原理如下: 但我的目标是这样的形象: 我如何使用matplotlib像这样旋转图像?如果你不在乎刻度上有负数,你可以简单地:plt.scatter([-y代表y,y1],x1) 您还需要更改轴上的标签,但这将在垂直轴上绘制x,在水平轴上绘制y,负值从右向左 另一方面,如果要旋转图像,可以将其保存并旋转到文件,使用其他工具旋转并读取该文件。如果不完全重写,则无法旋转绘图上的工具栏。那工作似乎有点太多了,所以我不考虑了 除此之外,旋转绘图中的所有元素并交换x轴和y轴的角色没有大问题。具体

它的工作原理如下:

但我的目标是这样的形象:


我如何使用matplotlib像这样旋转图像?

如果你不在乎刻度上有负数,你可以简单地:
plt.scatter([-y代表y,y1],x1)

您还需要更改轴上的标签,但这将在垂直轴上绘制x,在水平轴上绘制y,负值从右向左


另一方面,如果要旋转图像,可以将其保存并旋转到文件,使用其他工具旋转并读取该文件。

如果不完全重写,则无法旋转绘图上的工具栏。那工作似乎有点太多了,所以我不考虑了

除此之外,旋转绘图中的所有元素并交换x轴和y轴的角色没有大问题。具体来说,

  • 所有文本都可以获得
    旋转
    参数
  • 数据可以简单地交换,即
    散射(y,x)
  • 轴可以反转,
    ax.invert_xaxis()
  • 勾号的位置可以设置在右侧
    ax.yaxis.tick\u right()
  • “title”可以用一个常用的文本元素来模拟
编码:

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")
plt.show()

import matplotlib.pyplot as plt

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(figsize=plt.rcParams["figure.figsize"][::-1])
fig.subplots_adjust(left=0.1, right=0.875, top=0.9,bottom=0.125)

ax.scatter(y1, x1)

ax.set_ylabel("x", rotation=90)
ax.yaxis.tick_right()
ax.yaxis.set_label_position("right")
ax.set_xlabel("y", rotation=180)
ax.invert_xaxis()

plt.setp(ax.get_xticklabels(), rotation=90, va="top", ha="center")
plt.setp(ax.get_yticklabels(), rotation=90, va="center", ha="left")

ax.text(-0.05,0.5,"y-x scatter", ha="center", va="center",
        transform=ax.transAxes, rotation=90)


plt.show()