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_())
class Widget(QWidget): def __init__(self, device_info: QAudioDeviceInfo, parent: QWidget = None) -> None: super().__init__(parent) self.m_chart = QChart() self.m_series = QLineSeries() chart_view = QChartView(self.m_chart) chart_view.setMinimumSize(800, 600) self.m_chart.addSeries(self.m_series) axisX = QValueAxis() axisX.setRange(0, XYSeriesIODevice.sampleCount) axisX.setLabelFormat("%g") axisX.setTitleText("Samples") axisY = QValueAxis() axisY.setRange(-1, 1) axisY.setTitleText("Audio level") self.m_chart.addAxis(axisX, Qt.AlignBottom) self.m_series.attachAxis(axisX) self.m_chart.addAxis(axisY, Qt.AlignLeft) self.m_series.attachAxis(axisY) self.m_chart.legend().hide() self.m_chart.setTitle( f"Data from the microphone ({device_info.deviceName()})") mainLayout = QVBoxLayout(self) mainLayout.addWidget(chart_view) formatAudio = QAudioFormat() formatAudio.setSampleRate(8000) formatAudio.setChannelCount(1) formatAudio.setSampleSize(8) formatAudio.setCodec("audio/pcm") formatAudio.setByteOrder(QAudioFormat.LittleEndian) formatAudio.setSampleType(QAudioFormat.UnSignedInt) self.m_audioInput = QAudioInput(device_info, formatAudio, self) self.m_device = XYSeriesIODevice(self.m_series, self) self.m_device.open(QIODevice.WriteOnly) self.m_audioInput.start(self.m_device)