Example #1
0
    def __init__(self, lista_algoritmos, ajustes, entorno, controlador):
        super().__init__()
        self.setWindowIcon(QtGui.QIcon('icon-crop.png'))
        uic.loadUi('ventana_benchmark.ui', self)

        self.lista_algoritmos = lista_algoritmos
        self.entorno = entorno
        self.controlador = controlador

        tupla_algoritmos = tuple(lista_algoritmos)
        eje_x = QBarCategoryAxis()
        eje_x.append(tupla_algoritmos)
        self.eje_y = QLogValueAxis()
        self.eje_y.setRange(0, 100)
        pen = QtGui.QPen()
        pen.setStyle(Qt.DashLine)
        self.eje_y.setGridLinePen(pen)
        self.eje_y.setMinorTickCount(10)
        self.eje_y.setBase(10)
        self.eje_y.setLabelFormat("%g")
        self.eje_y.setTitleText("Número de episodios")

        self.grafico = QChart()
        #self.grafico.addSeries(series)
        self.grafico.setAnimationOptions(QChart.NoAnimation)
        self.grafico.addAxis(eje_x, Qt.AlignBottom)
        self.grafico.addAxis(self.eje_y, Qt.AlignLeft)  # TODO no se muestra
        self.set_ajustes(ajustes, False)
        self.grafico.legend().setVisible(True)
        self.grafico.legend().setAlignment(Qt.AlignTop)
        self.__init_datos()
Example #2
0
    def draw(self):
        # 修改 Chart 大小为外外层 graphicsView 大小
        width = self.main_ui.graphicsView.width() - 5
        height = self.main_ui.graphicsView.height() - 5
        self.resize(width, height)

        # 创建5个柱子
        set0 = QBarSet('下载')
        set1 = QBarSet('上传')
        for s in [set0, set1]:
            for i in range(6):
                s << random() * 10
        # 创建柱状条
        series = QHorizontalBarSeries()
        series.append(set0)
        series.append(set1)
        # 添加Series
        self.removeAllSeries()
        self.addSeries(series)
        # 分类
        categories = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun']
        # 分类x轴
        axis = QBarCategoryAxis()
        axis.append(categories)
        # 创建默认轴线
        self.createDefaultAxes()
        # 替换默认y轴
        self.setAxisY(axis, series)
        # 显示图例
        self.legend().setVisible(True)
        self.legend().setAlignment(Qt.AlignBottom)
Example #3
0
 def initChart(self, xAxis):
     self._chart = QChart()
     #调整边距
     self._chart.layout().setContentsMargins(0, 0, 0, 0)  #外界
     self._chart.setMargins(QMargins(3, 0, 3, 0))  #内界
     self._chart.setBackgroundRoundness(0)
     self._chart.setBackgroundVisible(False)
     #设置主题
     self._chart.setTheme(QChart.ChartThemeBlueIcy)
     # 抗锯齿
     self.setRenderHint(QPainter.Antialiasing)
     # 开启动画效果
     self._chart.setAnimationOptions(QChart.SeriesAnimations)
     self.categories = xAxis
     self._series = QPercentBarSeries(self._chart)
     self._chart.addSeries(self._series)
     axis_x = QBarCategoryAxis(self._chart)
     axis_x.append(self.categories)
     axis_x.setLabelsAngle(280)
     axis_y = QValueAxis(self._chart)
     axis_y.setTitleText("比例")
     axis_y.setRange(0, 100)
     self._chart.addAxis(axis_x, Qt.AlignBottom)
     self._chart.addAxis(axis_y, Qt.AlignLeft)
     self._series.attachAxis(axis_x)
     self._series.attachAxis(axis_y)
     self.setChart(self._chart)
Example #4
0
 def _init_chart(self) -> None:
     series = QBarSeries()
     axis_x = QBarCategoryAxis()
     axis_y = QValueAxis()
     data_set = defaultdict(int)
     for title, money in self.base:
         data_set[title] += money
     for title, money in data_set.items():
         bar = QBarSet(title)
         axis_x.append(title)
         bar.append(money)
         series.append(bar)
     #
     self.chart = QChart()
     self.chart.addSeries(series)
     self.chart.setAnimationOptions(QChart.SeriesAnimations)
     #
     series.attachAxis(axis_x)
     self.chart.addAxis(axis_x, Qt.AlignBottom)
     axis_y.setRange(0, max(data_set.values()))
     axis_y.setTickCount(11)
     self.chart.addAxis(axis_y, Qt.AlignLeft)
     series.attachAxis(axis_y)
     #
     self.chart.legend().setVisible(True)
     self.chart.legend().setAlignment(Qt.AlignBottom)
    def make_bar_chart(self):
        chart = QChart()

        chart.setTitle("현재 재고 현황")
        chart.setAnimationOptions(QChart.SeriesAnimations)

        item_statistics_dict = self.statistics_manager.get_item_statistics_dict(
        )
        categories = ["2020년"]

        series = QBarSeries()
        for key, value in item_statistics_dict.items():
            set = QBarSet(key)
            set << value[REMAIN_COUNT]
            series.append(set)

        chart.addSeries(series)

        axis = QBarCategoryAxis()
        axis.append(categories)
        chart.createDefaultAxes()
        chart.setAxisX(axis, series)

        chart.legend().setVisible(True)
        chart.legend().setAlignment(Qt.AlignBottom)

        self.barChartView = QChartView(chart)
        self.barChartView.setRenderHint(QPainter.Antialiasing)
        self.statisticsWidget.setWidget(self.barChartView)
