在实时绘图期间在 matplotlib 中移动 x 轴 (python)
Moving x-axis in matplotlib during real time plot (python)
我想在实时绘图期间操纵 x 轴,以便一次最多可以看到 10 个样本。
似乎 plt.axis() 在情节初始化后只更新一次。有什么建议么?提前致谢!
import numpy as np
import matplotlib.pyplot as plt
# Initialize
x_axis_start = 0
x_axis_end = 10
plt.axis([x_axis_start, x_axis_end, 0, 1])
plt.ion()
# Realtime plot
for i in range(100):
y = np.random.random()
plt.scatter(i, y)
plt.pause(0.10)
# print(i)
if i%10 == 0 and i>1:
# print("Axis should update now!")
plt.axis([x_axis_start+10, x_axis_end+10, 0, 1])
您必须更新 if
语句中的 x_axist_start
和 x_axis_end
!
if i%10 == 0 and i>1:
print("Axis should update now!")
x_axis_start += 10
x_axis_end += 10
plt.axis([x_axis_start, x_axis_end, 0, 1])
这就是诀窍! :)
说明:您只向两个参数添加了一次 10。最后你总是把 10 加到 0 和 10 上,只剩下一个更新。
我想在实时绘图期间操纵 x 轴,以便一次最多可以看到 10 个样本。 似乎 plt.axis() 在情节初始化后只更新一次。有什么建议么?提前致谢!
import numpy as np
import matplotlib.pyplot as plt
# Initialize
x_axis_start = 0
x_axis_end = 10
plt.axis([x_axis_start, x_axis_end, 0, 1])
plt.ion()
# Realtime plot
for i in range(100):
y = np.random.random()
plt.scatter(i, y)
plt.pause(0.10)
# print(i)
if i%10 == 0 and i>1:
# print("Axis should update now!")
plt.axis([x_axis_start+10, x_axis_end+10, 0, 1])
您必须更新 if
语句中的 x_axist_start
和 x_axis_end
!
if i%10 == 0 and i>1:
print("Axis should update now!")
x_axis_start += 10
x_axis_end += 10
plt.axis([x_axis_start, x_axis_end, 0, 1])
这就是诀窍! :)
说明:您只向两个参数添加了一次 10。最后你总是把 10 加到 0 和 10 上,只剩下一个更新。