我正在使用 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
,但我想知道是否有一种方法可以在不改变值的情况下翻转它。
我正在使用 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.gca().invert_yaxis()
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)
y.max()
和 y.min()
的值高出和低于10%,以防止 y 轴线与图形框重叠。同时请注意,x =np.arange(0, 5, .1)
没有完整的正弦周期,即2π弧度... 通过使用 x = np.linspace(0, 2*np.pi, 63)
,可以解决这个小问题,并提供与 np.arange(0, 5, .1)
相同的 len(x)
。
plt.plot(x, -y)
正好符合你的需求。你对“更改数值”有什么不喜欢的地方吗? - ali_m