Ejemplo n.º 1
0
    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)
Ejemplo n.º 2
0
    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
Ejemplo n.º 3
0
    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 = ()
Ejemplo n.º 4
0
Archivo: main.py Proyecto: yurihs/snifc
 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)
Ejemplo n.º 5
0
 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)
Ejemplo n.º 6
0
    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
Ejemplo n.º 7
0
 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)
Ejemplo n.º 8
0
    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()
Ejemplo n.º 9
0
    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)
Ejemplo n.º 10
0
        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)
Ejemplo n.º 11
0
    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)
Ejemplo n.º 12
0
 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)
Ejemplo n.º 13
0
    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_())
Ejemplo n.º 14
0
    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)
Ejemplo n.º 15
0
    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)
Ejemplo n.º 16
0
    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]
Ejemplo n.º 17
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)
Ejemplo n.º 18
0
    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)
Ejemplo n.º 19
0
 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)
Ejemplo n.º 20
0
    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 = ()
Ejemplo n.º 21
0
    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)
Ejemplo n.º 22
0
    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()
Ejemplo n.º 23
0
    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()
Ejemplo n.º 24
0
 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)
Ejemplo n.º 25
0
 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)
Ejemplo n.º 26
0
    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()
Ejemplo n.º 27
0
    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
Ejemplo n.º 28
0
 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()
Ejemplo n.º 29
0
    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)
Ejemplo n.º 30
0
    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)