Пример #1
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)
Пример #2
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)
Пример #3
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
Пример #4
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)
Пример #5
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)
Пример #6
0
    def __init__(self, track, parent=None):
        QChartView.__init__(self, parent)
        self.track = track
        self.points = jump_analysis(list(track.time_position_map.values()))
        self.bar_set = QBarSet("Time Points")
        for p in self.points:
            self.bar_set.append(p)

        self.bar_set.clicked.connect(self.__bar_clicked)

        self.bar_series = QBarSeries()
        self.bar_series.append(self.bar_set)

        self.chart = QChart()
        self.chart.addSeries(self.bar_series)
        self.chart.setTitle(f'Jump Analysis for {track.name}')
        self.chart.setAnimationOptions(QChart.SeriesAnimations)

        self.axis = QBarCategoryAxis()
        self.axis.append([str(i) for i in range(1, len(self.points)+1)])

        self.chart.createDefaultAxes()
        self.chart.setAxisX(self.axis, self.bar_series)

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

        self.setChart(self.chart)
        self.setRenderHint(QtGui.QPainter.Antialiasing)
Пример #7
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 = QBarSeries(self._chart)
        self._chart.addSeries(self._series)
        self._chart.createDefaultAxes()  # 创建默认的轴
        self._axis_x = QBarCategoryAxis(self._chart)
        self._axis_x.append(self.categories)
        self._axis_y = QValueAxis(self._chart)
        self._axis_y.setTitleText("任务数")
        self._axis_y.setRange(0, 10)
        self._chart.setAxisX(self._axis_x, self._series)
        self._chart.setAxisY(self._axis_y, self._series)
        # chart的图例
        legend = self._chart.legend()
        legend.setVisible(True)

        self.setChart(self._chart)
Пример #8
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()
Пример #9
0
    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)
Пример #10
0
    def __init__(self, parent=None):
        QWidget.__init__(self, parent)

        try:
            self.maxVal = float(list(data.values())[0])

            if self.maxVal * 60 < 1:
                self.set0 = QBarSet('Seconds')
                self.set0.append(
                    [round(float(x) * 60 * 60, 1) for x in data.values()])
                self.maxVal = round(self.maxVal * 60 * 60, 1)
            elif self.maxVal < 1:
                self.set0 = QBarSet('Minutes')
                self.set0.append(
                    [round(float(x) * 60, 1) for x in data.values()])
                self.maxVal = round(self.maxVal * 60, 1)
            else:
                self.set0 = QBarSet('Hours')
                self.set0.append([round(float(x), 1) for x in data.values()])
                self.maxVal = round(self.maxVal, 1)
        except:
            self.set0 = QBarSet('NotEnoughData')

        self.series = QBarSeries()
        self.series.append(self.set0)

        self.chart = QChart()
        self.chart.setTheme(QChart.ChartThemeHighContrast)
        self.chart.addSeries(self.series)
        self.chart.setTitle(header)
        self.chart.setAnimationOptions(QChart.SeriesAnimations)

        months = (data.keys())

        self.axisX = QBarCategoryAxis()
        self.axisX.append(months)

        self.axisY = QValueAxis()
        try:
            self.axisY.setRange(0, self.maxVal)
            if self.maxVal > 19:
                self.axisY.setTickCount(15)
            elif self.maxVal > 10:
                self.axisY.setTickCount(10)
            else:
                self.axisY.setTickCount(5)
            #axisY.setTickInterval(1)
            #axisY.applyNiceNumbers()
        except:
            self.chart.setTitle("No Data")
        self.chart.addAxis(self.axisX, Qt.AlignBottom)
        self.chart.addAxis(self.axisY, Qt.AlignLeft)

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

        self.chartView = QChartView(self.chart)
        self.vert_l = QVBoxLayout()
        self.vert_l.addWidget(self.chartView)
        self.setLayout(self.vert_l)
Пример #11
0
    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 = []
Пример #12
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)
Пример #14
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)
Пример #15
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)
Пример #16
0
    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)
Пример #17
0
 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()
Пример #18
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()
Пример #19
0
 def __init__(self, parent=None):
     super(QChartView, self).__init__(parent=parent)
     self.chart = QChart()
     self.setChart(self.chart)
     self.chart.legend().setVisible(True)
     self.chart.legend().setAlignment(Qt.AlignBottom)
     self.chart.setAnimationOptions(QChart.SeriesAnimations)
     self.series = QBarSeries(self)
     self.categoryAxis = QBarCategoryAxis(self)
