如果我有一个元组的列表,每次都反映位置,我需要的是将一个图形显示为速度(另一个列表)的多行。我该怎么做?Countour lines Matplotlib Python
例如:
import matplotlib.pyplot as plt
import numpy as np
position = [(12,14), (12.22,13.22), (15, 17)]
velocity = [4.55,2.13,5]
如果我有一个元组的列表,每次都反映位置,我需要的是将一个图形显示为速度(另一个列表)的多行。我该怎么做?Countour lines Matplotlib Python
例如:
import matplotlib.pyplot as plt
import numpy as np
position = [(12,14), (12.22,13.22), (15, 17)]
velocity = [4.55,2.13,5]
使用的GridData()在转换散射点网格数据,这里有一个例子:
import numpy as np
from scipy.interpolate import griddata
import matplotlib.pyplot as plt
np.random.seed(0)
x = np.random.normal(size=200)
y = np.random.normal(size=200)
v = np.sqrt(x**2+y**2)
xg, yg = np.mgrid[x.min():x.max():100j, y.min():y.max():100j]
vg = griddata((x, y), v, (xg, yg), method='cubic')
plt.contourf(xg, yg, vg)
plt.scatter(x, y, c=v)
plt.show()
输出是:
美丽!谢谢 – Blas 2012-07-19 14:35:17
如果你想绘制各点的速度,那么你应该尝试quiver
。它会绘制方向字段(箭头)。由于速度是矢量,它有一个x
和y
组件。
import pylab as plt
x=[12, 13, 14, 15, 16] # x-axis coordinates
y=[14, 15, 16, 17, 18] # y-axis coordinates
v_x=[6, 6, 6, 6, 6] # x-component of velocity
v_y=[1,4,3,2,1] # y-component of velocity
plt.quiver(x,y,v_x,v_y)
plt.xlim(11,17)
plt.ylim(13,19)
plt.show()
看一看here,如果你想了解更多关于quiver
。
相反,contour
是一些变量具有恒定值的曲线。看看here如果你想了解更多。
什么是countour线? – 2012-07-18 23:26:12
你的问题不清楚。你如何提出从这些有限的数据中生成等高线?典型地,等高线用于提供双输入函数的值的二维表示(例如,各点的高度)。你只有几个孤立的号码。 – BrenBarn 2012-07-18 23:40:32
这只是这个想法。把我的位置作为一个向量列表,以及每个位置的速度。我需要一张图形,将每个位置矢量与其速度结合在一起。我认为这条线会做得很好。你不觉得吗?我不确定该怎么做 – Blas 2012-07-19 02:09:38