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

Matplotlib轴刻度值大小修改无效,如何调整刻度大小及图表线宽?

解决Matplotlib ECDF图的刻度大小与线宽问题

问题原因

  • ax.tick_params设置无效:代码顺序错误,plt.show()之后创建了新的空figure,而ax属于之前的figure,且plt.show()默认会关闭当前figure,导致后续设置无法作用到最终保存的图表。
  • 线宽未调整:绘制ECDF曲线时未指定线宽参数。

修正后的完整代码

import numpy as np
import statsmodels.api as sm
import matplotlib.pyplot as plt

price_values = [[4.2],
    [4.1],
    [4],
    [3.8],
    [3.9],
    [4.2],
    [4.5],
    [4.8],
    [5.2],
    [5.2],
    [5.2],
    [5.6],
    [5.2],
    [5.1],
    [5.3],
    [6],
    [6.2],
    [6.3],
    [6.2],
    [6],
    [5.5] ,
    [5.2],
    [4.8],
    [4.6]]

sample = np.asarray(price_values).squeeze()
ecdf = sm.distributions.ECDF(sample)

# 提前设置figure尺寸与边框线宽
plt.figure(figsize=(7, 4), linewidth=3)

x = np.linspace(min(sample), max(sample))
y = ecdf(x)
# 绘制ECDF时指定线宽
plt.step(x, y, linewidth=3)

ax = plt.gca()
ax.set_xlabel("Price [Cent/kWh]", fontsize=14, labelpad=8)
ax.set_ylabel("Cumulative frequency", fontsize=14, labelpad=8)
# 在plt.show()之前设置刻度文字大小
ax.tick_params(axis='both', which='major', labelsize=12)  # 140数值过大易重叠,示例改为12,可按需调整

plt.show()
# 直接保存当前已绘制的figure,无需新建空figure
plt.savefig('C:/Users/User1/Desktop/Diagramm_EDF.png', edgecolor='black', dpi=300, bbox_inches='tight')

关键改动说明

  • 增大ECDF线宽:在plt.step()中添加linewidth参数,数值可根据需求调整(示例用3)。
  • 修复刻度设置失效:将ax.tick_params()移至plt.show()之前,确保作用到当前正在绘制的图表;注意labelsize=140数值过大,会导致刻度文字重叠,建议改为12-16这类合理数值。
  • 规范figure创建:如果需要设置figure尺寸,在绘图前用plt.figure()初始化,避免后续创建空figure导致所有设置失效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 22:11:05