Example #6
0
    def bargraph(self):
        '''
        Processes and Creates Bar Graph.
        '''
        self.barchart = self.findChild(QChartView, "attackgraph")
        bardata = self.data.getBar()
        chartobj = Barchart(bardata)
        chartseries = chartobj.getSeries()

        # create QChart object and add data
        chart = QChart()
        chart.addSeries(chartseries)
        chart.setTitle("Attacks Over the Past 12 Months")
        chart.setAnimationOptions(QChart.SeriesAnimations)

        axisX = QBarCategoryAxis()
        axisX.append(chartobj.getKeys())
        chart.addAxis(axisX, Qt.AlignBottom)

        axisY = QValueAxis()
        axisY.setRange(0, chartobj.getMax())
        chart.addAxis(axisY, Qt.AlignLeft)

        chart.legend().setVisible(False)

        self.barchart.setChart(chart)
Example #7
0
 def initChart(self, common):
     self.categories = [item[0] for item in common]
     series = QBarSeries(self._chart)
     bar = QBarSet("")
     # 随机数据
     for item in common:
         bar.append(item[1])
     series.append(bar)
     bar.hovered.connect(self.handleBarHoverd)  # 鼠标悬停
     self._chart.addSeries(series)
     self._chart.createDefaultAxes()  # 创建默认的轴
     # x轴
     axis_x = QBarCategoryAxis(self._chart)
     axis_x.append(self.categories)
     self._chart.setAxisX(axis_x, series)
     # chart的图例
     legend = self._chart.legend()
     legend.setVisible(True)
     # 遍历图例上的标记并绑定信号
     for marker in legend.markers():
         # 点击事件
         marker.clicked.connect(self.handleMarkerClicked)
         # 鼠标悬停事件
         marker.hovered.connect(self.handleMarkerHovered)
     # 一些固定计算,减少mouseMoveEvent中的计算量
     # 获取x和y轴的最小最大值
     axisX, axisY = self._chart.axisX(), self._chart.axisY()
     self.category_len = len(axisX.categories())
     self.min_x, self.max_x = -0.5, self.category_len - 0.5
     self.min_y, self.max_y = axisY.min(), axisY.max()
     # 坐标系中左上角顶点
     self.point_top = self._chart.mapToPosition(
         QPointF(self.min_x, self.max_y))
     self.setChart(self._chart)
Example #8
0
 def initChart(self):
     self._chart = QChart(title="柱状图堆叠")
     self._chart.setAcceptHoverEvents(True)
     # Series动画
     self._chart.setAnimationOptions(QChart.SeriesAnimations)
     self.categories = ["周一", "周二", "周三", "周四", "周五", "周六", "周日"]
     # names = ["邮件营销", "联盟广告", "视频广告", "直接访问", "搜索引擎"]
     names = ["邮件营销", ]
     series = QBarSeries(self._chart)
     for name in names:
         bar = QBarSet(name)
         # 随机数据
         for _ in range(7):
             bar.append(randint(0, 10))
             
         series.append(bar)
         bar.hovered.connect(self.handleBarHoverd)  # 鼠标悬停
     self._chart.addSeries(series)
     self._chart.createDefaultAxes()  # 创建默认的轴
     # x轴
     axis_x = QBarCategoryAxis(self._chart)
     axis_x.append(self.categories)
     self._chart.setAxisX(axis_x, series)
     # chart的图例
     legend = self._chart.legend()
     legend.setVisible(True)
     # 遍历图例上的标记并绑定信号
     for marker in legend.markers():
         # 点击事件
         marker.clicked.connect(self.handleMarkerClicked)
         # 鼠标悬停事件
         marker.hovered.connect(self.handleMarkerHovered)
     self.setChart(self._chart)
Example #9
0
    def create_barchart(self, series, max_val, animation=True):
        if animation:
            animation_type = QChart.AllAnimations
        else:
            animation_type = QChart.NoAnimation

        chart = QChart()
        chart.addSeries(series)
        chart.setBackgroundVisible(False)
        chart.setMargins(QMargins())
        chart.setAnimationOptions(animation_type)

        labels = ('Human', 'Bot')

        axisX = QBarCategoryAxis()
        axisX.append(labels)

        axisY = QValueAxis()
        axisY.setTitleText("Percentage (%)")
        axisY.setRange(0, max_val)

        chart.addAxis(axisX, Qt.AlignBottom)
        chart.addAxis(axisY, Qt.AlignLeft)

        font = QFont()
        font.setPointSize(9)

        chart.legend().setVisible(True)
        chart.legend().setFont(font)
        chart.legend().setAlignment(Qt.AlignBottom)

        self.ui.barchart.setChart(chart)
        self.ui.barchart.setRenderHint(QPainter.Antialiasing)
Example #10
0
    def draw(self, chart_data: PieChartData) -> None:
        # series = QPieSeries()
        # for project, duration in chart_data.data.items():
        #   series.append("{} ({} s)".format(project, int(duration)), duration)
        # self.chart_view.setRenderHint(QPainter.Antialiasing)
        # self.chart_view.chart().removeAllSeries()
        # self.chart_view.chart().addSeries(series)

        # TODO redo with stacked bar chart
        series = QBarSeries()
        bar_set = QBarSet('Default')
        categories = []
        for project, duration in chart_data.data.items():
            if project == self.config.projects.none_project:
                project = 'None'
            categories.append(project)
            bar_set.append(duration)
        series.append(bar_set)
        axis_x = QBarCategoryAxis()
        axis_x.append(categories)

        self.chart.removeAllSeries()
        self.chart.addSeries(series)
        self.chart.setAxisX(axis_x)
        series.attachAxis(axis_x)

        self.initialized = True
