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

如何修改Matplotlib中X轴刻度文本的部分样式(颜色、字号等)

如何单独修改Matplotlib刻度文本中部分内容的样式

你当前用Pandas和Matplotlib生成的X轴刻度里,部分标签包含两行文本(时间+日期),希望仅修改日期部分的外观(如颜色、字号),而非整个刻度标签。由于Matplotlib默认的刻度标签是单一样式的文本对象,无法直接拆分修改,可通过**富文本(Rich Text)**实现需求,以下是具体方案:

方法一:使用HTML富文本

这种方式无需额外依赖,适合快速实现:

import pandas as pd
import matplotlib.pyplot as plt

def xtick_labels(time_range):
    labels = []
    for i in time_range:
        if i.strftime("%H:%M:%S") == "00:00:00":
            # 用HTML标签给日期部分设置样式(红色、小字号)
            label = f"{i.strftime('%H:%M')}<br><span style='color:red; font-size:10px;'>{i.strftime('%Y-%m-%d')}</span>"
        else:
            label = i.strftime("%H:%M")
        labels.append(label)
    return labels

# 确保关闭LaTeX,开启HTML支持
plt.rcParams['text.usetex'] = False
plt.rcParams['text.html'] = True

fig, ax = plt.subplots(figsize=(20, 4))
time_range = pd.date_range('01.01.2020 00:00:00', '01.03.2020 01:00:00', freq='2H')
ax.plot(time_range, len(time_range)*[1])
labels = xtick_labels(time_range)

ax.set_xticks(time_range)
ax.set_xticklabels(labels, fontsize=12)

plt.tight_layout()
plt.show()

方法二:使用LaTeX格式

适合需要更复杂排版的场景,但需系统提前安装LaTeX环境(如TeX Live、MiKTeX):

import pandas as pd
import matplotlib.pyplot as plt

def xtick_labels(time_range):
    labels = []
    for i in time_range:
        if i.strftime("%H:%M:%S") == "00:00:00":
            # LaTeX命令设置日期部分样式(红色、小字号)
            label = f"{i.strftime('%H:%M')}\\\\ \\textcolor{{red}}{{\\fontsize{{8}}{{10}}\\selectfont {i.strftime('%Y-%m-%d')}}}"
        else:
            label = i.strftime("%H:%M")
        labels.append(label)
    return labels

# 开启LaTeX支持
plt.rcParams['text.usetex'] = True

fig, ax = plt.subplots(figsize=(20, 4))
time_range = pd.date_range('01.01.2020 00:00:00', '01.03.2020 01:00:00', freq='2H')
ax.plot(time_range, len(time_range)*[1])
labels = xtick_labels(time_range)

ax.set_xticks(time_range)
ax.set_xticklabels(labels, fontsize=12)

plt.tight_layout()
plt.show()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 17:15:32