如何在一条线上放置标记并获得坐标

时间:2016-09-05 22:58:25

标签: python python-3.x numpy math matplotlib

1)我想在一条线上放置一个标记,(在两点之间)与线的长度有关。

2)我想知道这个点/标记的坐标。

import matplotlib.pyplot as plt
import math
x1 = 0
x2 = 9
y1 = 5
y2 = 7
plt.plot((x1, x2), (y1, y2))
lenghtline1 = math.sqrt((x1-x2)**2 + (y1-y2)**2)

这两点之间的距离是9.2,

如何将标记放在第2行的点(两点之间)到6?

我怎么知道这个标记的坐标(x,y)? 谢谢

2 个答案:

答案 0 :(得分:0)

距离len到第一个点的点将具有坐标

  x = x1 + (x2-x1) * len / lenghtline1
  y = y1 + (y2-y1) * len / lenghtline1

答案 1 :(得分:0)

from pylab import *
from scipy import interpolate

x = rand(21).cumsum() # create some 21 random x values 
y = rand(len(x)) # the corresponding y values
plot(x, y, ".-")
xc = x[:-1]  + diff(x)/2. 
yc = interpolate.interp1d(x, y, kind="linear")(xc) # (xc, yc) are the marker positions

lengths = sqrt(diff(x)**2 + diff(y)**2) # lengths of the sections
scatter(xc,yc,c=cm.gray(lengths/lengths.max()), s=40) # visualization
show()