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

如何使用matplotlib绘制与Excel效果一致的网络统计折线图

问题原因与修正方案
  • 核心问题:你定义的y数组为字符串格式,matplotlib会将其识别为离散分类变量而非连续数值,直接绘图会出现坐标轴数值排序、折线走势异常的问题
  • 次要问题:plt.xticks(x)强制显示全部60个x轴刻度,会导致刻度重叠拥挤,和Excel自动调整刻度间隔的显示逻辑不符

修正后可运行代码

import matplotlib.pyplot as plt
import numpy as np

x = np.array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59])
# 将y从字符串转换为浮点型数值
y = np.array(['0.00', '0.00', '0.00', '0.12', '0.00', '0.00', '0.00', '14.75', '108.56', '78.91', '508.15', '79.66', '147.84', '199.87', '14.02', '10.05', '3411.12', '19735.23', '19929.51', '18428.82', '21727.14', '19716.41', '20295.20', '20283.08', '20088.10', '20155.81', '20108.67', '19954.45', '20316.46', '20045.77', '20233.71', '19981.40', '20230.02', '20099.69', '20000.23', '20234.06', '19763.92', '20458.40', '19626.22', '20542.25', '19821.72', '20443.78', '20109.41', '19918.96', '20223.37', '19933.64', '20023.73', '19655.67', '19890.94', '20590.04', '20158.37', '20001.59', '20011.48', '19785.95', '20550.63', '19687.02', '20025.00', '20478.25', '20124.66', '20148.08'], dtype=np.float64)

plt.plot(x, y)
# 调整x轴刻度间隔,每5个显示一个避免重叠
plt.xticks(x[::5])
# 开启网格匹配Excel默认折线图显示风格
plt.grid(visible=True, linestyle='--', alpha=0.7)
plt.show()

效果说明

运行上述代码后折线走势会和Excel生成的效果完全一致,坐标轴刻度显示也更清晰,额外添加的网格样式也贴合Excel的默认可视化风格。

内容的提问来源于stack exchange,提问作者Florian Berndl

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 02:15:06