gpt4 book ai didi

python - 为什么水平线在 sage/matplotlib 中仅部分显示?

转载 作者:行者123 更新时间:2023-12-01 01:09:44 25 4
gpt4 key购买 nike

我有以下 sage 代码,可生成函数的 matplotlib 图形:

stupid that I can't use LATEX on this site and have to upload a gif :(

我还希望绘制当 a = 4.0001 时的点 (a, f(a)),以及从 y 轴穿过该点的红色虚线。这是我为此编写的代码:

f(x) = (x**2 - 2*x - 8)/(x - 4)
g = plot(f, x, -1, 5)

a = 4.0001
L = plot(f(a), color='red', linestyle="--")
pt = point((a, f(a)), pointsize=25)

g += pt + L
g.show(xmin=0, ymin=0)

但是,这将输出以下图形,其中水平线仅部分显示(它不与点 pt 相交):

graph of function f(x) = (x**2 - 2*x - 8)/(x - 4)

为什么这条水平线仅部分显示?

我需要做什么才能正确绘制常量函数y = f(4.0001)的直线?

最佳答案

最好使用 matplotlib 的 hlines 函数,您只需指定 y 值以及 xminxmax,即

import matplotlib.pyplot as plt
import numpy as np

def f(x):
return (x**2 - 2*x - 8)/(x - 4)

x = np.linspace(-5,5, 100)
a = 4.001

plt.plot(x, f(x), -1, 5, linestyle='-')
plt.hlines(6, min(x), max(x), color='red', linestyle="--", linewidth=1)
plt.scatter(a, f(a))
plt.xlim([0, plt.xlim()[1]])
plt.ylim([0, plt.ylim()[1]])
plt.show()

这会给你

HLine with function

<小时/>

请注意,为了在整个示例中直接使用 matplotlib 而进行了一些调整 - 它们并不重要。

关于python - 为什么水平线在 sage/matplotlib 中仅部分显示?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54975251/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com