pyqt5读取excel文件并绘图代码实现
时间: 2023-05-15 16:06:14 浏览: 361
读取excel文件,并进行绘图
3星 · 编辑精心推荐
以下是一个使用 Pyqt5 读取 Excel 文件并绘制图表的示例代码:
```python
import sys
import pandas as pd
from PyQt5.QtWidgets import QApplication, QMainWindow, QFileDialog
from PyQt5.QtChart import QChart, QChartView, QBarSet, QBarSeries, QBarCategoryAxis
from PyQt5.QtGui import QPainter
class MainWindow(QMainWindow):
def __init__(self):
super().__init__()
# 创建一个菜单栏
menubar = self.menuBar()
file_menu = menubar.addMenu('文件')
# 添加打开文件的操作
open_file_action = file_menu.addAction('打开文件')
open_file_action.triggered.connect(self.open_file)
# 创建一个图表视图
self.chart_view = QChartView(self)
self.setCentralWidget(self.chart_view)
def open_file(self):
# 打开文件对话框
file_name, _ = QFileDialog.getOpenFileName(self, '打开文件', '', 'Excel 文件 (*.xlsx *.xls)')
if file_name:
# 读取 Excel 文件
df = pd.read_excel(file_name)
# 创建一个柱状图
chart = QChart()
chart.setTitle('Excel 数据')
chart.setAnimationOptions(QChart.SeriesAnimations)
# 创建一个柱状图数据集
bar_set = QBarSet('数据')
for i in range(len(df)):
bar_set.append(df.iloc[i][0])
# 将数据集添加到柱状图中
bar_series = QBarSeries()
bar_series.append(bar_set)
chart.addSeries(bar_series)
# 创建一个柱状图类别轴
category_axis = QBarCategoryAxis()
category_axis.append(df.columns[0])
chart.createDefaultAxes()
chart.setAxisX(category_axis, bar_series)
# 显示图表
self.chart_view.setChart(chart)
if __name__ == '__main__':
app = QApplication(sys.argv)
window = MainWindow()
window.show()
sys.exit(app.exec_())
```
这个程序使用 Pandas 库读取 Excel 文件,并使用 PyQt5.QtChart 库绘制柱状图。当用户点击菜单栏中的“打开文件”选项时,程序会打开一个文件对话框,让用户选择要打开的 Excel 文件。然后,程序会读取文件中的数据,并将其绘制成柱状图显示在窗口中。
阅读全文