You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Matplotlib绘制时间与浓度关系图?求可运行代码

解决方法:用Matplotlib绘制时间与浓度的关系图

没问题,我来帮你搞定这个!首先咱们得先把你的数据整理成正确的格式(或者直接在代码里处理原始数据,这样更省事),然后用Matplotlib画出时间和浓度的关系图。下面是完整的可运行代码,包含了数据处理和绘图的全部步骤:

第一步:整理数据格式

你的原始数据是一串用空格分隔的时间-浓度对,正确的CSV格式应该每行存一组数据,像这样:

18-10-2019 17:18,31.827753
18-10-2019 17:19,61.8619
18-10-2019 17:20,64.44997
18-10-2019 17:21,64.72129
18-10-2019 17:22,56.089733

不过为了让你直接运行代码不用额外创建文件,我把数据直接写在了代码里,你可以直接复制运行:

完整可运行代码

import pandas as pd
import matplotlib.pyplot as plt

# 把你的原始数据整理成列表,每个元素是(时间字符串, 浓度值)
raw_data = [
    ("18-10-2019 17:18", 31.827753),
    ("18-10-2019 17:19", 61.8619),
    ("18-10-2019 17:20", 64.44997),
    ("18-10-2019 17:21", 64.72129),
    ("18-10-2019 17:22", 56.089733)
]

# 转换成DataFrame,方便后续处理时间和绘图
df = pd.DataFrame(raw_data, columns=["时间", "浓度"])

# 关键步骤:把时间字符串解析成datetime类型,指定格式为"日-月-年 时:分"
# 这一步是避免报错的核心,Matplotlib需要正确的时间格式才能正常渲染轴
df["时间"] = pd.to_datetime(df["时间"], format="%d-%m-%Y %H:%M")

# 开始绘制折线图
plt.figure(figsize=(10, 6))  # 设置图形的宽高,让图表更清晰
plt.plot(df["时间"], df["浓度"], marker='o', linestyle='-', color='#1f77b4', linewidth=2)

# 添加图表标题和轴标签
plt.title("时间与浓度变化趋势", fontsize=14, pad=15)
plt.xlabel("采样时间", fontsize=12)
plt.ylabel("浓度值", fontsize=12)

# 旋转x轴的时间标签,避免重叠在一起
plt.xticks(rotation=45, ha='right')

# 自动调整布局,防止标签被截断
plt.tight_layout()

# 显示图表
plt.show()

如果你想从CSV文件读取数据

如果你已经把数据保存成了上面的CSV格式(比如文件名叫concentration_data.csv),可以把代码里的raw_data和df部分替换成下面的代码:

# 从CSV文件读取数据,同时直接解析时间列
df = pd.read_csv(
    "concentration_data.csv",
    names=["时间", "浓度"],  # 指定列名
    parse_dates=["时间"],  # 告诉pandas要解析时间列
    date_parser=lambda x: pd.to_datetime(x, format="%d-%m-%Y %H:%M")  # 指定时间格式
)

为什么你之前可能报错?

大概率是因为时间格式没有正确解析:Matplotlib无法直接识别字符串格式的时间,必须先转换成datetime类型;另外如果你的CSV格式不对(比如所有数据都在一行),读取时会导致列数不匹配,也会报错。上面的代码已经帮你处理了这两个问题。

内容的提问来源于stack exchange,提问作者Amish Bharti

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.14 08:26:31