matplotlibとAxes3Dを使用してPythonで3Dプロットを作成しました。それはかなりよく見えますが、プロットしているデータの量によってギザギザのエッジがたくさんあります。私はデータ上でscipy補間法を試みましたが、plot_surface
コマンドは与えられた型を好きではありません。私は主題に関して他に多くを見つけることができませんでした。ここで3Dプロットのスムーズな大量データ
は、これまでの私のコードです:
import numpy
import scipy.io as sio
from matplotlib import pyplot
import matplotlib
from mpl_toolkits.mplot3d import Axes3D
import scipy
#data pulled from file
matFile = sio.loadmat(matFileLocation)
data = matFile['data']
[numrows, numcols] = numpy.shape(numpy.atleast_2d(data))
fig = pyplot.figure()
ax = fig.gca(projection = '3d')
x = range(numcols)
y = range(numrows)
X, Y = numpy.meshgrid(x,y)
hImage = ax.plot_surface(X,Y,data,cmap = 'jet', rstride = 1, cstride = 10, linewidth=0, antialiased = False)
fig.colorbar(hImage)
hImage.set_clim(mindb, maxdb)
pyplot.show()
は、x、y、およびデータは、私が実行して別のファイルに基づいて変更されますのでご注意ください。正しい方向のポイントが高く評価されます。
編集:メソッドは、私は私が私が持っているものを覚えてすることはできませんし、試していませんが、過去2日間で非常に多くの異なる例から非常に多くの異なる補間方法を試してみた
を試してみました。私はgriddata
とinterp2d
といくつかはhImage.imshow(interpolation='gaussian')
(またはそれに相当するもの)を覚えていると思います。 Griddataは、plot_surface
が理解できなかった何かを返しました、interp2dは決して終了しませんでした。そしてhImageは、私が期待していたような縮尺の変化なしで私の全体のプロットを黄色に変えました。
私は2次元配列の1と2次元配列の長さで割ることでデータを畳み込むなどの他のアプローチも試みました。残念ながら、私のデータには非常に低い値がたくさん含まれているので、私が畳み込みで失ったいくつかの高い値があります。 編集:私はlen^2で割り切れるのを忘れていました。
私は本質的にMatLabからshading interp
を探しています。
日付を補間しようとしたことを示すコードはありますか?つまり、あなたが試したSciPyの機能です。また、Githubでホストできるサンプルファイルや、私たちがあなたと一緒に試してみるべきものがありますか? – dblclik
また、ここで提案を試しましたか?http://stackoverflow.com/a/35158321/1607105? – dblclik
@dblclik例から始めましたが、データは2D配列であり、xとyはそうではないので、この例の 'tck = interpolate.bisplrep(X、Y、Z、s = 0)'は作業。ファイルに関しては、私は仕事のプロトコルのために私がホストすることができるものは本当にありません。私が言えることは、ランダムな[140x50000]行列(またはフリップフロップxとyを作ることですか?私はPythonとmatlabの間で混同します)を作ることです。私が試した方法については、編集を参照してください? – SanticL