Coi*_*Kid 5 python matplotlib python-3.x
我有一个图表,由.txt文件中的数据组成.目前,Matplotlib会将其绘制到我文件的最后一点.我需要它继续那么远.我似乎记得在某个地方说我可以让一条线继续无限.(我在使用微积分和限制时并不意味着无穷大,我只是指屏幕的一条线,直到图的边缘.)
现在,我知道如果我有一个曲线图,这将是不准确的,因为该线将永远以最后一个数据点的角度继续.但是,由于我有一个直线图,这将是理想的.
有谁知道这是否可能,如果可能,怎么样?我做过研究,不记得我在哪里看到doc条目说我可以做到这一点,所以如果有人能说清楚这一点,我真的很感激.
从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)
从 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)
| 归档时间: |
|
| 查看次数: |
6098 次 |
| 最近记录: |