【问题标题】:Flip a plot in matplotlib在 matplotlib 中翻转绘图
【发布时间】:2015-07-06 13:34:19
【问题描述】:

我正在用 matplotlib 创建一个情节

import numpy as np
import matplotlib.pyplot as plt

x = np.arange(0, 5, 0.1);
y = np.sin(x)
plt.plot(x, y)

我可以翻转绘图,使 y 轴反转,所有正值均为负值,反之亦然?

我知道我可以乘以 -1 并使用 invert_yaxis 但我想知道是否有一个函数可以在不更改值的情况下翻转它。

【问题讨论】:

  • 听起来plt.plot(x, -y) 完全符合您的要求。 “改变价值观”你不喜欢什么?
  • 不知何故我觉得你的问题很难理解。一方面您想更改值(使 y 轴反转,所有正值都为负值,反之亦然?),另一方面您明确不想更改值(我想知道是否有一个功能可以在不更改值的情况下翻转它)。你能澄清一下问题是什么吗?

标签: python numpy matplotlib


【解决方案1】:

使用plt.ylim 将 y 限制从 (-1.1,1.1) 反转为 (1.1,-1.1) 即可解决问题...

x = np.linspace(0, 2*np.pi, 63)
y = np.sin(x)
plt.plot(x, y)  
plt.ylim(1.1,-1.1)

请注意,(1.1,-1.1) 仅高于和低于 y.max()y.min() 值的 10%,防止 y 线接触图形框。另请注意,x =np.arange(0, 5, .1) 不涵盖完整的正弦周期,2 pi 弧度...x = np.linspace(0, 2*np.pi, 63) 解决了与np.arange(0, 5, .1) 提供的相同len(x) 相同的这个小问题。

【讨论】:

    【解决方案2】:

    试试下面的函数:

    plt.gca().invert_yaxis()
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-02-20
      • 1970-01-01
      • 2023-04-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多