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

Matplotlib自定义Y轴刻度与对应X标记及虚线添加问题

实现自定义刻度与点标记的Matplotlib曲线绘制

没问题,我来帮你调整这段Matplotlib代码,完美实现你想要的效果~咱们先理清楚需求细节:你需要基于方程 $y = \frac{x}{T-x}$ 绘图,自定义Y轴刻度为3、2、$\frac{1}{3}$,对应X轴刻度为 $\frac{3T}{4}$、$\frac{2T}{3}$、$\frac{T}{4}$,还要用虚线标记这三个对应点。

首先纠正一个小细节:根据方程推导,当Y=$\frac{1}{3}$时,对应的X应该是$\frac{T}{4}$(不是你写的$\frac{1}{3}$),另外两个点的坐标是对的,我会在代码里用正确的坐标。

下面是完整的实现代码,每一步都加了注释:

import numpy as np
import matplotlib.pyplot as plt

# 定义常数T,你可以替换成任意需要的数值
T = 30

# 生成X轴数据:从0到接近T的位置(避免分母为0导致无穷大),用linspace生成更平滑的曲线
x = np.linspace(0, T * 0.99, 100)
# 根据方程计算Y轴数据
y = x / (T - x)

# 绘制主曲线,用LaTeX格式显示方程标签,更专业
plt.plot(x, y, label=r'$y = \frac{x}{T - x}$', linewidth=2)

# ---------------------- 自定义Y轴刻度 ----------------------
# 设置你需要的Y轴刻度值
y_ticks = [1/3, 2, 3]
# 给刻度设置格式化标签(用LaTeX渲染分数,更美观)
plt.yticks(y_ticks, [r'$\frac{1}{3}$', '2', '3'])
# 调整Y轴范围,让刻度不贴紧顶部
plt.ylim(0, 3.5)

# ---------------------- 自定义X轴刻度 ----------------------
# 根据方程计算对应Y刻度的X值
x_ticks = [T/4, 2*T/3, 3*T/4]
# 设置X轴刻度标签,同样用LaTeX渲染
x_labels = [r'$\frac{T}{4}$', r'$\frac{2T}{3}$', r'$\frac{3T}{4}$']
plt.xticks(x_ticks, x_labels)
# 设置X轴范围从0到T
plt.xlim(0, T)

# ---------------------- 标记对应点与虚线 ----------------------
# 定义三个对应点的正确坐标
points = [(T/4, 1/3), (2*T/3, 2), (3*T/4, 3)]

for x_p, y_p in points:
    # 用红色圆点标记点,zorder确保点在曲线上方
    plt.scatter(x_p, y_p, color='red', s=50, zorder=5)
    # 绘制水平虚线到Y轴
    plt.hlines(y=y_p, xmin=0, xmax=x_p, color='gray', linestyle='--', alpha=0.7)
    # 绘制垂直虚线到X轴
    plt.vlines(x=x_p, ymin=0, ymax=y_p, color='gray', linestyle='--', alpha=0.7)

# 添加轴标签和图例
plt.xlabel('X', fontsize=12)
plt.ylabel('Y', fontsize=12)
plt.legend(fontsize=12)
# 可选:添加浅色网格,增强可读性
plt.grid(alpha=0.3)

# 显示图形
plt.show()

代码说明:

  • 用linspace代替arange生成X数据,能得到更平滑的曲线;
  • 用LaTeX格式渲染刻度标签和方程,让数学符号更规范美观;
  • 通过zorder参数确保标记点显示在曲线上方,不会被遮挡;
  • 用hlines和vlines绘制虚线,清晰展示点与坐标轴刻度的对应关系;
  • 你可以直接修改T的值,所有刻度和点会自动适配新的常数。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 06:47:00