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

使用matplotlib绘图时触发SyntaxError错误,寻求解决方案

解决Matplotlib可视化中的SyntaxError问题

嘿,我看到你的问题了,这个语法错误其实是两个小细节导致的,咱们一步步来修复:

错误原因分析

  1. 变量名使用了非法字符:你用了date&time作为变量名,&是Python中的逻辑运算符,不能出现在变量名里——Python会误以为你在给运算符赋值,直接触发can't assign to operator的错误。
  2. (报错信息中的)converters参数格式错误:虽然你原代码里写的是正确的字典格式converters={0: ...},但报错信息里显示的是converters=0:mdates...,推测是复制时的笔误,咱们修正代码时确保参数格式合规。

修正后的完整代码

import numpy as np
import datetime
import time
import matplotlib.pyplot as plt
import matplotlib.ticker as mticker
import matplotlib.dates as mdates

# 读取数据时替换非法变量名
data = open('final1.csv','r')
date_time, values = np.genfromtxt(
    data,
    delimiter=',',
    unpack=True,
    converters={0: mdates.bytespdate2num("%d/%m/%Y %H:%M")}
)

plt.gca().xaxis.set_major_locator(mticker.MaxNLocator(10))
plt.gca().xaxis.set_major_formatter(mdates.DateFormatter('%d/%m/%Y %H:%M'))
# 这里同步替换变量名
plt.plot(date_time, values, color='red')
plt.ylabel('Values')
plt.xlabel('Date & Time')  # 标签里可以用&,不影响
plt.gcf().autofmt_xdate()
plt.show()

额外适配提示

如果你使用Python 3,mdates.bytespdate2num可能会遇到字符串编码问题,这时候可以换成自定义转换函数:

def date_converter(s):
    return mdates.datestr2num(s.decode('utf-8'))

然后把converters={0: date_converter}传入genfromtxt,就能更好地处理编码问题啦。

内容的提问来源于stack exchange,提问作者Mushahid Abbasi

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 06:58:55