Example #11
0
        def create_chart(self):
            self.chart.setTitle(
                'Grafiek aantal externe werken per status - opnameweek ' +
                jrwk)
            font = QFont("Sans Serif", 10)
            font.setWeight(QFont.Bold)
            self.chart.setTitleFont(font)
            set0 = QBarSet('Aantal externe werken per status')

            set0 << rpr[0][2] << rpr[1][2] << rpr[2][2] << rpr[3][2] << rpr[4][
                2] << rpr[5][2] << rpr[6][2] << rpr[7][2]

            barseries = QBarSeries()
            barseries.append(set0)
            barseries.append

            categories = [
                "Status A", "Status B", "Status C", "Status D", "Status E",
                "Status F", "Status G", "Status H"
            ]

            self.chart.addSeries(barseries)
            self.chart.axisX()
            self.chart.createDefaultAxes()
            axisX = QBarCategoryAxis()
            axisX.append(categories)
            self.chart.setAxisX(axisX, barseries)
            axisX.setRange(str("Status A"), str("Status H"))
Example #12
0
    def __init__(self, *args, **kwargs):
        super(Window, self).__init__(*args, **kwargs)
        self.resize(400, 300)
        # 抗锯齿
        self.setRenderHint(QPainter.Antialiasing)

        # 图表
        chart = QChart()
        self.setChart(chart)
        # 设置标题
        chart.setTitle('Simple barchart example')
        # 开启动画效果
        chart.setAnimationOptions(QChart.SeriesAnimations)
        # 添加Series
        series = self.getSeries()
        chart.addSeries(series)
        # 分类
        categories = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun']
        # 分类x轴
        axis = QBarCategoryAxis()
        axis.append(categories)
        # 创建默认轴线
        chart.createDefaultAxes()
        # 替换默认x轴
        chart.setAxisX(axis, series)
        # 显示图例
        chart.legend().setVisible(True)
        chart.legend().setAlignment(Qt.AlignBottom)
    def __init__(self, predictions, probabilities):
        # calls the parent (QMainWindow) constructor
        super().__init__()

        # Size of the window
        self.resize(800, 600)

        # The title of the window
        self.setWindowTitle("Flower Confidence score graph")

        # The array to hold flower sets
        self.flowerSets = []

        # A Q bar series object
        self.flowerSeries = QBarSeries()

        # The for loop add Q bar sets and probabilities to the Q bsr series object.
        for i in range(5):
            self.flowerSets.append(
                QBarSet(predictions[i] +
                        " ({0:.3f}%)".format(probabilities[i])))
            self.flowerSets[i].append(probabilities[i])
            self.flowerSeries.append(self.flowerSets[i])

        # creates the char that will be the bar graph chart (also the base class of all qt charts)
        flowerChart = QChart()

        # added the series object to the chart object
        flowerChart.addSeries(self.flowerSeries)

        # Adds a title to the graph
        flowerChart.setTitle('Confidence score percentages by flower type')

        # Gives the graph a nice animation when opened
        flowerChart.setAnimationOptions(QChart.SeriesAnimations)

        # The next two line label the x axis
        axisX = QBarCategoryAxis()
        axisX.append(["Flower Types"])

        # Gives the y axis its values
        axisY = QValueAxis()
        axisY.setRange(0, probabilities[0])

        # added the axises to the chart
        flowerChart.addAxis(axisX, Qt.AlignBottom)
        flowerChart.addAxis(axisY, Qt.AlignLeft)

        # Makes sure teh legend is visible
        flowerChart.legend().setVisible(True)

        # Places the  legend to the bottom of the chart
        flowerChart.legend().setAlignment(Qt.AlignBottom)

        # places the chart in a chart view
        flowerChartView = QChartView(flowerChart)

        # Adds the chart to the main widget
        self.setCentralWidget(flowerChartView)
Example #14
0
    def load_glycation(self, filename: Optional[str] = None) -> None:
        """
        Load glycation data from a CSV file and display it
        in the corresponding chart view.

        :param str filename: directly load this file
        :return: nothing, sets self.se_glycation
        :rtype: None
        """

        # load and clean glycation data
        if filename is None:
            filename, self.last_path = get_filename(
                self, "open", self.tr("Load glycation data ..."),
                self.last_path, FileTypes(["csv"]))
            if filename is None:
                return

        logging.info(
            self.tr("Loading glycation data in '{}'").format(filename))
        try:
            self.glycation = read_clean_datasets(filename)
        except (OSError, ValueError) as e:
            logging.error(str(e))
            QMessageBox.critical(self, self.tr("Error"), str(e))
            return

        # extract x- and y-values from series
        x_values = [str(i) for i in self.glycation.index]
        y_values = [a.nominal_value for a in self.glycation]

        # assemble the chart
        bar_set = QBarSet("glycation abundance")
        bar_set.append(y_values)
        bar_set.setColor(QColor("#a1dab4"))
        bar_set.hovered.connect(self.update_glycation_label)
        bar_series = QBarSeries()
        bar_series.append(bar_set)

        x_axis = QBarCategoryAxis()
        x_axis.append(x_values)
        x_axis.setTitleText(self.tr("count"))

        y_axis = QValueAxis()
        y_axis.setRange(0, 100)
        y_axis.setTitleText(self.tr("abundance"))
        y_axis.setLabelFormat("%d")

        chart = QChart()
        chart.addSeries(bar_series)
        chart.setAxisX(x_axis, bar_series)
        chart.setAxisY(y_axis, bar_series)
        chart.legend().setVisible(False)
        chart.setBackgroundRoundness(0)
        chart.layout().setContentsMargins(0, 0, 0, 0)
        chart.setMargins(QMargins(5, 5, 5, 5))
        self.cvGlycation.setChart(chart)
