上面的函数我使用后,x轴在增加到50后,就没有变化了,self.graphWidget = PlotWidget(self.centralwidget) self.graphWidget.setBackground('w') self.graphWidget.setTitle("Real-time Plot") self.graphWidget.setLabel('left', 'Value') self.graphWidget.setLabel('bottom', 'Time') self.graphWidget.setGeometry(QtCore.QRect(20, 200, 600, 361))这是我的绘图对象的代码。还有办法可以让x轴的坐标增加吗
时间: 2024-03-27 09:40:44 浏览: 18
如果x轴在增加到50后就没有变化了,可能是因为你没有让x轴的范围继续增加。你可以在更新折线图的时候,判断当前数据的长度是否大于50,如果大于50,就让x轴范围的最小值增加1,这样x轴的坐标就能不断增加。修改的代码如下:
```
self.data.append(float_list)
self.data = self.data[-50:]
self.data_line.setData(np.arange(len(self.data)), self.data)
if len(self.data) > 50:
self.plotWidget.setXRange(len(self.data)-50+1, len(self.data)+1)
```
其中`self.plotWidget`代表绘图窗口的对象,`len(self.data)`表示数据的总长度,`len(self.data)-50+1`表示当前x轴的最小值,也就是最早的数据在x轴上的位置。`len(self.data)+1`表示当前x轴的最大值,也就是最新的数据在x轴上的位置。这样,每次更新折线图时,x轴的范围都会自动调整,保证最新的数据都在可视范围内,而且x轴坐标可以不断增加。
相关问题
def reset(self): # 回归初始状态,坐标轴原点在左上角 self.x = 0 self.y = self.nrow - 1 return self.y * self.ncol + self.x 中,return self.y * self.ncol + self.x是什么作用
在reset函数中,self.y * self.ncol + self.x的作用是计算智能体回归初始状态后的状态编号。
在该环境中,智能体的初始位置是在左上角,即坐标轴原点。当调用reset函数时,将智能体的横坐标self.x设置为0,纵坐标self.y设置为self.nrow - 1,即回到了初始位置。
然后,通过计算self.y * self.ncol + self.x,可以将智能体的当前位置转化为一个唯一的状态编号。这个状态编号可以用来表示智能体在环境中的状态。
最后,reset函数返回计算得到的状态编号,表示智能体回归初始状态后的状态。
我使用这个函数实时绘制曲线,怎么让显示的曲线只显示x轴长度固定为100个单位的内容pen = pg.mkPen(color='black', width=3) self.data_line1 = self.graphWidget.plot([], [], pen=pen, symbol='o', symbolBrush='black')
你可以利用 pyqtgraph 中的 setXRange 函数来设置 x 轴的范围,从而限制绘制的曲线只显示 x 轴长度固定为 100 个单位的内容。具体操作如下:
1. 在初始化函数中添加如下代码:
```
self.graphWidget.setXRange(0, 100, padding=0)
```
这样就设置了 x 轴的范围为 0 到 100,padding 参数为 0 表示不留白。
2. 在更新曲线数据时,判断当前数据长度是否超过 100,如果超过则只取最后 100 个数据进行绘制。具体代码如下:
```
xdata = list(range(len(data)))
ydata = data
if len(xdata) > 100:
xdata = xdata[-100:]
ydata = ydata[-100:]
self.data_line1.setData(xdata, ydata)
```
这样就可以实现只显示 x 轴长度固定为 100 个单位的曲线了。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![py](https://img-home.csdnimg.cn/images/20210720083646.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)