Matplotlib继续进入无限

Coi*_*Kid 5 python matplotlib python-3.x

我有一个图表,由.txt文件中的数据组成.目前,Matplotlib会将其绘制到我文件的最后一点.我需要它继续那么远.我似乎记得在某个地方说我可以让一条线继续无限.(我在使用微积分和限制时并不意味着无穷大,我只是指屏幕的一条线,直到图的边缘.)

现在,我知道如果我有一个曲线图,这将是不准确的,因为该线将永远以最后一个数据点的角度继续.但是,由于我有一个直线图,这将是理想的.

有谁知道这是否可能,如果可能,怎么样?我做过研究,不记得我在哪里看到doc条目说我可以做到这一点,所以如果有人能说清楚这一点,我真的很感激.

uke*_*emi 9

从v3.3开始,添加了一个新axline方法来绘制穿过两点的无限长线:

import matplotlib.pyplot as plt 

fig, ax = plt.subplots()

ax.axline((.1, .1), slope=5, color='C0', label='by slope')
ax.axline((.1, .2), (.8, .7), color='C3', label='by points')

ax.legend()
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述


Mik*_*rth 5

从 1 到 hacky 的范围来看,这相当 hacky,但您可以询问 matplotlib 绘图的当前边界是什么

import matplotlib.pyplot as plt

plt.plot([0,10], [0,10])
plt.axis()
Run Code Online (Sandbox Code Playgroud)

返回:

(0.0, 10.0, 0.0, 10.0)
Run Code Online (Sandbox Code Playgroud)

这非常笨重,但是您可以计算出最后两点的直线方程,然后计算出该线与边界框的相交位置。然后绘制一条从最后一个点到 BB 的线。


新想法,稍微不那么笨重。延长最后两点的线,然后将轴设置回原来的位置。

import numpy
import matplotlib.pyplot as plt

X = [0, 1, 2]
Y = [4, 6, 4]

plt.plot(X,Y)
axes = plt.axis()
plt.plot([X[-2],X[-2]+1000*(X[-1]-X[-2])], [Y[-2],Y[-2]+1000*(Y[-1]-Y[-2])])
plt.xlim( [axes[0], axes[1]])
plt.ylim( [axes[2], axes[3]])
plt.show()
Run Code Online (Sandbox Code Playgroud)

  • 伙计...我不认为我可以获得插件或其他可以提供帮助的模块? (2认同)