Example #15
0
    def build(self):
        self.setWindowTitle('Emoreco')
        self.setWindowIcon(QIcon(root + 'Logo.ico'))

        oImage = QImage(root + "Background.png")
        palette = QPalette()
        palette.setBrush(QPalette.Window, QBrush(oImage))
        self.setPalette(palette)

        oImage = QPixmap(root + "Ok.png")
        palette = QPalette()
        palette.setBrush(self.OkButton.backgroundRole(), QBrush(oImage))

        self.OkButton.setFlat(1)
        self.OkButton.setAutoFillBackground(1)
        self.OkButton.setPalette(palette)
        self.OkButton.clicked.connect(self.closeWindow)
        set_list = [
            QBarSet('Circulatory'),
            QBarSet('Digestive'),
            QBarSet('Endocrine'),
            QBarSet('Integumentary'),
            QBarSet('Lymphatic'),
            QBarSet('Muscular'),
            QBarSet('Nervous'),
            QBarSet('Excretory'),
            QBarSet('Reproductive'),
            QBarSet('Respiratory'),
            QBarSet('Skeletal')
        ]

        categories = ['']

        series = QBarSeries()
        chart = QChart()
        axis = QBarCategoryAxis()

        for i in range(sys_n):
            set_list[i].append([dis_prediction[i]])
            series.append(set_list[i])

        chart.addSeries(series)
        axis.append(categories)

        chart.setTitle('Our prediction (%)')

        chart.createDefaultAxes()
        chart.setAxisX(axis, series)
        chart.legend().setAlignment(Qt.AlignLeft)
        chart.setBackgroundBrush(QColor(61, 56, 63, 0))

        chartView = QChartView(chart)
        chartView.chart().setAnimationOptions(QChart.AllAnimations)

        base = self.gridLayout
        base.addWidget(chartView)
        self.show()
Example #16
0
    def __init__(self, parent=None):
        super(TableWidget, self).__init__(parent)

        # Create a simple model for storing data.
        model = CustomTableModel()

        # Create the table view and add the model to it.
        tableView = QTableView()
        tableView.setModel(model)
        tableView.setMinimumWidth(300)
        tableView.horizontalHeader().setSectionResizeMode(QHeaderView.Stretch)
        tableView.verticalHeader().setSectionResizeMode(QHeaderView.Stretch)

        chart = QChart()
        chart.setAnimationOptions(QChart.AllAnimations)

        # Series 1.
        series = QBarSeries()

        first = 3
        count = 5
        mapper = QVBarModelMapper(self)
        mapper.setFirstBarSetColumn(1)
        mapper.setLastBarSetColumn(4)
        mapper.setFirstRow(first)
        mapper.setRowCount(count)
        mapper.setSeries(series)
        mapper.setModel(model)
        chart.addSeries(series)

        # Get the color of the series and use it for showing the mapped area.
        for i, barset in enumerate(series.barSets()):
            seriesColorHex = hex(barset.brush().color().rgb()).upper()
            if seriesColorHex.endswith('L'):
                seriesColorHex = seriesColorHex[:-1]
            seriesColorHex = '#' + seriesColorHex[-6:]
            model.addMapping(seriesColorHex,
                             QRect(1 + i, first, 1, barset.count()))

        categories = ["April", "May", "June", "July", "August"]
        axis = QBarCategoryAxis(chart)
        axis.append(categories)
        chart.createDefaultAxes()
        chart.setAxisX(axis, series)

        chartView = QChartView(chart)
        chartView.setRenderHint(QPainter.Antialiasing)
        chartView.setMinimumSize(640, 480)

        # Create the main layout.
        mainLayout = QGridLayout()
        mainLayout.addWidget(tableView, 1, 0)
        mainLayout.addWidget(chartView, 1, 1)
        mainLayout.setColumnStretch(1, 1)
        mainLayout.setColumnStretch(0, 0)
        self.setLayout(mainLayout)
Example #17
0
    def __init__(self, parent=None):
        super().__init__(parent)

        self.m_model = CustomTableModel()

        tableView = QTableView()
        tableView.setModel(self.m_model)
        tableView.setMinimumWidth(300)
        tableView.horizontalHeader().setSectionResizeMode(QHeaderView.Stretch)
        tableView.verticalHeader().setSectionResizeMode(QHeaderView.Stretch)
        self.m_model.setParent(tableView)

        chart = QChart()
        chart.setAnimationOptions(QChart.AllAnimations)

        series = QBarSeries()

        first = 3
        count = 5
        mapper = QVBarModelMapper(self)
        mapper.setFirstBarSetColumn(1)
        mapper.setLastBarSetColumn(4)
        mapper.setFirstRow(first)
        mapper.setRowCount(count)
        mapper.setSeries(series)
        mapper.setModel(self.m_model)
        chart.addSeries(series)

        seriesColorHex = "#000000"

        barsets = series.barSets()
        for i, barset in enumerate(barsets):
            seriesColorHex = barset.brush().color().name()
            self.m_model.addMapping(
                seriesColorHex, QRect(1 + i, first, 1, barset.count())
            )

        categories = ("April", "May", "June", "July", "August")
        axisX = QBarCategoryAxis()
        axisX.append(categories)
        chart.addAxis(axisX, Qt.AlignBottom)
        series.attachAxis(axisX)
        axisY = QValueAxis()
        chart.addAxis(axisY, Qt.AlignLeft)
        series.attachAxis(axisY)

        chartView = QChartView(chart)
        chartView.setRenderHint(QPainter.Antialiasing)
        chartView.setMinimumSize(640, 480)

        mainLayout = QGridLayout(self)
        mainLayout.addWidget(tableView, 1, 0)
        mainLayout.addWidget(chartView, 1, 1)
        mainLayout.setColumnStretch(1, 1)
        mainLayout.setColumnStretch(0, 0)
