我想知道如何在不插入数据本身的情况下插入plt.contourf
图。问题是因为我尝试scipy.interpolate.griddata
时花了很多时间,因为我的数据太长了。
我想知道是否有办法通过pyplot或更快的速度来绘制带有NaNs
的数据而没有这些空白。
例如:
如果我有:
import numpy as np.
from numpy import nan
import matplotlib.pyplot as plt
a = np.array([[ 9., 3., 2., 5., 9., 3., 2., 5.],
[ 3., nan, 5., 1., 3., nan, 5., 1.],
[ 5., 8., 2., 9., 5., 8., 2., 9.],
[ 9., 3., 2., 5., 9., 3., 2., 5.],
[ 3., nan, 5., 1., 3., nan, 5., 1.],
[ 5., 8., 2., 9., 5., 8., 2., 9.],
[ 9., 3., 2., 5., 9., 3., 2., 5.],
[ 3., nan, 5., 1., 3., nan, 5., 1.],
[ 5., 8., 2., 9., 5., 8., 2., 9.],
[ 9., 3., 2., 5., 9., 3., 2., 5.],
[ 3., nan, 5., 1., 3., nan, 5., 1.],
[ 5., 8., 2., 9., 5., 8., 2., 9.]])
xa = np.arange(8)+2
ya = -np.arange(12)
plt.figure()
plt.contourf(xa,ya,a,100)
plt.show()
我会:
我想更容易,更快地插入这些空白......
答案 0 :(得分:2)
Pandas有一个很棒的插值界面,您可以这样做:
import pandas as pd
a_interp = pd.DataFrame(a).interpolate(method='linear', axis=0).values
plt.contourf(xa, ya, a_interp, 100)
plt.show()