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

如何修改图表X轴刻度、文本及时间列表格式?

时间轴格式与刻度调整方案

现有图表X轴代表时间维度,当前时间列表为:

t_list = [13264,13273,13.279,13.301...]

需将时间列表调整为:

t_list = [13.264,13.643,13.689,13.701...]

同时设置X轴刻度增量为0.1,且X轴文本显示为带“1:”前缀、仅保留一位小数的格式(如1:13.1、1:13.2等),如何实现?

实现步骤(以Matplotlib为例)

  • 第一步:修正时间列表数值
    观察原列表与目标列表的对应关系,原数值中大于1000的数需除以1000(如13264 → 13.264),已为小数的数值保持不变,用列表推导式快速处理:

    # 修正时间列表
    t_list = [x / 1000 if x > 1000 else x for x in [13264,13273,13.279,13.301]]
    
  • 第二步:设置X轴刻度增量为0.1
    使用MultipleLocator指定刻度间隔,确保每0.1显示一个刻度:

    import matplotlib.pyplot as plt
    from matplotlib.ticker import MultipleLocator, FuncFormatter
    
    # 假设已有绘图数据y_list
    plt.plot(t_list, y_list)
    ax = plt.gca()
    # 设置X轴主刻度间隔为0.1
    ax.xaxis.set_major_locator(MultipleLocator(0.1))
    
  • 第三步:自定义X轴文本格式
    用FuncFormatter定义刻度标签的显示规则,添加“1:”前缀并保留一位小数:

    # 定义格式化函数
    def format_x_tick(x, pos):
        return f"1:{x:.1f}"
    
    # 应用格式化规则到X轴
    ax.xaxis.set_major_formatter(FuncFormatter(format_x_tick))
    

完整示例代码

import matplotlib.pyplot as plt
from matplotlib.ticker import MultipleLocator, FuncFormatter

# 原始时间列表
original_t = [13264,13273,13.279,13.301]
# 修正后的时间列表
t_list = [x / 1000 if x > 1000 else x for x in original_t]
# 示例y轴数据
y_list = [2, 5, 3, 7]

plt.plot(t_list, y_list)
ax = plt.gca()

# 设置X轴刻度间隔为0.1
ax.xaxis.set_major_locator(MultipleLocator(0.1))

# 设置X轴标签格式
def format_x_tick(x, pos):
    return f"1:{x:.1f}"

ax.xaxis.set_major_formatter(FuncFormatter(format_x_tick))

plt.xlabel("时间")
plt.ylabel("数值")
plt.show()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 02:27:42