Example #18
0
    def agg_glycoforms(self) -> None:
        """
        Display glycoform data in the corresponding chart view.

        :return: nothing
        :rtype: None
        """

        # aggregate "other" abundances
        if self.cbAggGlycoforms.isChecked():
            agg_abundance = (
                self.glycoforms.iloc[self.sbAggGlycoforms.value():].sum())
            self.glycoforms_agg = (
                self.glycoforms.iloc[:self.sbAggGlycoforms.value()].append(
                    pd.Series(agg_abundance, index=[self.tr("other")])))
        else:
            self.glycoforms_agg = self.glycoforms

        # extract x- and y-values from series
        x_values = [str(i) for i in self.glycoforms_agg.index]
        y_values = [a.nominal_value for a in self.glycoforms_agg]

        # assemble the chart
        bar_set = QBarSet("glycoform abundance")
        bar_set.append(y_values)
        bar_set.setColor(QColor("#2c7fb8"))
        bar_set.hovered.connect(self.update_glycoform_label)
        bar_series = QBarSeries()
        bar_series.append(bar_set)

        x_axis = QBarCategoryAxis()
        x_axis.append(x_values)
        x_axis.setTitleVisible(False)
        x_axis.setLabelsAngle(270)

        range_max = max(self.glycoforms_agg).nominal_value
        range_max = math.ceil(range_max / 20) * 20
        tick_count = range_max // 20 + 1
        y_axis = QValueAxis()
        y_axis.setRange(0, range_max)
        y_axis.setTickCount(tick_count)
        y_axis.setTitleText(self.tr("abundance"))
        y_axis.setLabelFormat("%d")

        chart = QChart()
        chart.addSeries(bar_series)
        chart.setAxisX(x_axis, bar_series)
        chart.setAxisY(y_axis, bar_series)
        chart.legend().setVisible(False)
        chart.setBackgroundRoundness(0)
        chart.layout().setContentsMargins(0, 0, 0, 0)
        chart.setMargins(QMargins(5, 5, 5, 5))
        self.cvGlycoforms.setChart(chart)
Example #19
0
class Chart(QChartView):
    def __init__(self, barCount: int):
        super().__init__()

        self.chart = QChart()
        self.setChart(self.chart)
        self.setRenderHint(QPainter.Antialiasing)
        self.chart.setAnimationOptions(QChart.SeriesAnimations)
        self.chart.setBackgroundVisible(True)
        self.chart.legend().setVisible(False)

        self.series = QBarSeries()
        self.chart.addSeries(self.series)

        self.barValues = QBarSet('')
        self.series.append(self.barValues)
        for i in range(barCount):
            self.barValues << 0.

        self.xAxis = QBarCategoryAxis()
        self.chart.addAxis(self.xAxis, Qt.AlignBottom)
        self.series.attachAxis(self.xAxis)
        self.xAxis.setTitleText('yPlus ranges')

        self.yAxis = QValueAxis()
        self.chart.addAxis(self.yAxis, Qt.AlignLeft)
        self.series.attachAxis(self.yAxis)
        self.yAxis.setTitleText('% of surface area')
        self.yAxis.setRange(0, 100)

    def setBarRanges(self, pois: List[float]):
        for i in range(len(pois)):
            if i == 0:
                tag = 'lt ' + str(pois[0])
            elif i == len(pois) - 1:
                tag = 'gt ' + str(pois[-1])
            else:
                tag = str(pois[i]) + ' - ' + str(pois[i + 1])

            if not self.xAxis.count():
                self.xAxis.append(tag)
            else:
                self.xAxis.replace(self.xAxis.at(i), tag)

    def setBarValues(self, values: List[float]):
        assert len(values) == self.barValues.count()

        for i in range(len(values)):
            if not self.barValues.count():
                self.barValues.insert(i, 0.)
            else:
                self.barValues.replace(i, values[i])
Example #20
0
def main():
    import sys

    app = QApplication(sys.argv)

    set0 = QBarSet("Jane")
    set1 = QBarSet("John")
    set2 = QBarSet("Axel")
    set3 = QBarSet("Mary")
    set4 = QBarSet("Samantha")

    set0 << 1 << 2 << 3 << 4 << 5 << 6
    set1 << 5 << 0 << 0 << 4 << 0 << 7
    set2 << 3 << 5 << 8 << 13 << 8 << 5
    set3 << 5 << 6 << 7 << 3 << 4 << 5
    set4 << 9 << 7 << 5 << 3 << 1 << 2

    series = QBarSeries()
    series.append(set0)
    series.append(set1)
    series.append(set2)
    series.append(set3)
    series.append(set4)

    chart = QChart()
    chart.addSeries(series)
    chart.setTitle("Simple barchart example")
    chart.setAnimationOptions(QChart.SeriesAnimations)

    categories = ("Jan", "Feb", "Mar", "Apr", "May", "Jun")
    axisX = QBarCategoryAxis()
    axisX.append(categories)
    chart.addAxis(axisX, Qt.AlignBottom)
    series.attachAxis(axisX)

    axisY = QValueAxis()
    axisY.setRange(0, 15)
    chart.addAxis(axisY, Qt.AlignLeft)
    series.attachAxis(axisY)

    chart.legend().setVisible(True)
    chart.legend().setAlignment(Qt.AlignBottom)

    chartView = QChartView(chart)
    chartView.setRenderHint(QPainter.Antialiasing)

    window = QMainWindow()
    window.setCentralWidget(chartView)
    window.resize(420, 300)
    window.show()

    sys.exit(app.exec_())
