龙空技术网

python 绘制各种统计图形(折线图、柱状图、饼状图、散点图)

ICT工匠 532

前言:

此刻同学们对“python画折线统计图”都比较注意,朋友们都需要了解一些“python画折线统计图”的相关内容。那么小编也在网络上网罗了一些关于“python画折线统计图””的相关文章,希望朋友们能喜欢,大家快快来学习一下吧!

下面代码使用了两个主要的库:PyQt5和Matplotlib。PyQt5是一个用于创建图形用户界面(GUI)的Python库。它提供了丰富的界面组件,可以用来构建桌面应用程序。在示例中,我们使用了QMainWindow类作为主窗口,并在其中添加了一个Matplotlib画布部件。Matplotlib是一个强大的绘图库,用于创建各种类型的图表和可视化。它提供了多种常用的绘图函数和工具,使得用户能够轻松地生成各种样式的图形。在示例中,我们使用了Figure、FigureCanvas和Axes来创建和绘制不同类型的图表。示例代码分别创建了四个窗口部件,即折线图窗口(LineChartWidget)、柱状图窗口(BarChartWidget)、饼状图窗口(PieChartWidget)和散点图窗口(ScatterChartWidget)。每个窗口部件都继承自QMainWindow,并包含一个Matplotlib画布部件。在每个窗口部件的初始化过程中,首先创建了一个Matplotlib Figure实例,然后将该实例传递给FigureCanvas构造函数,创建了一个Matplotlib画布部件。接下来,在每个窗口部件的plot_xxx_chart方法中,使用Figure实例创建一个子图(Axes),并根据数据绘制相应的图表。最后,使用FigureCanvas的draw方法重新绘制画布,以显示最新的图表。通过使用PyQt5和Matplotlib库,我们可以将Matplotlib的强大绘图功能与PyQt5的灵活界面设计结合起来,实现了在GUI应用程序中绘制各种类型的图表import sysimport randomfrom PyQt5.QtWidgets import QApplication, QMainWindow, QSizePolicyfrom matplotlib.backends.backend_qt5agg import FigureCanvasQTAgg as FigureCanvasfrom matplotlib.figure import Figureclass LineChartWidget(QMainWindow):    def __init__(self):        super().__init__()        # 创建 Matplotlib 图形实例        self.figure = Figure()        # 创建 Matplotlib 画布部件并设置其父级        self.canvas = FigureCanvas(self.figure)        self.setCentralWidget(self.canvas)        # 绘制折线图        self.plot_line_chart()    def plot_line_chart(self):        # 清空图形并添加子图        self.figure.clear()        ax = self.figure.add_subplot(111)        # 生成随机数据        x = range(10)        y = [random.randint(0, 10) for i in range(10)]        # 绘制折线图        ax.plot(x, y, '-o')        # 设置图表标题和轴标签        ax.set_title('折线图')        ax.set_xlabel('X 轴')        ax.set_ylabel('Y 轴')        # 重新绘制画布        self.canvas.draw()class BarChartWidget(QMainWindow):    def __init__(self):        super().__init__()        # 创建 Matplotlib 图形实例        self.figure = Figure()        # 创建 Matplotlib 画布部件并设置其父级        self.canvas = FigureCanvas(self.figure)        self.setCentralWidget(self.canvas)        # 绘制柱状图        self.plot_bar_chart()    def plot_bar_chart(self):        # 清空图形并添加子图        self.figure.clear()        ax = self.figure.add_subplot(111)        # 生成随机数据        x = range(10)        y = [random.randint(0, 10) for i in range(10)]        # 绘制柱状图        ax.bar(x, y)        # 设置图表标题和轴标签        ax.set_title('柱状图')        ax.set_xlabel('X 轴')        ax.set_ylabel('Y 轴')        # 重新绘制画布        self.canvas.draw()class PieChartWidget(QMainWindow):    def __init__(self):        super().__init__()        # 创建 Matplotlib 图形实例        self.figure = Figure()        # 创建 Matplotlib 画布部件并设置其父级        self.canvas = FigureCanvas(self.figure)        self.setCentralWidget(self.canvas)        # 绘制饼状图        self.plot_pie_chart()    def plot_pie_chart(self):        # 清空图形并添加子图        self.figure.clear()        ax = self.figure.add_subplot(111)        # 生成随机数据        labels = ['A', 'B', 'C', 'D', 'E']        sizes = [random.randint(1, 10) for i in range(5)]        # 绘制饼状图        ax.pie(sizes, labels=labels, autopct='%1.1f%%', startangle=90)        # 设置图表标题        ax.set_title('饼状图')        # 重新绘制画布        self.canvas.draw()class ScatterChartWidget(QMainWindow):    def __init__(self):        super().__init__()        # 创建 Matplotlib 图形实例        self.figure = Figure()        # 创建 Matplotlib 画布部件并设置其父级        self.canvas = FigureCanvas(self.figure)        self.setCentralWidget(self.canvas)        # 绘制散点图        self.plot_scatter_chart()    def plot_scatter_chart(self):        # 清空图形并添加子图        self.figure.clear()        ax = self.figure.add_subplot(111)        # 生成随机数据        x = [random.randint(0, 10) for i in range(10)]        y = [random.randint(0, 10) for i in range(10)]        # 绘制散点图        ax.scatter(x, y)        # 设置图表标题和轴标签        ax.set_title('散点图')        ax.set_xlabel('X 轴')        ax.set_ylabel('Y 轴')        # 重新绘制画布        self.canvas.draw()if __name__ == '__main__':    app = QApplication(sys.argv)    # 创建折线图部件    line_chart = LineChartWidget()    line_chart.setWindowTitle('折线图')    line_chart.setMinimumSize(400, 300)    line_chart.show()
    # 创建柱状图部件    bar_chart = BarChartWidget()    bar_chart.setWindowTitle('柱状图')    bar_chart.setMinimumSize(400, 300)    bar_chart.show()
    # 创建饼状图部件    pie_chart = PieChartWidget()    pie_chart.setWindowTitle('饼状图')    pie_chart.setMinimumSize(400, 300)    pie_chart.show()
    # 创建散点图部件    scatter_chart = ScatterChartWidget()    scatter_chart.setWindowTitle('散点图')    scatter_chart.setMinimumSize(400, 300)    scatter_chart.show()
    sys.exit(app.exec_())

标签: #python画折线统计图