为什么在 sage / matplotlib 中只显示部分水平线?
Why is horizontal line only partially displayed in sage / matplotlib?
我有以下 sage
代码生成函数的 matplotlib
图:
我还希望在 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
相交):
为什么这条横线只显示了一部分?
我需要做什么才能正确绘制常数函数的线 y = f(4.0001)
?
最好使用 matplotlib 的 hlines
函数,为此您只需指定 y
值以及 xmin
和 xmax
,即
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()
哪个会给你
请注意,为了在整个示例中直接使用 matplotlib 而进行了一些调整 - 它们并不重要。
Sage 允许用户在绘图时指定 x 值的范围。
如果没有任何指示,它将绘制从 -1 到 1。
在为 -1 到 5 的 x 值绘制 f 之后:
g = plot(f, x, -1, 5)
为什么不绘制常数 f(a) 也从 -1 到 5:
L = plot(f(a), x, -1, 5, color='red', linestyle="--")
从 (0, f(a)) 到 (a, f(a)) 的直线也可以简单地绘制为:
L = line([(0, f(a)), (a, f(a))], color='red', linestyle='--')
我有以下 sage
代码生成函数的 matplotlib
图:
我还希望在 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
相交):
为什么这条横线只显示了一部分?
我需要做什么才能正确绘制常数函数的线 y = f(4.0001)
?
最好使用 matplotlib 的 hlines
函数,为此您只需指定 y
值以及 xmin
和 xmax
,即
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()
哪个会给你
请注意,为了在整个示例中直接使用 matplotlib 而进行了一些调整 - 它们并不重要。
Sage 允许用户在绘图时指定 x 值的范围。
如果没有任何指示,它将绘制从 -1 到 1。
在为 -1 到 5 的 x 值绘制 f 之后:
g = plot(f, x, -1, 5)
为什么不绘制常数 f(a) 也从 -1 到 5:
L = plot(f(a), x, -1, 5, color='red', linestyle="--")
从 (0, f(a)) 到 (a, f(a)) 的直线也可以简单地绘制为:
L = line([(0, f(a)), (a, f(a))], color='red', linestyle='--')