Example #21
0
 def ageWiseBarGraph(self):
     self.w = Window2()
     self.w.show()
     set0 = QBarSet('below 25')
     set1 = QBarSet('25 to 35')
     set2 = QBarSet('36 to 45')
     set3 = QBarSet('46 to 55')
     set4 = QBarSet('above 55')
     file="killings.csv"
     ageSet = [0,0,0,0,0]
     with open('killings.csv') as File:
         csvReader = csv.reader(File)
         next(csvReader)
         for row in csvReader:
             if int(row[5]) < 25:
                 ageSet[0]+=1
             elif int(row[5]) >=25 and int(row[5])<= 35:
                 ageSet[1]+=1
             elif int(row[5]) >35 and int(row[5])<=45:
                 ageSet[2]+=1
             elif int(row[5]) >45 and int(row[5])<= 55:
                 ageSet[3]+=1
             else:
                 ageSet[4]+=1
     print (ageSet)
     set0.append(ageSet[0])
     set1.append(ageSet[1])
     set2.append(ageSet[2])
     set3.append(ageSet[3])
     set4.append(ageSet[4])
     series = QBarSeries()
     series.append(set0)
     series.append(set1)
     series.append(set2)
     series.append(set3)
     series.append(set4)
     chart = QChart()
     chart.addSeries(series)
     chart.setTitle('Age wise comparison')
     chart.setAnimationOptions(QChart.SeriesAnimations)
     msg = ('Death Toll')
     axisX = QBarCategoryAxis()
     axisX.append(msg)
     axisY = QValueAxis()
     axisY.setRange(0, 200)
     chart.addAxis(axisX, Qt.AlignBottom)
     chart.addAxis(axisY, Qt.AlignLeft)
     chart.legend().setVisible(True)
     chart.legend().setAlignment(Qt.AlignBottom)
     chartView = QChartView(chart)
     self.w.setCentralWidget(chartView)
Example #22
0
    def crearGraficoBarras(self):
        paises = [
            "EEUU", "China", "Japon", "Alemania", "Reino Unido",
            "Resto del mundo"
        ]
        valores = [24.32, 14.85, 8.91, 12.54, 7.85, 31.53]
        colores = [
            Qt.blue, Qt.red, Qt.darkYellow, Qt.gray, Qt.black, Qt.darkCyan
        ]

        grafico = QChart()
        grafico.setMargins(QMargins(30, 30, 30, 30))
        grafico.setTheme(QChart.ChartThemeLight)
        grafico.setTitle("% Distribución del PIB global")
        grafico.setAnimationOptions(QChart.SeriesAnimations)

        for i in range(len(paises)):
            series = QBarSeries()

            barSet = QBarSet(paises[i])
            barSet.setColor(colores[i])
            barSet.setLabelColor(Qt.yellow)
            barSet.append(valores[i])

            series.append(barSet)
            series.setLabelsVisible(True)
            series.setLabelsAngle(-90)
            # series.setLabelsPrecision(2)
            series.setLabelsFormat("@value %")
            series.setLabelsPosition(QAbstractBarSeries.LabelsCenter)

            grafico.addSeries(series)

        axisX = QBarCategoryAxis()
        axisX.append(paises)

        axisY = QValueAxis()
        axisY.setRange(0, 31.53)
        axisY.setTickCount(10)
        axisY.setLabelFormat("%.2f %")

        grafico.createDefaultAxes()
        grafico.setAxisX(axisX, None)
        grafico.setAxisY(axisY, None)

        grafico.legend().setVisible(True)
        grafico.legend().setAlignment(Qt.AlignBottom)

        return grafico
Example #23
0
    def __init__(self):
        super().__init__()
        self.resize(800, 600)

        set0 = QBarSet('X0')
        set1 = QBarSet('X1')
        set2 = QBarSet('X2')
        set3 = QBarSet('X3')
        set4 = QBarSet('X4')

        set0.append([1, 2, 3, 4, 5, 6])
        set1.append([5, 0, 0, 4, 0, 7])
        set2.append([3, 5, 8, 13, 8, 5])
        set3.append([5, 6, 7, 3, 4, 5])
        set4.append([9, 7, 5, 3, 1, 2])

        series = QHorizontalBarSeries()
        series.append(set0)
        series.append(set1)
        series.append(set2)
        series.append(set3)
        series.append(set4)

        chart = QChart()
        chart.addSeries(series)
        chart.setTitle('Horizontal Bar Chart Demo')

        chart.setAnimationOptions(QChart.SeriesAnimations)

        months = ('Jan', 'Feb', 'Mar', 'Apr', 'May', 'June')

        axisY = QBarCategoryAxis()
        axisY.append(months)
        chart.addAxis(axisY, Qt.AlignLeft)
        series.attachAxis(axisY)

        axisX = QValueAxis()
        chart.addAxis(axisX, Qt.AlignBottom)
        series.attachAxis(axisX)

        axisX.applyNiceNumbers()

        chart.legend().setVisible(True)
        chart.legend().setAlignment(Qt.AlignBottom)

        chartView = QChartView(chart)
        chartView.setRenderHint(QPainter.Antialiasing)
        self.setCentralWidget(chartView)
