该示例使用文件“QtChart.ui”(这很重要),其中嵌入了Pyqtgraph的小部件(这也很重要)。
问题: 显示了图形,但显示了自纪元开始以来的秒数,而不是日期时间轴。
我axis = pg.DateAxisItem(orientation='bottom')
按照示例设置了变量,应该将其添加到这样的行中pw = pg.PlotWidget(viewBox=vb, axisItems={'bottom': axis}),但是我的代码中没有这样的行。
如何从纪元开始设置日期时间轴而不是秒?
代码:
import random
import sys
from PyQt5.QtCore import *
from PyQt5 import QtWidgets, uic
from PyQt5.QtWidgets import QMainWindow
import time
import pyqtgraph as pg
x = []
y = []
class draw_interface(QMainWindow):
def __init__(self):
super(draw_interface, self).__init__()
uic.loadUi('QtChart.ui', self)
self.timer_update_events = QTimer()
self.timer_update_events.timeout.connect(self.update_chart)
self.timer_update_events.start(1000)
axis = pg.DateAxisItem(orientation='bottom')
self.line = pg.PlotCurveItem(clear=True, pen="g")
self.widget.addItem(self.line)
self.show()
def update_chart(self):
global x, y
x.append(time.time())
y.append(random.uniform(0, …Run Code Online (Sandbox Code Playgroud) 我需要创建两个图表(子图,同步)并设置尺寸,如下所示:
就像这个草图一样。
一张图表很容易创建(代码如下)。但要添加第二个子图 - 它不起作用。我尝试通过 QVBoxLayout() 添加它,但也失败了。
我找到了所需的示例,如何使用 QCharts 创建子图?但它不是用 Python 编写的(这在尝试转换为 Python 时会引起麻烦)。这里https://doc.qt.io/qt-5/qchart.html#chartType-prop也不在那里,而且它也不在Python中。
如何添加子图并指示尺寸(以像素或%为单位)?
from random import uniform
from PyQt5.QtWidgets import QApplication, QMainWindow
import sys
from PyQt5.QtChart import QChart, QChartView, QLineSeries
class Window(QMainWindow):
def __init__(self):
super().__init__()
self.setGeometry(100, 100, 680, 500)
self.create_linechart()
self.show()
def create_linechart(self):
series = QLineSeries(self)
for i in range(100):
series.append(i, uniform(0, 10))
chart = QChart()
chart.addSeries(series)
chart.createDefaultAxes()
chartview = QChartView(chart)
self.setCentralWidget(chartview)
App = QApplication(sys.argv)
window = Window()
sys.exit(App.exec_())
Run Code Online (Sandbox Code Playgroud)