gpt4 book ai didi

python - Matplotlib 用新数据更新图形,图形不显示

转载 作者:行者123 更新时间:2023-11-30 23:16:44 25 4
gpt4 key购买 nike

我和这个人有很多同样的问题:Dynamically updating plot in matplotlib 。我想用来自串行端口的数据更新图表,并且我一直在尝试实现这个答案,但我无法让 MWE 工作。该图表根本没有出现,但其他一切似乎都有效。我读到过有关 Matplotlib 安装问题导致类似症状的信息。

这是我的最低不工作示例(MNWE):

import numpy as np
import matplotlib.pyplot as plt

fig1 = plt.figure() #Create figure

l, = plt.plot([], [], 'r-') #What is the comma for? Is l some kind of struct/class?
plt.xlim(0, 1)
plt.ylim(0, 1)
plt.xlabel('x')
plt.title('test')

k = 5
xdata=[0.5 for i in range(k+1)] # Generate a list to hold data
ydata=[j for j in range(k+1)]

while True:
y = float(raw_input("y val :"))
xdata.append(y) # Append new data to list
k = k + 1 # inc x value
ydata.append(k)
l.set_data(xdata,ydata) # update data
print xdata # Print for debug perposes
print ydata
plt.draw # These seem to do nothing
plt.show # !?

有人可以给我指出正确的方向/提供链接/告诉我要谷歌搜索什么吗?我迷路了。谢谢

最佳答案

根据用户@fhdrsdg的建议,我缺少括号。使重新调整工作需要以下代码:set_data and autoscale_view matplotlib

下面提供了一个有效的 MWE:

import numpy as np
import matplotlib.pyplot as plt

plt.ion() # Enable interactive mode
fig = plt.figure() # Create figure
axes = fig.add_subplot(111) # Add subplot (dont worry only one plot appears)

axes.set_autoscale_on(True) # enable autoscale
axes.autoscale_view(True,True,True)

l, = plt.plot([], [], 'r-') # Plot blank data
plt.xlabel('x') # Set up axes
plt.title('test')

k = 5
xdata=[0.5 for i in range(k+1)] # Generate a list to hold data
ydata=[j for j in range(k+1)]

while True:
y = float(raw_input("y val :")) #Get new data
xdata.append(y) # Append new data to list
k = k + 1 # inc x value
ydata.append(k)
l.set_data(ydata,xdata) # update data
print xdata # Print for debug perposes
print ydata
axes.relim() # Recalculate limits
axes.autoscale_view(True,True,True) #Autoscale
plt.draw() # Redraw

关于python - Matplotlib 用新数据更新图形,图形不显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27589835/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com