Example #24
0
    def grafik_uji_kategori(self):
        with open(
                'C:/Users/asus/Desktop/SKRIPSWEET BISMILLAH/MODUL PROGRAM/Modul Program Bismillah/Pengujian/hasil_uji_kategori_kfold.json'
        ) as f:
            dataa = json.load(f)
        print(dataa)
        acc = dataa['acc']
        pres = dataa['presisi']
        rec = dataa['recall']
        set0 = QBarSet('Akurasi')
        set1 = QBarSet('Presisi')
        set2 = QBarSet('Recall')

        for i in range(len(acc)):
            set0.append(acc[i] * 100)

        for i in range(len(pres)):
            set1.append(pres[i] * 100)

        for i in range(len(rec)):
            set2.append(rec[i] * 100)

        series = QBarSeries()
        series.append(set0)
        series.append(set1)
        series.append(set2)
        set0.setColor(QtGui.QColor("navy"))
        set1.setColor(QtGui.QColor("yellow"))
        set2.setColor(QtGui.QColor("red"))

        chart = QChart()
        chart.addSeries(series)
        chart.setAnimationOptions(QChart.SeriesAnimations)
        label_pantai = ['K=1', 'K=2', 'K=3', 'K=4', 'K=5']
        axisX = QBarCategoryAxis()
        axisX.append(label_pantai)
        axisX.setLabelsAngle(0)
        axisY = QValueAxis()
        axisX.setTitleText("K-Fold Cross Validation")
        axisY.setTitleText("Prosentase (%)")
        axisY.setRange(0, max(set0))
        axisY.setMinorTickCount(5)

        chart.addAxis(axisX, Qt.AlignBottom)
        chart.addAxis(axisY, Qt.AlignLeft)
        chart.legend().setVisible(True)
        chart.legend().setAlignment(Qt.AlignBottom)
        return (chart)
Example #25
0
 def create_fleeChart(self):
     file="killings.csv"
     flee = [0,0,0,0]
     with open('killings.csv') as File:
         csvReader = csv.reader(File)
         next(csvReader)
         for row in csvReader:
             if row[12]== 'Not fleeing':
                 flee[0]+=1
             elif row[12]== 'Car':
                 flee[1]+=1
             elif row[12]=='Foot':
                 flee[2]+=1
             else:
                 flee[3]+=1
     self.w = Window2()
     self.w.show()
     set0 = QBarSet('Not Fleeing')
     set1 = QBarSet('Car')
     set2 = QBarSet('Foot')
     set3 = QBarSet('Other')
     file="killings.csv"
     #appending graph values here
     set0.append(flee[0])
     set1.append(flee[1])
     set2.append(flee[2])
     set3.append(flee[3])
     series = QBarSeries()
     series.append(set0)
     series.append(set1)
     series.append(set2)
     series.append(set3)
     chart = QChart()
     chart.addSeries(series)
     chart.setTitle('Mode of Fleeing')
     chart.setAnimationOptions(QChart.SeriesAnimations)
     msg = ('Flee')
     axisX = QBarCategoryAxis()
     axisX.append(msg)
     axisY = QValueAxis()
     axisY.setRange(0, 250)
     chart.addAxis(axisX, Qt.AlignBottom)
     chart.addAxis(axisY, Qt.AlignLeft)
     chart.legend().setVisible(True)
     chart.legend().setAlignment(Qt.AlignBottom)
     chartView = QChartView(chart)
     self.w.setCentralWidget(chartView)
Example #26
0
def main():
    import sys
    from PyQt5.QtChart import QChart, QChartView
    from PyQt5.QtCore import Qt
    from PyQt5.QtGui import QPainter
    from PyQt5.QtWidgets import QApplication, QMainWindow

    app = QApplication(sys.argv)

    data = dict()
    data["Jane"] = [1, 2, 3, 4, 5, 6]
    # data["John"] = [5, 0, 0, 4, 0, 7]
    # data["Axel"] = [3, 5, 6, 7, 2, 2]
    # data["Mary"] = [3, 5, 7, 2, 3, 5]
    # data["Tony"] = [3, 0, 9, 3 ,1, 2]

    # series=XDictSet(data, key_order=['Jane', 'John', 'Axel', 'Mary', 'Tony'])
    series = XDictSet(data)
    lineseries = XLineSeries(data);
    print(lineseries)

    chart = QChart()
    chart.addSeries(series)
    chart.addSeries(lineseries[0])
    chart.setTitle("Simple horizontal barchart example")
    chart.setAnimationOptions(QChart.SeriesAnimations)

    categories = ["Jan", "Feb", "Mar", "Apr", "May", "Jun"]
    axis = QBarCategoryAxis()
    axis.append(categories)
    chart.createDefaultAxes()
    chart.setAxisX(axis, series)

    chart.legend().setVisible(True)
    chart.legend().setAlignment(Qt.AlignBottom)

    chartView = QChartView(chart)
    chartView.setRenderHint(QPainter.Antialiasing)

    window = QMainWindow()
    window.setCentralWidget(chartView)
    window.resize(800, 600)
    window.show()

    sys.exit(app.exec_())
