python - 如何绘制渐近线?

标签 python matplotlib

我遵循了一个小教程,它让我接近了我想要的地方,但它还不完全在那里,我不确定如何使用它进行下一步。
这是我目前的数字:

original

不过,我不确定如何将渐近线绘制到这张图中。

我在想我需要创建一个名为 Y 的变量,它是一条垂直线,然后从它上面画出线条?虽然我不确定这是否正确

在这种情况下,我将如何为渐近线创建直线?

编辑

This is my code:

import pylab as pl
import numpy as np
import matplotlib.pyplot as plt

"""
This is all from the tutorial located at :
http://scipy-lectures.github.io/intro/matplotlib/matplotlib.html
"""

pl.figure(figsize=(10, 6), dpi=80)
pl.subplot(1, 1, 1)
X = np.linspace(-5, 5, 500, endpoint=True)
C = (1/X**2)-5
P = X - X - 0.1

pl.xlim(X.min() * 1.1, X.max() * 1.1)
pl.ylim(C.min() * 1.1, C.max() * 1.1)

"""
Alters the position of the axis - moves them to the centre
"""
ax = pl.gca()  # gca stands for 'get current axis'
ax.spines['right'].set_color('none')
ax.spines['top'].set_color('none')
ax.xaxis.set_ticks_position('bottom')
ax.spines['bottom'].set_position(('data',0))
ax.yaxis.set_ticks_position('left')
ax.spines['left'].set_position(('data',0))

pl.plot(X, C, color="blue",  linewidth=4, linestyle="-", 
              label="y = 4 - 1/x^2")

pl.legend(loc='upper left')


for label in ax.get_xticklabels() + ax.get_yticklabels():
    label.set_fontsize(16)
    label.set_bbox(dict(facecolor='white', edgecolor='None', alpha=0.65))

plt.ylim((-7,20))

plt.show()

最佳答案

您可以使用 vlines 添加垂直线.

对于您的示例,您可以使用以下内容在 x = 3 处添加一条垂直线:

ylim = ax.get_ylim()
plt.vlines(3, ylim[0], ylim[1])

这需要在 plt.show() 之前插入。同样,hlines将添加水平线。

关于python - 如何绘制渐近线?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24997641/

相关文章:

python - 如何在数据库(MYSQL)中保留VARCHAR,但在sqlalchemy模型中保留ENUM

python - 删除 matplotlib 中的工具栏按钮

python - 绘制 NetworkX Girvan-Newman 算法找到的社区的树状图

python - pyplot 图表上光标位置的详细日期

python - 有没有办法在日期时间上使用 yyyy-mm-w 格式进行绘图?

python - 值错误: invalid literal for int() with base 10 on Alexnet

python - 无法为 Python 3.6 pip 安装 sklearn

python - 如何使用线程名从/proc中识别线程?

python - 为什么 pygame.sndarray.make_sound 似乎使声音持续时间增加了四倍?

python - 将图像转换为二进制文件后,无法在带有matplotlib的笔记本中显示图像