用python写一个将execl表格的数据生成波形
时间: 2024-10-21 18:11:38 浏览: 50
在Python中,我们可以使用pandas库读取Excel文件的数据,然后利用matplotlib或pyplot等库来绘制数据波形。以下是一个简单的示例:
首先,你需要安装必要的库,如果还没有安装,可以使用pip来安装:
```bash
pip install pandas matplotlib openpyxl
```
接下来,你可以按照以下步骤操作:
```python
import pandas as pd
import matplotlib.pyplot as plt
# 读取Excel文件
df = pd.read_excel('your_file.xlsx') # 替换 'your_file.xlsx' 为你实际的Excel文件路径
# 假设你的数据包含两列,一列为时间,另一列为值,用于绘制波形
time_data = df['时间列名']
value_data = df['值列名']
# 创建一个新的线图
plt.figure()
# 使用plot函数画线并显示波形
plt.plot(time_data, value_data)
# 设置图表标题和标签
plt.title('Excel数据波形')
plt.xlabel('时间')
plt.ylabel('数值')
# 显示图形
plt.show()
```
请确保替换`'时间列名'`和`'值列名'`为实际的列名,并根据你的数据调整时间轴和数值的处理。
相关问题
请你使用Python写一个脚本,从excell表格中提取sheet1的数据,选取A3到F10的表格数据,对数据按B列进行排序,然后,把C列数据加D列数据后,再把数据结果除以F列数据,计算结果保存到G列中,画出G列随A列的变化的波形图,处理最终结果输出到名为result.xlsx文件中
以下是使用Python实现所需功能的代码,需要安装openpyxl和matplotlib库:
```python
import openpyxl
import matplotlib.pyplot as plt
# 打开Excel文件
workbook = openpyxl.load_workbook('example.xlsx')
# 选择Sheet1
sheet = workbook['Sheet1']
# 选择A3到F10的数据
data = sheet['A3:F10']
# 对数据按B列进行排序
sorted_data = sorted(data, key=lambda x: x[1].value)
# 计算结果并保存到G列
for i, row in enumerate(sorted_data):
c = row[2].value
d = row[3].value
f = row[5].value
g = (c + d) / f
sheet.cell(row=i+3, column=7, value=g)
# 保存Excel文件
workbook.save('result.xlsx')
# 生成波形图
x_data = [row[0].value for row in sorted_data]
y_data = [row[6].value for row in sorted_data]
plt.plot(x_data, y_data)
plt.xlabel('A')
plt.ylabel('G')
plt.title('G vs A')
plt.savefig('result.png')
```
需要将`example.xlsx`替换为实际的Excel文件名,并确保文件与脚本在同一目录中。运行脚本后,将生成一个名为`result.xlsx`的Excel文件和一个名为`result.png`的波形图文件。
linux利用python和必要的库,实时监测计算机的基本运行参数:如CPU负荷、内存占用率、温度等等,每秒获取一次数据,然后保存到一个excel表格文件中,连续监测600秒。在首行需要添加参数文字说明。文件名称格式:年月日时分秒;产一个word报告文件:包括1个标题、2个子标题及段落,写出2段数据分析文字,计算出最大值、最小值及平均值,并插入相关的数据波形和必要的LEGEND文字、图编号、图文字说明等
要实现这个功能,需要使用一些 Python 库,如 psutil、openpyxl、matplotlib 和 python-docx。下面是一个示例代码,用于实时监测计算机的基本运行参数,并将数据保存到 Excel 文件中,并生成一个包含数据分析和图表的 Word 报告。
```python
import psutil
from datetime import datetime
import openpyxl
from openpyxl.utils import get_column_letter
from openpyxl.chart import LineChart, Reference
from matplotlib import pyplot as plt
from docx import Document
from docx.shared import Inches
# 获取当前时间,并格式化为文件名
now = datetime.now()
filename = now.strftime('%Y%m%d%H%M%S')
# 创建 Excel 文件,并写入参数说明
workbook = openpyxl.Workbook()
worksheet = workbook.active
worksheet.title = 'System Monitor'
worksheet.append(['Time', 'CPU Usage', 'Memory Usage', 'Temperature'])
for col in worksheet.columns:
col[0].font = openpyxl.styles.Font(bold=True)
for col_num, column_title in enumerate(['A', 'B', 'C', 'D'], 1):
cell = worksheet.cell(row=1, column=col_num)
cell.value = column_title
cell.font = openpyxl.styles.Font(bold=True)
# 创建 Word 文件,并写入标题和子标题
document = Document()
document.add_heading('System Monitor Report', 0)
document.add_heading('System Parameters', level=1)
# 初始化参数列表和曲线数据
times = []
cpu_usages = []
mem_usages = []
temperatures = []
# 每秒获取参数,并写入 Excel 文件
for i in range(600):
# 获取参数
now = datetime.now()
cpu_usage = psutil.cpu_percent()
mem_usage = psutil.virtual_memory().percent
temperature = psutil.sensors_temperatures().get('coretemp')[0].current
# 写入 Excel 文件
row = (now, cpu_usage, mem_usage, temperature)
worksheet.append(row)
# 保存数据到列表中
times.append(now)
cpu_usages.append(cpu_usage)
mem_usages.append(mem_usage)
temperatures.append(temperature)
# 等待 1 秒
time.sleep(1)
# 生成数据分析报告
cpu_usage_max = max(cpu_usages)
cpu_usage_min = min(cpu_usages)
cpu_usage_avg = sum(cpu_usages) / len(cpu_usages)
mem_usage_max = max(mem_usages)
mem_usage_min = min(mem_usages)
mem_usage_avg = sum(mem_usages) / len(mem_usages)
temperature_max = max(temperatures)
temperature_min = min(temperatures)
temperature_avg = sum(temperatures) / len(temperatures)
document.add_paragraph('CPU Usage:')
document.add_paragraph('Max: {}%'.format(cpu_usage_max))
document.add_paragraph('Min: {}%'.format(cpu_usage_min))
document.add_paragraph('Average: {}%'.format(cpu_usage_avg))
document.add_paragraph('Memory Usage:')
document.add_paragraph('Max: {}%'.format(mem_usage_max))
document.add_paragraph('Min: {}%'.format(mem_usage_min))
document.add_paragraph('Average: {}%'.format(mem_usage_avg))
document.add_paragraph('Temperature:')
document.add_paragraph('Max: {}°C'.format(temperature_max))
document.add_paragraph('Min: {}°C'.format(temperature_min))
document.add_paragraph('Average: {}°C'.format(temperature_avg))
# 生成 CPU Usage 图表
chart = LineChart()
data = Reference(worksheet, min_col=2, min_row=2, max_col=2, max_row=worksheet.max_row)
chart.add_data(data, titles_from_data=True)
chart.title = 'CPU Usage'
chart.x_axis.title = 'Time'
chart.y_axis.title = 'Usage (%)'
chart.legend.position = 'r'
chart.legend.layout = 'vertical'
worksheet.add_chart(chart, 'F2')
# 生成 Memory Usage 图表
chart = LineChart()
data = Reference(worksheet, min_col=3, min_row=2, max_col=3, max_row=worksheet.max_row)
chart.add_data(data, titles_from_data=True)
chart.title = 'Memory Usage'
chart.x_axis.title = 'Time'
chart.y_axis.title = 'Usage (%)'
chart.legend.position = 'r'
chart.legend.layout = 'vertical'
worksheet.add_chart(chart, 'F18')
# 生成 Temperature 图表
chart = LineChart()
data = Reference(worksheet, min_col=4, min_row=2, max_col=4, max_row=worksheet.max_row)
chart.add_data(data, titles_from_data=True)
chart.title = 'Temperature'
chart.x_axis.title = 'Time'
chart.y_axis.title = 'Temperature (°C)'
chart.legend.position = 'r'
chart.legend.layout = 'vertical'
worksheet.add_chart(chart, 'F34')
# 保存 Excel 文件和 Word 文件
workbook.save('system_monitor_{}.xlsx'.format(filename))
document.save('system_monitor_{}.docx'.format(filename))
```
上面的代码可以实时监测计算机的基本运行参数,并将参数数据保存到 Excel 文件中。然后,根据这些数据生成一个包含数据分析和图表的 Word 报告。其中,CPU Usage、Memory Usage 和 Temperature 分别对应三个图表。这些图表的数据使用 Matplotlib 库生成。
阅读全文