Matplotlib连续线到无穷远

2024-05-19 20:12:12 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个图表,由.txt文件中的数据制成。目前,Matplotlib将把它绘制到我的文件中的最后一点。我需要它继续下去。我似乎还记得某处有句话,说我可以把一条线延伸到无穷远。(使用微积分和极限时,我不是指无穷大,我只是指屏幕上的一条线,直到图形的边缘。)

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

有人知道这是否可能,如果可能,怎么可能?我做过研究,不记得我在哪里看到医生的条目说我可以这样做,所以如果有人能告诉我这一点,我会非常感谢。


Tags: 文件数据txt图形屏幕matplotlib图表绘制
0条回答
网友
1楼 · 发布于 2024-05-19 20:12:12

在从1到hacky的范围内,这是相当复杂的,但是您可以询问matplotlib当前的绘图界限是什么

import matplotlib.pyplot as plt

plt.plot([0,10], [0,10])
plt.axis()

返回:

(0.0, 10.0, 0.0, 10.0)

这是超级笨重的,但是你可以计算出最后两点的直线方程,然后计算出这条直线与边界框相交的位置。然后绘制一条从最后一点到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()

相关问题 更多 >