Пример #20
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)
Пример #21
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)
Пример #22
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_())
Пример #23
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)
 def __init__(self):
     super(HistoryChart, self).__init__()
     self.pen = QColor(Qt.black)
     self.categories = ["'" + str(i) for i in range(82, 90)]
     font = QFont()
     font.setPixelSize(10)
     self.axisX = QBarCategoryAxis()
     self.axisX.setLabelsFont(font)
     self.axisX.append(self.categories)
     self.addAxis(self.axisX, Qt.AlignBottom)
     self.legend().setVisible(False)
     self.layout().setContentsMargins(0, 0, 0, 0)
     self.setMargins(QMargins(5, 5, 5, 5))
     self.setBackgroundRoundness(0)
Пример #25
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
Пример #26
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)
Пример #27
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)
Пример #28
0
    def DT(self):
        self.ind = 1
        gf = Grafik_2()
        jml = gf.jumlah_per_pantai()
        jml_pantai = []
        for i in range(len(jml)):
            jml_pantai.append(jml[i])

        value = []
        hasil = gf.hasil_dayatarik()
        for i in range(len(hasil)):
            value.append((hasil[i] / jml_pantai[i]) * 100)
        sorting = sorted(value, reverse=True)
        index = np.argsort(value)[::-1]
        label_sorting = []
        for i in index:
            label_sorting.append(self.label_pantai[i])

        set0 = QBarSet('Daya Tarik')
        set0.setColor(QtGui.QColor("blue"))
        for i in range(len(hasil)):
            set0.append(sorting)

        series = QBarSeries()
        series.append(set0)
        series.setLabelsVisible(True)
        series.setLabelsPosition(QAbstractBarSeries.LabelsInsideEnd)
        self.chart = QChart()
        self.chart.addSeries(series)
        self.chart.setTitle('Grafik Prosentase Ulasan Pantai')
        self.chart.setAnimationOptions(QChart.SeriesAnimations)
        axisX = QBarCategoryAxis()
        axisX.setLabelsAngle(-90)

        axisY = QValueAxis()
        axisY.setTitleText("Prosentase (%)")
        self.chart.addAxis(axisX, Qt.AlignBottom)
        self.chart.addAxis(axisY, Qt.AlignLeft)
        series.attachAxis(axisY)
        axisY.applyNiceNumbers()
        self.chart.legend().setVisible(True)
        self.chart.legend().setAlignment(Qt.AlignBottom)
        self.chart.createDefaultAxes()
        self.graphicsView.setChart(self.chart)
        self.lims = np.array([0, 10])
        self.onAxisSliderMoved(self.verticalScrollBar.value())
Пример #29
0
    def _create_revision_count_graph(self):
        stats = CollectionStats(self.col)

        categories_labels = list(range(-30, 1, 1))
        data = stats.revision_count_stats()
        data = self._transform_first_column_to_key(data)
        data = self._add_default_value_for_missing_keys(
            data, [0, 0, 0, 0, 0], categories_labels)

        series = QStackedBarSeries(self)
        setLearning = QBarSet("Learning", self)
        [setLearning.append(row[0]) for row in data]
        setYoung = QBarSet("Young", self)
        [setYoung.append(row[1]) for row in data]
        setMature = QBarSet("Mature", self)
        [setMature.append(row[2]) for row in data]
        setLapse = QBarSet("Lapse", self)
        [setLapse.append(row[3]) for row in data]
        setEarly = QBarSet("Early", self)
        [setEarly.append(row[4]) for row in data]

        categories = QBarCategoryAxis()
        categories.setCategories([str(-i) for i in categories_labels])

        series.append(setLearning)
        series.append(setYoung)
        series.append(setMature)
        series.append(setLapse)
        series.append(setEarly)

        chart = QChart()
        chart.addSeries(series)
        chart.createDefaultAxes()
        chart.setAxisX(categories, series)

        chart.setAnimationOptions(QChart.SeriesAnimations)
        chart.setTitle("Number of cards reviewed recently")

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

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

        self.layout.addWidget(chartview)
Пример #30
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()