如何解决如何从图中提取点?
plot()
返回一个有用的对象:[<matplotlib.lines.Line2D object at 0x38c9910>]
从中,我们可以获得x和y轴的值:
import matplotlib.pyplot as plt, numpy as np
...
line2d = plt.plot(xnew,heights_smooth)
xvalues = line2d[0].get_xdata()
yvalues = line2d[0].get_ydata()
然后,我们可以获得宽度值之一的索引:
idx = np.where(xvalues==xvalues[-2]) # this is 179.3979933110368
# idx is a tuple of array(s) containing index where value was found
# in this case -> (array([298]),)
以及相应的高度:
yvalues[idx]
# -> array([ 315.53469])
要检查,我们可以使用get_xydata()
:
>>> xy = line2d[0].get_xydata()
>>> xy[-2]
array([ 179.39799331, 315.53469 ])
解决方法
我有个问题。
我已经使用Matplotlib绘制了这样的图形:
from matplotlib import pyplot
import numpy
from scipy.interpolate import spline
widths = numpy.array([0,30,60,90,120,150,180])
heights = numpy.array([26,38.5,59.5,82.5,120.5,182.5,319.5])
xnew = numpy.linspace(widths.min(),widths.max(),300)
heights_smooth = spline(widths,heights,xnew)
pyplot.plot(xnew,heights_smooth)
pyplot.show()
现在,我想使用宽度值作为参数来查询高度值。我似乎找不到解决方法。请帮忙!提前致谢!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。