Example #27
0
    def update_graph(self, index):
        if index == 2:
            self.graph_chart.removeAllSeries()

            axis_x = QBarCategoryAxis()
            axis_x.setTitleText("日期")
            if self.graph_chart.axisX():
                self.graph_chart.removeAxis(self.graph_chart.axisX())
            self.graph_chart.addAxis(axis_x, Qt.AlignBottom)

            axis_y = QValueAxis()
            axis_y.setLabelFormat("%i")
            axis_y.setTitleText("售出量")
            if self.graph_chart.axisY():
                self.graph_chart.removeAxis(self.graph_chart.axisY())
            self.graph_chart.addAxis(axis_y, Qt.AlignLeft)

            max_num = 0
            total_date = 0
            set_dict = {}
            for key, data in sorted(self.graph_series.items(),
                                    key=lambda i: int(i[0])):
                axis_x.append(
                    QDateTime.fromSecsSinceEpoch(
                        int(key)).toString("yyyy年MM月dd日"))
                for set_name, value in data.items():
                    if set_name not in set_dict:
                        set_dict[set_name] = QBarSet(set_name)
                        for _ in range(total_date):
                            set_dict[set_name].append(0)
                    set_dict[set_name].append(value)
                    max_num = max(max_num, value)
                total_date += 1
                for _, bar_set in set_dict.items():
                    if bar_set.count() < total_date:
                        bar_set.append(0)
            bar_series = QBarSeries()
            for _, bar_set in set_dict.items():
                bar_series.append(bar_set)
            bar_series.hovered.connect(self.graph_tooltip)
            axis_y.setMax(max_num + 1)
            axis_y.setMin(0)
            self.graph_chart.addSeries(bar_series)
            bar_series.attachAxis(axis_x)
            bar_series.attachAxis(axis_y)
Example #28
0
class OpenIMUBarGraphView(QChartView):
    def __init__(self, parent=None):
        super().__init__(parent=parent)
        self.chart = QChart()
        self.setChart(self.chart)
        self.chart.legend().setVisible(True)
        self.chart.legend().setAlignment(Qt.AlignBottom)
        self.series = QBarSeries(self)
        self.categoryAxis = QBarCategoryAxis(self)
        self.build_style()

    def build_style(self):
        self.setStyleSheet("QLabel{color:blue;}")
        self.chart.setTheme(QChart.ChartThemeBlueCerulean)
        self.setBackgroundBrush(QBrush(Qt.darkGray))
        self.chart.setPlotAreaBackgroundBrush(QBrush(Qt.black))
        self.chart.setPlotAreaBackgroundVisible(True)
        self.chart.setAnimationOptions(QChart.SeriesAnimations)

    def set_title(self, title):
        # print('Setting title: ', title)
        self.chart.setTitle(title)

    def set_category_axis(self, categories):
        self.categoryAxis.append(categories)

    def add_set(self, label, values):
        # print('adding bar set')
        my_set = QBarSet(label, self)
        my_set.append(values)
        self.series.append(my_set)

    def update(self):
        self.chart.addSeries(self.series)
        self.chart.createDefaultAxes()
        self.chart.setAxisX(self.categoryAxis, self.series)

    def add_test_data(self):
        print('adding test data series')
        self.set_title('Testing bars')
        self.set_category_axis(['A', 'B', 'C', 'D'])
        self.add_set('Test1', [0.1, 2, 3, 4])
        self.add_set('Test2', [3, 2, 1, 4])
        self.add_set('Test3', [4, 1, 3, 2])
        self.update()
Example #29
0
    def __init__(self):
        super().__init__()
        self.resize(800, 600)

        set0 = QBarSet('X0')
        set1 = QBarSet('X1')
        set2 = QBarSet('X2')
        set3 = QBarSet('X3')
        set4 = QBarSet('X4')

        set0.append([random.randint(0, 10) for i in range(6)])
        set1.append([random.randint(0, 10) for i in range(6)])
        set2.append([random.randint(0, 10) for i in range(6)])
        set3.append([random.randint(0, 10) for i in range(6)])
        set4.append([random.randint(0, 10) for i in range(6)])

        series = QBarSeries()
        series.append(set0)
        series.append(set1)
        series.append(set2)
        series.append(set3)
        series.append(set4)

        chart = QChart()
        chart.addSeries(series)
        chart.setTitle('Bar Chart Demo')
        chart.setAnimationOptions(QChart.SeriesAnimations)

        months = ('Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun')

        axisX = QBarCategoryAxis()
        axisX.append(months)

        axisY = QValueAxis()
        axisY.setRange(0, 15)

        chart.addAxis(axisX, Qt.AlignBottom)
        chart.addAxis(axisY, Qt.AlignLeft)

        chart.legend().setVisible(True)
        chart.legend().setAlignment(Qt.AlignBottom)

        chartView = QChartView(chart)
        self.setCentralWidget(chartView)
Example #30
0
class QtBarChart(QChartView):
    def __init__(self, spec):
        super().__init__(None)
        self.spec = spec
        self.chart = QChart()
        # self.chart.setTitle(str(self.spec.variables))
        self.chart.legend().hide()
        self.mainset = QBarSet("")
        self.mainset.append([0 for i in range(len(spec.variables))])
        self.mainset.setColor(
            QColor(spec.color[0], spec.color[1], spec.color[2]))
        self.series = QBarSeries()
        self.series.append(self.mainset)

        self.setMinimumWidth(400)
        self.setMinimumHeight(230)

        self.axis_x = QBarCategoryAxis()
        self.axis_y = QValueAxis()
        self.axis_x.append(spec.variables)
        self.chart.addSeries(self.series)
        self.chart.setAxisX(self.axis_x, self.series)
        self.chart.setAxisY(self.axis_y, self.series)

        self.setChart(self.chart)
        self.setRenderHint(QPainter.Antialiasing)

        self._updates_per_second = 10
        self._dataset = []

    def clear(self):
        self._dataset = []

    def update_data(self, dataset):
        data = []
        for d in dataset:
            data.append(d)
        self._dataset = data

    def redraw(self):
        if len(self._dataset) > 0:
            for i in range(len(self._dataset)):
                self.mainset.replace(i, self._dataset[i])
            self.axis_y.setRange(0, max(self._dataset))