我应该在 python 中准备一个 x vs y 图。我的数据集由日期 - 时间和温度组成,以每年 15 分钟的间隔记录。假设我有一个月的数据,我试图在 Matplotlib 中绘制它。我得到的图表不是那么清楚,因为 x 轴(数据时间)在整个轴上都被填充了,我没有得到清晰的图片,而 Excel 与 matplotlib 相比给出了一个很好的图表。
我用来打开 30 个单独的每日 csv 数据记录文件并将其连接起来形成一个数据框的代码如下
import pandas as pd
from openpyxl import load_workbook
import tkinter as tk
import datetime
from datetime import datetime
from datetime import time
from tkinter import filedialog
import matplotlib.pyplot as plt
root = tk.Tk()
root.withdraw()
root.call('wm', 'attributes', '.', '-topmost', True)
files = filedialog.askopenfilename(multiple=True)
%gui tk
var = root.tk.splitlist(files)
filePaths = []
for f in var:
df = pd.read_csv(f,skiprows=8, index_col=None, header=0, parse_dates=True, squeeze=True, encoding='ISO-8859–1', names=['Date', 'Time', 'Temperature', 'Humidty']) #,
filePaths.append(df)
df = pd.concat(filePaths, axis=0, join='outer', ignore_index=False, sort=True, verify_integrity=False, levels=None)
df["Time period"] = df["Date"] + df["Time"]
plt.figure()
plt.subplots(figsize=(25,20))
plt.plot('Time period', 'Temperature', data=df, linewidth=2, color='g')
plt.title('Temperature distribution Graph')
plt.xlabel('Time')
plt.grid(True)
数据示例
输出图如下所示:
正如您在输出图中看到的那样,x 轴上的数据点很丰富,而且它不是可读的形式。此外,如果我在几天内加载和连接 .csv 文件,matplotlib 会给出多个图表。
在 Excel/Libre 中绘制的相同数据集给出了一个平滑的图表,x 轴上的日期排列有序,折线图也很完美。
我想重写我的代码来绘制一个类似于在 Excel/Libre 中绘制的图形。请帮忙
慕田峪9158850
相关分类