def setupUi(self, Form): Form.setObjectName("Form") Form.resize(1550, 750) Form.setMinimumSize(QtCore.QSize(1550, 750)) self.gridLayout = QtWidgets.QGridLayout(Form) self.gridLayout.setContentsMargins(0, 0, 0, 0) self.gridLayout.setObjectName("gridLayout") self.chart1 = QtChart.QChart() self.chart1.setBackgroundVisible(False) self.chartView = QtChart.QChartView(self.chart1) self.gridLayout.addWidget(self.chartView, 0, 0, 1, 1) self.chart2 = QtChart.QChart() self.chart2.setBackgroundVisible(False) self.chartView2 = QtChart.QChartView(self.chart2) self.gridLayout.addWidget(self.chartView2, 0, 1, 1, 1) self.chart3 = QtChart.QChart() self.chart3.setBackgroundVisible(False) self.chartView3 = QtChart.QChartView(self.chart3) self.gridLayout.addWidget(self.chartView3, 1, 0, 1, 1) self.chart4 = QtChart.QChart() self.chart4.setBackgroundVisible(False) self.chartView4 = QtChart.QChartView(self.chart4) self.gridLayout.addWidget(self.chartView4, 1, 1, 1, 1) self.retranslateUi(Form) QtCore.QMetaObject.connectSlotsByName(Form)
def getChart(self, lessonname, data): series = QtChart.QStackedBarSeries() for key, name, color, brush in zip( [self.PASS, self.FAIL], ["pass", "fail"], ["green", "red"], [QtCore.Qt.Dense1Pattern, QtCore.Qt.Dense2Pattern]): barset = QtChart.QBarSet(name) barset.append([d[key] for d in data]) barset.setBrush(QtGui.QBrush(QtGui.QColor(color), brush)) barset.setLabel(name) series.append(barset) series.setLabelsFormat("@value%") series.setLabelsVisible(True) chart = QtChart.QChart() chart.addSeries(series) chart.setTitle(lessonname) chart.setAnimationOptions(QtChart.QChart.SeriesAnimations) categories = [d["name"] for d in data] axis = QtChart.QBarCategoryAxis() axis.append(categories) chart.setAxisX(axis, series) axis = QtChart.QValueAxis() axis.setMax(100) axis.setMin(0) chart.setAxisY(axis) chart.legend().setVisible(True) return chart
def __init__(self): self.check_box = QtWidgets.QCheckBox() self.check_box.setCheckState(QtCore.Qt.Checked) self.check_box.stateChanged.connect(self._check_changed) self.scaling_spin_box = QtWidgets.QDoubleSpinBox() # TODO: set a useful width without limiting the range # self.scaling_spin_box.setRange(-math.inf, math.inf) self.scaling_spin_box.setRange(-100000, 100000) self.scaling_spin_box.setDecimals(3) self.scaling_spin_box.setValue(1) self.scaling_spin_box.valueChanged.connect(self.scaling_changed) self.chart = QtChart.QChart() self.series = QtChart.QLineSeries() self.chart.addSeries(self.series) self.chart.createDefaultAxes() # self.chart.plotAreaChanged.connect(self._plot_area_changed) self.original_area = None self.view = QtChart.QChartView(self.chart) self.view_filters = make_chart_view_zoomable(self.view) reference_height = self.check_box.minimumSizeHint().height() reference_height += self.scaling_spin_box.minimumSizeHint().height() self.view.setMinimumHeight(6 * reference_height) view_size_policy = self.view.sizePolicy() view_size_policy.setVerticalPolicy(view_size_policy.Minimum) self._name = None self.name = "<unnamed>" self.data = ()
def _init_grafico_num_pacotes(self): """ Inicializa o gráfico que representa o fluxo de pacotes. """ chart = QtChart.QChart() chart.legend().hide() self.graficoNumPacotes.setChart(chart)
def __init__(self): super(YAxis, self).__init__() # 创建图表 chart = QtChart.QChart() chart.setTitle('自定义添加右侧Y轴') data_table = random_data_table() # 获取随机生成的数据作图 for i, data_list in enumerate(data_table): series = QtChart.QLineSeries() for value, name in data_list: series.append(*value) series.setName("Series " + str(i)) chart.addSeries(series) chart.createDefaultAxes() # 自定义y轴 series = chart.series() y_category = ['周%d' % i for i in range(1, 8)] axisy = QtChart.QCategoryAxis( chart, labelsPosition=QtChart.QCategoryAxis.AxisLabelsPositionOnValue) axisy.setGridLineVisible(False) axisy.setTickCount(len(y_category)) min_y = chart.axisY().min() max_y = chart.axisY().max() tick_count = axisy.tickCount() if tick_count < 2: axisy.append(y_category[0]) else: step_y = (max_y - min_y) / (tick_count - 1) for i in range(tick_count): axisy.append(y_category[i], min_y + step_y * i) chart.addAxis(axisy, Qt.AlignRight) # 在右侧添加轴 series[0].attachAxis(axisy) self.setChart(chart)
def calculate_graph(self): """ Calculate the Bar graph for the selected SKU's from database. """ if self.show_graph: bar_set_1, bar_set_2 = self.get_graph_point() series = QtChart.QStackedBarSeries() series.append(bar_set_1) series.append(bar_set_2) chart = QtChart.QChart() chart.setTitle("Good and Bad") chart.addSeries(series) chart.setAnimationOptions(QtChart.QChart.SeriesAnimations) x_axis = QtChart.QBarCategoryAxis() x_axis.append(constants.TIME_VALUES[:-1]) chart.addAxis(x_axis, QtCore.Qt.AlignBottom) series.attachAxis(x_axis) y_axis = QtChart.QValueAxis() chart.addAxis(y_axis, QtCore.Qt.AlignLeft) series.attachAxis(y_axis) chart.legend().setVisible(True) chart.legend().setAlignment(QtCore.Qt.AlignBottom) chart_view = QtChart.QChartView(chart) chart_view.setRenderHint(QtGui.QPainter.Antialiasing) return chart_view
def __init__(self): super(BarStackChart, self).__init__() self.chart = QtChart.QChart() self.chart.setAnimationOptions(QtChart.QChart.SeriesAnimations) # 动态渲染 self.x_category = ['周一', '周二', '周三', '周四', '周五', '周六', '周日'] series_names = ['视频广告', '直接访问', '搜索引擎'] series = QtChart.QBarSeries() for name in series_names: bar = QtChart.QBarSet(name) for _ in range(len(self.x_category)): bar.append(random.randint(1, 101)) series.append(bar) # 鼠标悬停信号 bar.hovered.connect(self.bar_hovered) self.chart.addSeries(series) self.chart.createDefaultAxes() # 设置x轴 axis_x = QtChart.QBarCategoryAxis() axis_x.append(self.x_category) self.chart.setAxisX(axis_x, series) # 设置图例 legend = self.chart.legend() legend.setCursor(Qt.PointingHandCursor) # 鼠标悬停图例为手形 for marker in legend.markers(): # 点击事件 marker.clicked.connect(self.legend_clicked) # 悬停事件 marker.hovered.connect(self.legend_hovered) self.setChart(self.chart)
def __init__(self): super().__init__() # create chart chart = qtch.QChart(title=self.chart_title) self.setChart(chart) # series self.series = qtch.QSplineSeries(name="Percentage") chart.addSeries(self.series) # Create data container self.data = deque([0] * self.num_data_points, maxlen=self.num_data_points) self.series.append([qtc.QPoint(x, y) for x, y in enumerate(self.data)]) # CPU Axes x_axis = qtch.QValueAxis() x_axis.setRange(0, self.num_data_points) x_axis.setLabelsVisible(False) y_axis = qtch.QValueAxis() y_axis.setRange(0, 100) chart.setAxisX(x_axis, self.series) chart.setAxisY(y_axis, self.series) # Appearance tweaks self.setRenderHint(qtg.QPainter.Antialiasing) # configure timer self.timer = qtc.QTimer(interval=200, timeout=self.refresh_stats) self.timer.start()
def __init__(self, config): super(BarChart, self).__init__() chartDefault = dict(config['chartDefault'].items()) if int(chartDefault['theme']) == 0: self.theme = QtChart.QChart.ChartThemeLight if int(chartDefault['theme']) == 1: self.theme = QtChart.QChart.ChartThemeBlueCerulean if int(chartDefault['theme']) == 2: self.theme = QtChart.QChart.ChartThemeDark if int(chartDefault['theme']) == 3: self.theme = QtChart.QChart.ChartThemeBrownSand if int(chartDefault['theme']) == 4: self.theme = QtChart.QChart.ChartThemeBlueNcs if int(chartDefault['theme']) == 5: self.theme = QtChart.QChart.ChartThemeHighContrast if int(chartDefault['theme']) == 6: self.theme = QtChart.QChart.ChartThemeBlueIcy if int(chartDefault['theme']) == 7: self.theme = QtChart.QChart.ChartThemeQt self.setRenderHint(QtGui.QPainter.Antialiasing) self.setContentsMargins(0, 0, 0, 0) self.barChart = QtChart.QChart() self.barChart.setBackgroundRoundness(0) self.barChart.setMargins(QtCore.QMargins(0, 0, 0, 0)) self.barChart.setTheme(self.theme) self.barChart.legend().setVisible(False) self.ncomp = 0 self.setChart(self.barChart)
def create_chart(percent): """Создает диаграмму""" # ядро диаграммы series = QtChart.QPieSeries() series.append("Верные", percent) series.append('Неверные', 100 - percent) series.setPieSize(30) # анимация диаграммы chart = QtChart.QChart() chart.addSeries(series) chart.setAnimationOptions(QtChart.QChart.SeriesAnimations) chart.setAnimationDuration(3000) chart.setTitle('Соотношение ответов') # шрифт диаграммы font = QtGui.QFont() font.setFamily('PT Sans') font.setPointSize(18) chart.setFont(font) chart.setTitleFont(font) # виджет диаграммы chartview = QtChart.QChartView(chart) chartview.setRenderHint(QtGui.QPainter.Antialiasing) dialog.fails_table.setMinimumWidth(434) dialog.diagram_frame.setSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Preferred) dialog.verticalLayout_7.addWidget(chartview)
def __init__(self): super(XAxis, self).__init__() # 创建图表 chart = QtChart.QChart() chart.setTitle('自定义X轴') data_table = random_data_table() # 获取随机生成的数据作图 for i, data_list in enumerate(data_table): series = QtChart.QLineSeries() for value, name in data_list: series.append(*value) series.setName("Series " + str(i)) chart.addSeries(series) chart.createDefaultAxes() # 自定义x轴 series = chart.series() axis = QtChart.QCategoryAxis( chart, labelsPosition=QtChart.QCategoryAxis.AxisLabelsPositionOnValue) min_x = chart.axisX().min() max_x = chart.axisX().max() tick_count = chart.axisX().tickCount() if tick_count < 2: axis.append("LABEL0", min_x) else: step_x = (max_x - min_x) / (tick_count - 1) for i in range(tick_count): axis.append("LABEL%s" % i, min_x + i * step_x) chart.setAxisX(axis, series[0]) # 图表加入容器 self.setChart(chart)
def addChart(self, radius, profile, type="line"): series = QtChart.QLineSeries() self.currentRadius = [] self.currentProfile = [] for x, y in zip(radius, profile): series.append(x, y) self.currentRadius.append(x) self.currentProfile.append(y) self.profileChart = QtChart.QChart() self.profileChart.setTheme(self.theme) self.profileChart.setBackgroundRoundness(0) self.profileChart.setMargins(QtCore.QMargins(0, 0, 0, 0)) self.profileChart.removeAllSeries() self.profileChart.addSeries(series) axisX = QtChart.QValueAxis() axisX.setTickCount(10) if type == "line" or type == "rectangle": axisX.setTitleText("K (\u212B\u207B\u00B9)") elif type == "arc": axisX.setTitleText("\u03A7 (\u00BA)") axisY = QtChart.QValueAxis() axisY.setTickCount(10) axisY.setTitleText("Intensity (arb. units)") self.profileChart.addAxis(axisX, QtCore.Qt.AlignBottom) self.profileChart.addAxis(axisY, QtCore.Qt.AlignLeft) series.attachAxis(axisX) series.attachAxis(axisY) self.profileChart.legend().setVisible(False) self.setChart(self.profileChart) self.setContextMenuPolicy(QtCore.Qt.DefaultContextMenu)
def __init__(self, data): self.data = data self.app = QApplication(sys.argv) self.series = QtChart.QCandlestickSeries() self.series.setDecreasingColor(Qt.red) self.series.setIncreasingColor(Qt.green) self.ma5 = qc.QLineSeries() self.tm = [] for num, o, h, l, c, m in self.data: self.series.append(QtChart.QCandlestickSet(o, h, l, c)) self.ma5.append(QPointF(num, m)) self.tm.append(str(num)) self.chart = QtChart.QChart() self.chart.addSeries(self.series) # candle self.chart.addSeries(self.ma5) # ma5 line self.chart.createDefaultAxes() self.chart.legend().hide() self.chart.axisX(self.series).setCategories(self.tm) self.chart.axisX(self.ma5).setVisible(False) self.chartview = QtChart.QChartView(self.chart) self.ui = QMainWindow() self.ui.setGeometry(50, 50, 500, 300) self.ui.setCentralWidget(self.chartview) self.ui.show() sys.exit(self.app.exec_())
def __init__(self): super().__init__() # Create chart chart = qtch.QChart(title=self.chart_title) self.setChart(chart) # Create series series = qtch.QBarSeries() chart.addSeries(series) # add bar sets bar_set = qtch.QBarSet('Percent Used') series.append(bar_set) # Get the data partitions = [] for part in psutil.disk_partitions(): if 'rw' in part.opts.split(','): partitions.append(part.device) usage = psutil.disk_usage(part.mountpoint).percent bar_set.append(usage) # Create Axis x_axis = qtch.QBarCategoryAxis() x_axis.append(partitions) chart.setAxisX(x_axis) series.attachAxis(x_axis) y_axis = qtch.QValueAxis() y_axis.setRange(0, 100) chart.setAxisY(y_axis) series.attachAxis(y_axis) # Add labels series.setLabelsVisible(True)
def __init__(self,data): QtWidgets.QWidget.__init__(self) self.model = CustomTableModel(data) self.table_view = QtWidgets.QTableView() self.table_view.setModel(self.model) self.horizontal_header = self.table_view.horizontalHeader() self.vertical_header = self.table_view.verticalHeader() self.horizontal_header.setSectionResizeMode(QtWidgets.QHeaderView.ResizeToContents) self.vertical_header.setSectionResizeMode(QtWidgets.QHeaderView.ResizeToContents) self.horizontal_header.setStretchLastSection(True) self.chart = QtChart.QChart() self.chart.setAnimationOptions(QtChart.QChart.AllAnimations) self.add_series("Magnitude (Column 1)",[0,1]) self.chart_view = QtChart.QChartView(self.chart) self.chart_view.setRenderHint(QtGui.QPainter.Antialiasing) self.main_layout = QtWidgets.QHBoxLayout() size = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) size.setHorizontalStretch(1) self.table_view.setSizePolicy(size) self.main_layout.addWidget(self.table_view) size.setHorizontalStretch(4) self.chart_view.setSizePolicy(size) self.main_layout.addWidget(self.chart_view) self.setLayout(self.main_layout)
def __init__(self, chartViewParent: QtChart.QChartView, *preset): super().__init__() self.__chart = QtChart.QChart() self.__chart.legend().hide() self.__chart.setMinimumHeight(180) self.__chart.setMargins(QtCore.QMargins(0, 0, 0, 0)) self.__series = QtChart.QPieSeries() self.__series.setHoleSize(0.58) self.__series.setPieSize(0.75) for i in range(8): ps = QtChart.QPieSlice(str(i), 1) ps.setExploded(True) ps.setExplodeDistanceFactor(RING_NORMAL) ps.clicked.connect(self.__slice_clicked) ps.hovered.connect(self.__slice_hovered) ps.doubleClicked.connect(self.__slice_dblclicked) self.__series.append(ps) self.__chart.addSeries(self.__series) chartViewParent.setRenderHint(QtGui.QPainter.Antialiasing, True) chartViewParent.setChart(self.__chart) self.__last_slice = self.__series.slices()[0]
def __init__(self, parent): super().__init__() self.chart = qtch.QChart() self.setChart(self.chart) self.series = qtch.QBarSeries() self.series.setBarWidth(1) self.chart.addSeries(self.series) self.chart.legend().setVisible(False) self.chart.setContentsMargins(-10, -10, -10, -10) self.bar_set = qtch.QBarSet('') self.series.append(self.bar_set) self.bar_set.append(20) self.x_axis = qtch.QBarCategoryAxis() self.x_axis.setVisible(False) self.chart.setAxisX(self.x_axis) self.series.attachAxis(self.x_axis) self.y_axis = qtch.QValueAxis() self.y_axis.setRange(0, 100) self.y_axis.setTickCount(5) self.y_axis.setVisible(False) self.chart.setAxisY(self.y_axis) self.series.attachAxis(self.y_axis) self.series.setLabelsVisible(True) self.chart.layout().setContentsMargins(0, 0, 0, 0) self.chart.setTheme(qtch.QChart.ChartThemeDark) self.setMinimumSize(10, 50) self.setParent(parent)
def __init__(self, name): super().__init__() # self.setParent(parent) self.chart = qtch.QChart(title=name) self.setChart(self.chart) self.series = qtch.QLineSeries(name='Counts') self.chart.addSeries(self.series) self.ydata = [] self.xdata = [] self.series.append([ qtc.QPointF(x, self.ydata[index]) for index, x in enumerate(self.xdata) ]) x_axis = qtch.QValueAxis() x_axis.setRange(0, 10) y_axis = qtch.QLogValueAxis() y_axis.setBase(10) y_axis.setRange(1, self.max) self.chart.setAxisX(x_axis, self.series) self.chart.setAxisY(y_axis, self.series) self.chart.setTheme(qtch.QChart.ChartThemeDark) self.setRenderHint(qtg.QPainter.Antialiasing)
def createChart( self ): # function to create a barchart similar to a time series, with each bar showing each year 1 - 10 payback value tech = self.Tech.currentText() series = QtChart.QBarSeries() chart = QtChart.QChart() axis = QtChart.QBarCategoryAxis(chart) categories = [ cat for cat in self.data.columns.values.tolist() if 'year' in cat ] set0 = QtChart.QBarSet('Payback') list0 = list() for cat in categories: list0.append(self.data.at[tech, cat]) set0.append(list0) series.append(set0) #list0.clear() #roicategories = [cat for cat in self.data.columns.values.tolist() if 'roi' in cat] #set1 = QtChart.QBarSet('ROI') #for cat in roicategories: #list0.append(self.data.at[tech, cat]) #set1.append(list0) #series.append(set1) series.setLabelsVisible() chart.addSeries(series) axis.append(categories) chart.createDefaultAxes() chart.setAxisX(axis, series) self.chartView.setChart(chart)
def __init__(self): self.check_box = QtWidgets.QCheckBox() self.check_box.setCheckState(QtCore.Qt.Checked) self.check_box.stateChanged.connect(self._check_changed) self.scaling_spin_box = QtWidgets.QDoubleSpinBox() # TODO: set a useful width without limiting the range # self.scaling_spin_box.setRange(-math.inf, math.inf) self.scaling_spin_box.setRange(-100000, 100000) self.scaling_spin_box.setDecimals(3) self.scaling_spin_box.setValue(1) self.scaling_spin_box.valueChanged.connect(self.scaling_changed) self.chart = QtChart.QChart() self.series = QtChart.QLineSeries() self.chart.addSeries(self.series) self.chart.createDefaultAxes() # self.chart.plotAreaChanged.connect(self._plot_area_changed) self.original_area = None self.view = QtChart.QChartView(self.chart) self.view_filters = make_chart_view_zoomable(self.view) self._name = None self.name = '<unnamed>' self.data = ()
def __init__(self, width, height, numberLabels=3, heading='', *args, **kwargs): super(LabeledDonatChart, self).__init__(*args, **kwargs) # widget properties self.setObjectName('LabeledDonatChart') self.setFrameShape(qtwidgets.QFrame.StyledPanel) self.setFixedWidth(width) self.setFixedHeight(height) self.setContentsMargins(0, 0, 0, 0) # donut chart self.series = qtchart.QPieSeries() self.series.setHoleSize(0.6) self.chart = qtchart.QChart() self.chart.setBackgroundVisible(False) self.chart.addSeries(self.series) self.chart.legend().hide() self.chart.setMargins(qtcore.QMargins(0, 0, 0, 0)) self.chart.setMinimumWidth(width) self.chart.setMinimumHeight(height) self.chartView = LabeledChartView(width, height, numberLabels, heading, self.chart, self) self.chartView.setRenderHint(qtgui.QPainter.Antialiasing) self.layout = qtwidgets.QHBoxLayout(self) self.layout.setContentsMargins(0, 0, 0, 0) self.layout.addWidget(self.chartView)
def __init__(self, parent=None): super().__init__(parent=parent) self.max = self.min = 0 if not parent: self.setWindowTitle(self.title) chart = QtChart.QChart(title=self.chart_title) self.setChart(chart) self.chart().setTitle(self.chart_title + f"min-> {self.min}, max-> {self.max}") self.seriesName = "ultilização " self.series = QtChart.QSplineSeries(name=self.seriesName) chart.addSeries(self.series) self.data = deque([0] * self.num_data_points, maxlen=self.num_data_points) self.series.append( [QtCore.QPoint(x, y) for x, y in enumerate(self.data)]) x_axis = QtChart.QValueAxis() x_axis.setRange(0, self.num_data_points) x_axis.setLabelsVisible(False) y_axis = QtChart.QValueAxis() y_axis.setRange(0, 100) chart.setAxisX(x_axis, self.series) chart.setAxisY(y_axis, self.series) chart.setTheme(QtChart.QChart.ChartThemeBlueCerulean) self.timer = QtCore.QTimer(interval=200, timeout=self.refresh_stats) self.timer.start() self.show()
def __init__(self, parent=None): super().__init__(parent=parent) self.lastMousePosition = None if not parent: self.setWindowTitle(self.title) chart = QtChart.QChart(title=self.title) self.setChart(chart) self.seriesName = 'Frequency' self.series = QtChart.QSplineSeries(name=self.seriesName) chart.addSeries(self.series) self.data = deque([0] * self.numDataPonints, maxlen=self.numDataPonints) self.series.append([QtCore.QPoint(x, y) for x, y, in enumerate(self.data)]) xAxis = QtChart.QValueAxis() xAxis.setRange(0, self.numDataPonints) xAxis.setLabelsVisible(False) chart.setAxisX(xAxis, self.series) yAxis = QtChart.QValueAxis() current, min, max = psutil.cpu_freq() self.chart().setTitle(self.title + f" min->{min}, max->{max}") self.average = current yAxis.setRange(0, max) chart.setAxisY(yAxis, self.series) self.setRenderHint(QtGui.QPainter.Antialiasing) chart.setTheme(QtChart.QChart.ChartThemeBlueCerulean) self.timer = QtCore.QTimer(interval=200, timeout=self.updateFrequency) self.timer.start() self.show()
def __init__(self): super(LineChart, self).__init__() chart = QtChart.QChart() # 线1 series1 = QtChart.QLineSeries() series2 = QtChart.QLineSeries() series1.append(0, 5) series1.append(1, 3) series1.append(2, 2) series1.append(4, 4) # 线2 series2.append(0, 2) series2.append(1, 3) series2.append(2, 5) series2.append(4, 3) # 加入线 chart.addSeries(series1) chart.addSeries(series2) # 设置 chart.setTitle('QChart做折线图') chart.createDefaultAxes() # 设置默认坐标 series1.setName('梨') # 设置图例 series2.setName('苹果') # 设置图例 self.setRenderHint(QPainter.Antialiasing) # 抗锯齿 # 显示图表 self.setChart(chart)
def __init__(self, parent=None, title=''): qc.QChartView.__init__(self, parent) chart = qc.QChart() chart.legend().hide() chart.setTitle(title) chart.setMargins(qt.QMargins(0, 0, 0, 0)) self.setChart(chart) self.setRenderHint(qt.QPainter.Antialiasing)
def showBewertungsScreen(self, bewertungen, maxWert): # Andere Fenster schließen self.LoginWindow.close() self.VorlesungWindow.close() # Vorlesungsfenster erstellen self.BewertungsWindow.setMinimumHeight(480) self.BewertungsWindow.setMinimumWidth(800) self.BewertungsWindow.showFullScreen() #Layout festlegen layout = QtWidgets.QGridLayout() #Sets erstellen (unterteilt nach Noten) self.set = QtChart.QBarSet('Gut') self.set1 = QtChart.QBarSet('Okay') self.set2 = QtChart.QBarSet('Zu Langsam') self.set3 = QtChart.QBarSet('Zu Schnell') self.set4 = QtChart.QBarSet('Zu Kompliziert') self.set.append(bewertungen[0]) self.set1.append(bewertungen[1]) self.set2.append(bewertungen[2]) self.set3.append(bewertungen[3]) self.set4.append(bewertungen[4]) #Einzelne Graphen erstellen und mit Sets verknüpfen self.series = QtChart.QBarSeries() self.series.append(self.set) self.series.append(self.set1) self.series.append(self.set2) self.series.append(self.set3) self.series.append(self.set4) #Chart initialiseren und Start Animation festlegen self.chart = QtChart.QChart() self.chart.addSeries(self.series) self.chart.setTitle("Bewertungen") self.chart.setAnimationOptions(QtChart.QChart.SeriesAnimations) #Achsen erstellen und formatieren achseX = QtChart.QBarCategoryAxis() achseY = QtChart.QValueAxis() achseY.setRange(0, maxWert) #Ansicht zusammenstellen und anzeigen self.chart.addAxis(achseX, QtCore.Qt.AlignBottom) self.chart.addAxis(achseY, QtCore.Qt.AlignLeft) self.chart.legend().setVisible(True) self.chart.legend().setAlignment(QtCore.Qt.AlignBottom) chartView = QtChart.QChartView(self.chart) layout.addWidget(chartView) self.BewertungsWindow.setLayout(layout) self.BewertungsWindow.show() self.logikReThread = LogikRestart() self.logikReThread.signalRestart.connect(self.showLoginScreen) self.logikReThread.start()
def __init__(self, parent=None): super().__init__(parent) self.series = QtChart.QCandlestickSeries() self.series.setUseOpenGL(True) self.chart = QtChart.QChart() self.chart.addSeries(self.series) self.setChart(self.chart) # x axis self.x_scrolling = QtChart.QValueAxis() # x axis used for scrolling self.x_scrolling.setTickType(QtChart.QValueAxis.TicksFixed) self.x_scrolling.setLabelsVisible(False) self.x_scrolling.setVisible(False) self.chart.setAxisX(self.x_scrolling, self.series) # y axis self.y = QtChart.QValueAxis() self.y.setTitleText("price") self.chart.setAxisY(self.y, self.series) self.chart.legend().hide() self.chart.setTitle("BarData") # visual control self.days_to_show = 20 self.price_window_scale = 1.1 self.showing_index_end = 0 # 非正数表示数组最末尾的第n个,正数表示除了显示最新的数据以外还额外显示空白数据 self.indicator: Optional[Indicator] = None self.crosshair_h: Optional[QGraphicsLineItem] = None self.crosshair_v: Optional[QGraphicsLineItem] = None self.indicator_index = None # index in self.showing_records # config self.x_zoom_scale_ratio = 0.5 self.max_padding_days = 3 # 最多显示的空白数据数量,也就是限制self.showing_index_end的最大值 self.y_label_count = 30 self.y_scale_threshold = 1.1 # status variables self.dragging = False self.dragging_info: Optional[DraggingInfo] = None self.showing_records: List["InternalData"] = [] # data record(use model/view to reduce memory if necessary) self.datas: List["InternalData"] = [] # intermediate variables to speed up calculation self.y_range = 1 # used in redraw_indicator self.y_min = 1 # used in redraw_indicator self.y_max = 1 # used in redraw_indicator # redraw self.redraw_lock = Lock() self.redraw_scheduled = False self.redraw_y_lock = Lock() self.redraw_y_scheduled = False
def SetLineSeriesData(self, data_list, chart_name=''): self.chart = QtChart.QChart() for data_lines in data_list: series = QtChart.QLineSeries() for index in range(len(data_lines)): series.append(index, data_lines[index]) self.chart.addSeries(series) self.chart.setTitle(chart_name) self.chart.createDefaultAxes()
def create_pie(self): pie = QtChart.QPieSeries() pie.append('1', 10) pie.append('2', 20) chart = QtChart.QChart() chart.addSeries(pie) #chart.setAnimationOptions(QtChart.SeriesAnimation) chartview = QtChart.QChartView(chart)
def init_graph(self): if self.ui.acc_graph_placeholder.layout() is None: acc_chart_Layout = QtWidgets.QVBoxLayout() loss_chart_Layout = QtWidgets.QVBoxLayout() self.ui.acc_graph_placeholder.setLayout(acc_chart_Layout) self.ui.loss_graph_placeholder.setLayout(loss_chart_Layout) acc_chart = QtChart.QChart() loss_chart = QtChart.QChart() self.acc_chart_view = QtChart.QChartView(acc_chart) self.acc_chart_view.setRenderHint(QtGui.QPainter.Antialiasing) self.loss_chart_view = QtChart.QChartView(loss_chart) self.loss_chart_view.setRenderHint(QtGui.QPainter.Antialiasing) acc_chart_Layout.addWidget(self.acc_chart_view) loss_chart_Layout.addWidget(self.loss_chart_view) self.acc_chart_view.show() self.loss_chart_view.show() else: acc_chart = self.acc_chart_view.chart() loss_chart = self.loss_chart_view.chart() self.acc_serie = QtChart.QLineSeries() self.acc_serie.setName("train_acc") self.val_acc_serie = QtChart.QLineSeries() self.val_acc_serie.setName("val_acc") self.loss_serie = QtChart.QLineSeries() self.loss_serie.setName("loss") self.val_loss_serie = QtChart.QLineSeries() self.val_loss_serie.setName("val_loss") acc_chart.addSeries(self.acc_serie) acc_chart.addSeries(self.val_acc_serie) loss_chart.addSeries(self.loss_serie) loss_chart.addSeries(self.val_loss_serie) acc_chart.createDefaultAxes() loss_chart.createDefaultAxes() acc_chart.axisX().setRange(0, self.current_epoch) loss_chart.axisX().setRange(0, self.current_epoch)