def __init__(self): super().__init__() # window size self.setMinimumSize(600, 400) # data raw_data = [ (0, 6), (2, 4), (3, 8), (7, 4), (10, 5), (11, 1), (13, 3), (17, 6), (18, 3), (20, 2) ] series = QLineSeries() for d in raw_data: series.append(*d) # chart object chart = QChart() chart.legend().hide() chart.addSeries(series) # data feeding chart.createDefaultAxes() # displaying chart chart_view = QChartView(chart) chart_view.setRenderHint(QPainter.Antialiasing) self.setCentralWidget(chart_view)
def __init__(self, host, history, history_size, *args, **kwargs): super(MainWindow, self).__init__(*args, **kwargs) self.host = host self.history = history self.history_size = history_size self.setupUi(self) self.setWindowFlag(Qt.WindowStaysOnTopHint) self.position_to_dock() self.series_delay = QLineSeries() self.series_loss = QLineSeries() self.axis_X = QDateTimeAxis() # pylint: disable=invalid-name self.axis_X.setTickCount(3) self.axis_X.setFormat("HH:mm") self.axis_X.setTitleText("Time") self.chart = QChart() self.chart.addSeries(self.series_delay) self.chart.addSeries(self.series_loss) self.chart.setTitle(f"Connection to {self.host}") self.init_series(self.series_delay, "Delay ms") self.init_series(self.series_loss, "Loss %") self.chart.legend().setVisible(False) self.chart.legend().setAlignment(Qt.AlignBottom) self.chart.layout().setContentsMargins(0, 0, 0, 0) self.chart.setBackgroundRoundness(0) self.chart.setMargins(QMargins(0, 0, 0, 0)) self.chartWidget.setChart(self.chart) self.chartWidget.setRenderHint(QPainter.Antialiasing)
class ChartWidget(QWidget): def __init__(self, parent=None, ticker="BTC"): super().__init__(parent) uic.loadUi("resource/chart.ui", self) self.ticker = ticker self.viewLimit = 128 self.priceData = QLineSeries() self.priceChart = QChart() self.priceChart.addSeries(self.priceData) self.priceChart.legend().hide() # ----------------- 추 가 ------------------ axisX = QDateTimeAxis() axisX.setFormat("hh:mm:ss") axisX.setTickCount(4) dt = QDateTime.currentDateTime() axisX.setRange(dt, dt.addSecs(self.viewLimit)) axisY = QValueAxis() axisY.setVisible(False) self.priceChart.addAxis(axisX, Qt.AlignBottom) self.priceChart.addAxis(axisY, Qt.AlignRight) self.priceData.attachAxis(axisX) self.priceData.attachAxis(axisY) self.priceChart.layout().setContentsMargins(0, 0, 0, 0) # ------------------------------------------ self.priceView.setChart(self.priceChart) self.priceView.setRenderHints(QPainter.Antialiasing)
def set_series(self, series: QLineSeries): self.chart().removeAllSeries() if not series or len(series) == 0: return self.chart().addSeries(series) series.setPointLabelsClipping(False) series.hovered.connect(lambda p, s: series.setPointLabelsVisible(s)) x_y_points = list(zip(*((e.x(), e.y()) for e in series.pointsVector()))) axisX = self.chart().axisX() axisX.setRange(min(x_y_points[0]), max(x_y_points[0])) axisX.setMinorTickCount(1) axisX.setTickCount(10) axisX.applyNiceNumbers() self.chart().setAxisX(axisX, series) axisY = self.chart().axisY() axisY.setRange(min(x_y_points[1]), max(x_y_points[1])) axisY.setTickCount(18) axisY.applyNiceNumbers() self.chart().setAxisY(axisY, series)
def init_ui(self): self.line_series = QLineSeries() self.chart = QChart() self.chart_view = QChartView(self.chart) self.chart_view.setMinimumSize(640,480) self.model = ItemModel() self.model.signal_update_models.connect(self.update_axes) self.table_view = TableView() self.table_view.setModel(self.model) self.table_view.horizontalHeader().setSectionResizeMode(QHeaderView.Stretch) self.table_view.verticalHeader().setSectionResizeMode(QHeaderView.Stretch) self.chart.setAnimationOptions(QChart.AllAnimations) self.chart.setAnimationDuration(2000) self.line_series.setName("Line 1") self.mapper = QVXYModelMapper(self) self.mapper.setXColumn(0) self.mapper.setYColumn(1) self.mapper.setSeries(self.line_series) self.mapper.setModel(self.model) self.chart.addSeries(self.line_series) seriesColorHex = self.line_series.pen().color().name() self.model.add_mapping(seriesColorHex, QRect(0,0,2, self.model.rowCount())) self.line_series2 = QLineSeries() self.line_series2.setName("Line 2") self.mapper2 = QVXYModelMapper(self) self.mapper2.setXColumn(2) self.mapper2.setYColumn(3) self.mapper2.setSeries(self.line_series2) self.mapper2.setModel(self.model) self.chart.addSeries(self.line_series2) seriesColorHex = self.line_series2.pen().color().name() self.model.add_mapping(seriesColorHex, QRect(2, 0, 2, self.model.rowCount())) self.chart.createDefaultAxes() self.grid = QGridLayout() self.grid.addWidget(self.table_view,0,0) self.grid.addWidget(self.chart_view,0,1) self.chart_view.setRenderHint(QPainter.Antialiasing) self.cw = QWidget() self.cw.setLayout(self.grid) self.setCentralWidget(self.cw) self.resize(400,300)
def __init__(self, parent=None): super(DemoWindow, self).__init__(parent=parent) self.plotChart = QChart() self.plotChart.legend().hide() self.plotView = QChartView(self.plotChart) self.setCentralWidget(self.plotView) self.plotCurve = QLineSeries() self.plotCurve.setUseOpenGL(True) self.plotCurve.pen().setColor(Qt.red) self.plotChart.addSeries(self.plotCurve) self.plotChart.createDefaultAxes() self.plotChart.axisX().setLabelFormat('%d') self.RecvData = array.array('f') # 存储接收到的传感器数据 self.RecvIndx = 0 self.tmrData = QTimer() # 模拟传感器传送过来数据 self.tmrData.setInterval(3) self.tmrData.timeout.connect(self.on_tmrData_timeout) self.tmrData.start() self.tmrPlot = QTimer() self.tmrPlot.setInterval(100) self.tmrPlot.timeout.connect(self.on_tmrPlot_timeout) self.tmrPlot.start()
def getSeries(self): # 创建Series series0 = QLineSeries(self) series1 = QLineSeries(self) # 添加数据 series0 << QPointF(1, 5) << QPointF(3, 7) << QPointF(7, 6) << QPointF(9, 7) \ << QPointF(12, 6) << QPointF(16, 7) << QPointF(18, 5) series1 << QPointF(1, 3) << QPointF(3, 4) << QPointF(7, 3) << QPointF(8, 2) \ << QPointF(12, 3) << QPointF(16, 4) << QPointF(18, 3) # 创建区域图 series = QAreaSeries(series0, series1) series.setName('Batman') # 画笔 pen = QPen(0x059605) pen.setWidth(3) series.setPen(pen) # 设置画刷 gradient = QLinearGradient(QPointF(0, 0), QPointF(0, 1)) gradient.setColorAt(0.0, QColor(0x3cc63c)) gradient.setColorAt(1.0, QColor(0x26f626)) gradient.setCoordinateMode(QGradient.ObjectBoundingMode) series.setBrush(gradient) return series
def drawD2(self): if self.vtkViewer.reader == None: return num = self.inputD2.text() try: num = list(map(int, num.split(' '))) except Exception: return if len(num) != 2 or num[0] <= 1 or num[1] <= 1: return self.clear() histogram, scale = self.vtkViewer.d2Sample(num[0], num[1]) d2Chart = QChart() d2Chart.legend().hide() polyline = QPolygonF(num[0]) pointer = polyline.data() dtype, tinfo = np.float, np.finfo pointer.setsize(2*polyline.size()*tinfo(dtype).dtype.itemsize) memory = np.frombuffer(pointer, dtype) memory[:(num[0]-1)*2+1:2] = scale memory[1:(num[0]-1)*2+2:2] = histogram curve = QLineSeries() curve.append(polyline) d2Chart.addSeries(curve) d2Chart.createDefaultAxes() ChartView = QChartView(d2Chart) self.d2ChartLayout.addWidget(ChartView)
def __init__(self): super(SpeedFigure, self).__init__() self.layout = QVBoxLayout() self.chart_view = [] self.line_series = [[], []] self.y_axis = [] self.default_max_y_value = 3000 self.colors = [Qt.red, Qt.blue, Qt.green, Qt.magenta] for i in range(2): cv = QChartView() for j in range(4): ls = QLineSeries() p = ls.pen() p.setColor(self.colors[j]) ls.setPen(p) self.line_series[i].append(ls) cv.chart().addSeries(ls) cv.chart().legend().hide() cv.chart().layout().setContentsMargins(0, 0, 0, 0) cv.setRenderHint(QPainter.Antialiasing) self.chart_view.append(cv) self.layout.addWidget(cv) self.last_timestamp = None self.setLayout(self.layout)
def __init__(self): QChartView.__init__(self) #self.resize(300, 300) self.setRenderHint(QPainter.Antialiasing) # 抗锯齿 self.chart = QChart() self.seriesAcc = QLineSeries() self.seriesAcc.setName(CONF.leftUpNames[0]) self.chart.addSeries(self.seriesAcc) #声明并初始化X轴,Y轴 self.dtaxisX = QValueAxis() self.vlaxisY = QValueAxis() #设置坐标轴显示范围 self.dtaxisX.setMin(0) #self.dtaxisX.setMax(100) self.vlaxisY.setMin(0) #self.vlaxisY.setMax(100) self.dtaxisX.setTickCount(3) self.vlaxisY.setTickCount(3) #设置坐标轴名称 self.dtaxisX.setTitleText(CONF.leftUpNames[1]) self.vlaxisY.setTitleText(CONF.leftUpNames[2]) #设置网格不显示 self.vlaxisY.setGridLineVisible(False) #把坐标轴添加到chart中 self.chart.addAxis(self.dtaxisX, Qt.AlignBottom) self.chart.addAxis(self.vlaxisY, Qt.AlignLeft) self.seriesAcc.attachAxis(self.dtaxisX) self.seriesAcc.attachAxis(self.vlaxisY) self.initUI()
def setSubplots(self, count: int): for _ in range(count): series = QLineSeries() self.chart.addSeries(series) series.attachAxis(self.xAxis) series.attachAxis(self.yAxis) self.seriesList.append(series)
def createAreaChart(self): chart = QChart() chart.setTitle("Area chart") # The lower series is initialized to zero values. lowerSeries = None y_points = [] for i, data_list in enumerate(self.m_dataTable): upperSeries = QLineSeries(chart) for j, (value, _) in enumerate(data_list): y = value.y() if lowerSeries is None: upperSeries.append(QPointF(j, y)) y_points.append(y) else: new_y = y_points[i] + y upperSeries.append(QPointF(j, new_y)) y_points[j] += new_y area = QAreaSeries(upperSeries, lowerSeries) area.setName("Series " + str(i)) chart.addSeries(area) lowerSeries = upperSeries chart.createDefaultAxes() return chart
def __init__(self, parent=None): super().__init__(parent=parent) self.setRenderHint(QPainter.Antialiasing) self._chart = self.chart() self._axis_x = QValueAxis() self._axis_y = QValueAxis() self.series = QLineSeries(self) self._chart.addSeries(self.series) self._chart.addAxis(self._axis_x, Qt.AlignBottom) self._chart.addAxis(self._axis_y, Qt.AlignLeft) self.series.attachAxis(self._axis_x) self.series.attachAxis(self._axis_y) self._axis_x.setTickCount(5) self._axis_x.setRange(0, 10) self._axis_y.setTickCount(5) self._axis_y.setRange(0, 10) self._chart.legend().hide()
def add_series(self, series: QLineSeries): self.chart().addSeries(series) series.setPointLabelsClipping(False) series.hovered.connect(lambda p, s: series.setPointLabelsVisible(s)) self.chart().setAxisX(self.chart().axisX(), series) self.chart().setAxisY(self.chart().axisY(), series)
def __init__(self, parent=None): super(BandwidthGraphView, self).__init__(parent=parent) self.setObjectName('BandwidthGraph') self.chart.setTitle(iBandwidthUsage()) self.axisY.setTitleText(iRateKbPerSecond()) self.bwStatsFetched.connectTo(self.onBwStats) penIn = QPen(QColor('red')) penIn.setWidth(2) penOut = QPen(QColor('blue')) penOut.setWidth(2) self.seriesKbIn = QLineSeries() self.seriesKbIn.setName(iRateInput()) self.seriesKbIn.setPen(penIn) self.chart.addSeries(self.seriesKbIn) self.seriesKbIn.attachAxis(self.axisX) self.seriesKbIn.attachAxis(self.axisY) self.seriesKbOut = QLineSeries() self.seriesKbOut.setName(iRateOutput()) self.seriesKbOut.setPen(penOut) self.chart.addSeries(self.seriesKbOut) self.seriesKbOut.attachAxis(self.axisX) self.seriesKbOut.attachAxis(self.axisY) self.setChart(self.chart)
def __init__(self, number: int, parent=None): super(QWidget, self).__init__(parent) self.layout = QVBoxLayout(self) self.chart = QChart() self.chartView = QChartView(self.chart) self.chartView.setRenderHint(QPainter.Antialiasing) # 抗锯齿 self.layout.addWidget(self.chartView) self.channelNumber = number for index in range(self.channelNumber): tmp = QLineSeries() tmp.setName("channel "+str(index)) self.chart.addSeries(tmp) self.chart.createDefaultAxes() self.chart.axisX().setRange(0, 25) self.chart.axisX().setTitleText("AAA") self.chart.axisY().setRange(0, 25) self.chart.axisY().setTitleText("BBB") # 标题 self.chart.setTitle("XXX XXX XXX") # 指示颜色所代表的内容 # self.chart.legend().hide() # 动画效果 self.chart.setAnimationOptions(QChart.AllAnimations)
def __init__(self, window): super().__init__() self.windowWidget = window self.repaintChartEvent.connect(self.repaint_chart) self.lambda_value = 0.2 self.beta_value = 3 self.mu_value = 0.8 grid = QGridLayout() self.setLayout(grid) self.table = MyQtTable.MyQtTable(1, 1) self.table.setFixedWidth(150) grid.addWidget(self.table, 1, 0, -1, 1) series = QLineSeries() series.setName("Values time series") self.chart_view = MyQtChart.MyChartView(series, "Chart", "Time", "Value", minimumSize=QSize(800, 650)) grid.addWidget(self.chart_view, 2, 1, 1, -1) self.table.newTableDataEvent.connect(self.update_chart) lambdaValueLabel = QLabel("λ=%.2f" % self.lambda_value) grid.addWidget(lambdaValueLabel, 1, 1) self.lambdaValueLabel = lambdaValueLabel qslider = QSlider(Qt.Horizontal) qslider.setMinimum(0) qslider.setMaximum(100) qslider.setValue(self.lambda_value * 100) qslider.valueChanged.connect(self.on_lambda_changed) qslider.sliderMoved.connect( lambda v: lambdaValueLabel.setText("λ=%.2f" % (v / 100))) qslider.setTracking(False) grid.addWidget(qslider, 1, 2) grid.addWidget(QLabel("μ="), 1, 3) muEdit = QDoubleSpinBox() muEdit.setValue(self.mu_value) muEdit.setSingleStep(0.1) grid.addWidget(muEdit, 1, 4) muEdit.valueChanged.connect(self.on_mu_changed) grid.addWidget(QLabel("β="), 1, 5) betaEdit = QDoubleSpinBox() betaEdit.setValue(self.beta_value) betaEdit.setSingleStep(0.1) grid.addWidget(betaEdit, 1, 6) betaEdit.valueChanged.connect(self.on_beta_changed)
def initSeries(self, chartTypes="Bar"): self.chartTypes = chartTypes axisX = QDateTimeAxis() axisX.setFormat("yyyy-MM-dd") self.zoomSeries = QLineSeries(self.chart()) self.chart().addSeries(self.zoomSeries) self.chart().setAxisY(QValueAxis(), self.zoomSeries) self.chart().setAxisX(axisX, self.zoomSeries) self.initView()
def __init__(self): super(GraphicsScene, self).__init__() self.line_series = QLineSeries() self.chart = QChart() self.chart_view = QChartView(self.chart) self.chart_view.setMinimumSize(640, 480) self.model = ItemModel() self.model.signal_update_models.connect(self.update_axes) self.table_view = TableView() self.table_view.setModel(self.model) self.table_view.horizontalHeader().setSectionResizeMode( QHeaderView.Stretch) self.table_view.verticalHeader().setSectionResizeMode( QHeaderView.Stretch) self.chart.setAnimationOptions(QChart.AllAnimations) self.chart.setAnimationDuration(2000) self.line_series.setName("Line 1") self.mapper = QVXYModelMapper(self) self.mapper.setXColumn(0) self.mapper.setYColumn(1) self.mapper.setSeries(self.line_series) self.mapper.setModel(self.model) self.chart.addSeries(self.line_series) seriesColorHex = self.line_series.pen().color().name() self.model.add_mapping(seriesColorHex, QRect(0, 0, 2, self.model.rowCount())) self.line_series2 = QLineSeries() self.line_series2.setName("Line 2") self.mapper2 = QVXYModelMapper(self) self.mapper2.setXColumn(2) self.mapper2.setYColumn(3) self.mapper2.setSeries(self.line_series2) self.mapper2.setModel(self.model) self.chart.addSeries(self.line_series2) seriesColorHex = self.line_series2.pen().color().name() self.model.add_mapping(seriesColorHex, QRect(2, 0, 2, self.model.rowCount())) self.chart.createDefaultAxes() self.chart_view.setRenderHint(QPainter.Antialiasing) self.chart.resize(500, 400) self.chart.setFlag(QGraphicsItem.ItemIsMovable) self.chart.setFlag(QGraphicsItem.ItemIsSelectable) self.addItem(self.chart)
def __init__(self, parent=None): super().__init__(QGraphicsScene(), parent) self.m_tooltip = None self.m_callouts = [] self.setDragMode(QGraphicsView.NoDrag) self.setVerticalScrollBarPolicy(Qt.ScrollBarAlwaysOff) self.setHorizontalScrollBarPolicy(Qt.ScrollBarAlwaysOff) # chart self.m_chart = QChart() self.m_chart.setMinimumSize(640, 480) self.m_chart.setTitle( "Hover the line to show callout. Click the line to make it stay" ) self.m_chart.legend().hide() series = QLineSeries() series.append(1, 3) series.append(4, 5) series.append(5, 4.5) series.append(7, 1) series.append(11, 2) self.m_chart.addSeries(series) series2 = QSplineSeries() series2.append(1.6, 1.4) series2.append(2.4, 3.5) series2.append(3.7, 2.5) series2.append(7, 4) series2.append(10, 2) self.m_chart.addSeries(series2) self.m_chart.createDefaultAxes() self.m_chart.setAcceptHoverEvents(True) self.setRenderHint(QPainter.Antialiasing) self.scene().addItem(self.m_chart) self.m_coordX = QGraphicsSimpleTextItem(self.m_chart) self.m_coordX.setPos( self.m_chart.size().width() / 2 - 50, self.m_chart.size().height() ) self.m_coordX.setText("X: ") self.m_coordY = QGraphicsSimpleTextItem(self.m_chart) self.m_coordY.setPos( self.m_chart.size().width() / 2 + 50, self.m_chart.size().height() ) self.m_coordY.setText("Y: ") series.clicked.connect(self.keepCallout) series.hovered.connect(self.tooltip) series2.clicked.connect(self.keepCallout) series2.hovered.connect(self.tooltip) self.setMouseTracking(True)
def updatechart(self): self.series = QLineSeries(self) self.datos = bd.getData() self.c = 0 for x in self.datos: self.series.append(self.c, x) self.c += 1 self.chart.removeAllSeries() self.chart.addSeries(self.series) self.chart.createDefaultAxes()
class Window(QMainWindow): def __init__(self): super().__init__() self.setWindowTitle("PyQtChart Demo") self.setGeometry(500, 275, 650, 500) self.show() self.createLineChart() def createLineChart(self): self.font = QFont("Arial") self.font.setPixelSize(16) self.font.setBold(True) self.pen = QPen(QColor(0, 153, 0)) self.pen.setWidth(3) self.series = QLineSeries(self) self.series.setPen(self.pen) self.x = np.arange(0, 2 * np.pi, 0.01) for i in self.x: self.series.append(i, np.sin(i)) self.chart = QChart() self.chart.addSeries(self.series) self.chart.setAnimationOptions(QChart.SeriesAnimations) self.chart.setTitleFont(self.font) self.chart.setTitleBrush(QBrush(Qt.blue)) self.chart.setTitle("Line Chart Demo") self.chart.legend().setVisible(True) self.chart.legend().setAlignment(Qt.AlignBottom) self.chartview = QChartView(self.chart) self.chartview.setRenderHint(QPainter.Antialiasing) self.axisX = QValueAxis() self.axisX.setRange(0, 2 * np.pi) self.axisX.setTickCount(6) self.axisX.setLabelFormat("%.1f") self.axisX.setTitleText("x") self.axisY = QValueAxis() self.axisY.setRange(0, 100) self.axisY.setLabelFormat("%d") self.axisY.setTitleText("sin(x)") self.chart.addAxis(self.axisX, Qt.AlignBottom) self.chart.addAxis(self.axisY, Qt.AlignLeft) self.setCentralWidget(self.chartview)
def __init__(self, parent=None): super(Chart, self).__init__(parent) self.parent = parent # we will draw lines self.series = QLineSeries(parent) # color and pen-width self.series.setPen(QPen(self.PENCOLOR, self.PENWIDTH)) self.addSeries(self.series) self.legend().hide() self.__construct_axises()
def __drawComparisonChart(self): self.__comparison_chart.removeAllSeries() series1 = QLineSeries(self) series2 = QLineSeries(self) series1.setName("Оптимальный") series2.setName("Другой") [(series1.append(i[0], i[1]), series2.append(i[0], i[2])) for i in self.__values] self.__comparison_chart.addSeries(series1) self.__comparison_chart.addSeries(series2) self.__comparison_chart.createDefaultAxes()
class CharPlotWidget(QChartView): def __init__(self, parent=None): super().__init__(parent=parent) self.setRenderHint(QPainter.Antialiasing) self._chart = self.chart() self._axis_x = QValueAxis() self._axis_y = QValueAxis() self.series = QLineSeries(self) self._chart.addSeries(self.series) self._chart.addAxis(self._axis_x, Qt.AlignBottom) self._chart.addAxis(self._axis_y, Qt.AlignLeft) self.series.attachAxis(self._axis_x) self.series.attachAxis(self._axis_y) self._axis_x.setTickCount(5) self._axis_x.setRange(0, 10) self._axis_y.setTickCount(5) self._axis_y.setRange(0, 10) self._chart.legend().hide() def plot(self, xs, ys): self.series.replace([QPointF(x, y) for x, y in zip(xs, ys)]) @property def axes_titles(self): return self._axis_x.titleText(), self._axis_y.titleText() @axes_titles.setter def axes_titles(self, value): x, y = value self._axis_x.setTitleText(x) self._axis_y.setTitleText(y) @property def title(self): return self._chart.title() @title.setter def title(self, value): self._chart.setTitle(value) @property def legend(self): return self._chart.legend()
def test_generations(): range_a = float(str(form.input_a_test.text())) range_b = float(str(form.input_b_test.text())) precision = int(str(form.input_d_test.text())) generations = int(str(form.input_generations_test.text())) app.setOverrideCursor(QtCore.Qt.WaitCursor) start = time() result = test_generation(range_a, range_b, precision, generations) app.restoreOverrideCursor() chart = QChart() series = QLineSeries() form.test_table.setRowCount(0) form.test_table.insertRow(0) item = QtWidgets.QTableWidgetItem("iteracje") item.setTextAlignment(QtCore.Qt.AlignCenter) form.test_table.setItem(0, 0, item) item = QtWidgets.QTableWidgetItem("wystąpienia") item.setTextAlignment(QtCore.Qt.AlignCenter) form.test_table.setItem(0, 1, item) item = QtWidgets.QTableWidgetItem("%") item.setTextAlignment(QtCore.Qt.AlignCenter) form.test_table.setItem(0, 2, item) for i in range(0, generations): percent = sum(result[:i+1])/100000*100 series.append(i+1, percent) form.test_table.insertRow(i+1) form.test_table.setItem(i+1, 0, QtWidgets.QTableWidgetItem(str(i+1))) form.test_table.setItem(i+1, 1, QtWidgets.QTableWidgetItem(str(result[i]))) form.test_table.setItem(i+1, 2, QtWidgets.QTableWidgetItem(str(round(percent, 2)))) chart.addSeries(series) chart.setBackgroundBrush(QtGui.QColor(41, 43, 47)) chart.createDefaultAxes() chart.legend().hide() chart.setContentsMargins(-10, -10, -10, -10) chart.layout().setContentsMargins(0, 0, 0, 0) chart.axisX().setTickCount(10) chart.axisY().setRange(0, 100) chart.axisY().setTickCount(11) chart.axisX().setLabelsColor(QtGui.QColor("white")) chart.axisY().setLabelsColor(QtGui.QColor("white")) form.widget_test.setChart(chart)
def __init__(self, parent=None): super(TestChart, self).__init__(parent) self.xRange = 800 self.sampleRate = 5 self.counter = 0 self.seriesList = [] self.legend().show() self.axisX = QValueAxis() self.axisX.setRange(0, self.xRange) self.addAxis(self.axisX, Qt.AlignBottom) # self.setAxisX(self.axisX, series) self.axisY = QValueAxis() self.axisY.setRange(-1, 1) self.addAxis(self.axisY, Qt.AlignLeft) # self.setAxisY(self.axisY, series) for i in range(24): series = QLineSeries() series.setName("Series" + str(i)) series.setUseOpenGL(True) self.addSeries(series) self.seriesList.append(series) series.attachAxis(self.axisX) series.attachAxis(self.axisY)
def create_linechart(self): series = QLineSeries(self) series.append(0, 6) series.append(2, 4) series.append(3, 8) series.append(7, 4) series.append(10, 5) series << QPointF(11, 1) << QPointF(13, 3) << QPointF( 17, 6) << QPointF(18, 3) << QPointF(20, 2) chart = QChart() chart.addSeries(series) chart.createDefaultAxes() chart.setAnimationOptions(QChart.SeriesAnimations) chart.setTitle("Line Chart Example") chart.legend().setVisible(True) chart.legend().setAlignment(Qt.AlignBottom) chartview = QChartView(chart) chartview.setRenderHint(QPainter.Antialiasing) self.setCentralWidget(chartview)
def _get_connector_chart(self): # type: (Display) -> QChartView # Create pen pen = QLineSeries().pen() pen.setColor(Qt.blue) pen.setWidthF(1) # Series self._connector_series = QLineSeries() self._connector_series.setPen(pen) self._connector_series.useOpenGL() # Chart self._connector_chart = QChart() self._connector_chart.legend().hide() self._connector_chart.addSeries(self._connector_series) self._connector_chart.createDefaultAxes() self._connector_chart.axisX().setMax(100) self._connector_chart.axisX().setMin(0) self._connector_chart.axisY().setMax(500) self._connector_chart.axisY().setMin(-500) # Chart View view = QChartView(self._connector_chart) view.setRenderHint(QPainter.Antialiasing) view.setStyleSheet('margin: 0px; height: 250%; width: 400%;') return view
def _get_processor_chart(self): # type: (Display) -> QChartView # Create pen pen = QLineSeries().pen() pen.setColor(Qt.red) pen.setWidthF(1) # Series self._processor_series = QLineSeries() self._processor_series.setPen(pen) self._processor_series.useOpenGL() # Chart self._processor_chart = QChart() self._processor_chart.legend().hide() self._processor_chart.addSeries(self._processor_series) self._processor_chart.createDefaultAxes() self._processor_chart.axisX().setMax(100) self._processor_chart.axisX().setMin(0) self._processor_chart.axisY().setMax(5000) self._processor_chart.axisY().setMin(0) self._processor_x_axis = QValueAxis() self._processor_x_axis.setLabelFormat('%i') self._processor_chart.setAxisX(self._processor_x_axis, self._processor_series) self._processor_y_axis = QLogValueAxis() self._processor_y_axis.setLabelFormat('%g') self._processor_y_axis.setBase(8) # Chart View view = QChartView(self._processor_chart) view.setRenderHint(QPainter.Antialiasing) view.setStyleSheet('margin: 0px; height: 250%; width: 400%;') return view
def __init__(self): super(PriceFigure, self).__init__() self.layout = QHBoxLayout() self.chart_view = QChartView() self.price_series = QLineSeries() self.chart_view.chart().addSeries(self.price_series) self.chart_view.chart().legend().hide() self.chart_view.setRenderHint(QPainter.Antialiasing) self.layout.addWidget(self.chart_view) self.setLayout(self.layout) self.prices = [] self.volumes = [] self.graph_time = None self.last_timestamp = None
def createLineChart(self): chart = QChart() chart.setTitle("Line chart") for i, data_list in enumerate(self.m_dataTable): series = QLineSeries(chart) for value, _ in data_list: series.append(value) series.setName("Series " + str(i)) chart.addSeries(series) chart.createDefaultAxes() return chart
def addSeries( self, _x2idx: typing.Dict, _idx2x: list, _chart: QChart, _axis_x: QValueAxis, _axis_y: QValueAxis ): series = QLineSeries() series.setName(self.name) for x, y in zip(self.x_list, self.y_list): series.append(_x2idx[x], y) if self.color is not None: series.setColor(self.color) _chart.addSeries(series) _chart.setAxisX(_axis_x, series) _chart.setAxisY(_axis_y, series) if self.show_value: self.createShow()