前言:
此刻同学们对“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画折线统计图