1

2 つの質問があります。コントルフで平射図法をプロットしたいのですが、Matplotlib で Z 方向の高い部分に色を付けたいと思っています。そのために、2 つの質問があります。

  1. meshgridとgriddataを使用する前にcontourfでプロットしていますが、他のエッジは滑らかではありません。どうすれば滑らかにできますか? ここに画像の説明を入力

  2. Z に対数スケールを使用したいのですが、どうすればそれを行うことができますか?

ここに私のコード:

# craation of a 2D grid
xi = np.linspace(min(X), max(X))
yi = np.linspace(min(Y), max(Y))

X1, Y1 = np.meshgrid(xi, yi)

##### interpolation
Z1 = griddata(X, Y, Z,xi,yi)

plt.contourf(X1,Y1,Z1,50,cmap=plt.cm.rainbow,vmax=abs(Z1).max(),
             locator=ticker.LogLocator)

plt.colorbar()

plt.xlim(-1,1)
plt.ylim(-1,1)

plt.show()
plt.set_zscale('log')
plt.set_xlabel('X')
plt.set_ylabel('Y')

plt.show()
4

1 に答える 1

0

最初の質問に答える:

次のようにして、輪郭値を滑らかにすることができます。

zmin = Z1.min()
zmax=Z1.max()
levels=linspace(zmin, zmax, 400)

levelsに引数として渡しますplt.contourf()

外側のエッジを滑らかにするには、2 次元グリッドでより多くの値を使用する必要があります。これは、使用時に必要な値の数を渡すことで実現できますlinspace()

nx = 1000
ny = 1000
xi = np.linspace(min(X), max(X), nx)
yi = np.linspace(min(Y), max(Y), ny)
于 2014-06-19T10:40:11.703 に答える