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)
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)
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
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)
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, 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)
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)
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()
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 __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)
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 _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)
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)
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)
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)
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(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()
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)
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)
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)
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_())
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)
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
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)
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)
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())
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)
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()