2017-01-29 8 views
0

私は現在、を使用して対数スケールで色付きのグリッドプロットを作成しようとしています。 0から1までの範囲を含めるので、私は "ログ"の代わりに "symlog"をスケールとして使用しています。symlogスケールでのmatplotlib.pyplot.pcolorfastエッジの長さの差があります

fig, ax = plt.subplots() 
Z = np.random.random(size=(RATE_EXPONENT + 1, BLOCK_EXPONENT + 1)) 
x_edges = [0] + [AXIS_BASE ** i for i in range(RATE_EXPONENT + 1)] 
y_edges = [0] + [AXIS_BASE ** i for i in range(BLOCK_EXPONENT + 1)] 
ax.set_xbound(0.0, MAX_FEE_RATE) 
ax.set_ybound(0.0, MAX_CONFIRMATION_BLOCKS) 
ax.set_xlabel('Fee rate in satoshis/byte') 
ax.set_ylabel('Confirmation time in blocks') 
ax.set_xscale('symlog') 
ax.set_yscale('symlog') 
ax.set_xticks(x_edges) 
ax.set_yticks(y_edges) 
ax.get_xaxis().set_major_formatter(ticker.ScalarFormatter()) 
ax.get_yaxis().set_major_formatter(ticker.ScalarFormatter()) 

colour_map = colors.LinearSegmentedColormap.from_list('GreenRed', ['red', 'green'], N=256) 
ax.pcolorfast(x_edges, y_edges, Z, cmap=colour_map) 
plt.show() 

残念ながら、エッジはかなり予想通り、私は実際には、エッジはズーム倍率に応じて移動する方法を入力に自分のデータと知っているだろうポイントに間隔を置いて配置されていません。

は参考のために、これは、それはすべてがFor reference, this is what it looks like all zoomed out

をズームアウトのように見え、これは、それはあなたが2 and this is what it looks like when you zoom into the interval from 2 to 4

あなたが見ることができるように 〜4の間隔を拡大するときのように見えるものは何かということです私はズームインすると、グリッドのエッジが移動します。私はまた、エッジの軸のティックと同じ間隔で配置されたいと思いますが、私はpyplotのドキュメントで有用な何かを発見していない。

ご協力いただければ幸いです。

PS:symlogスケールの代わりに線形を使用します。 xlim/ylimを使うときも同じです。

For reference, here's an image

答えて

1

利用matplotlib.pyplot.pcolormeshの代わりmatplotlib.axes.Axes.pcolorfastpcolorfastのドキュメンテーション文字列は「...それは軸の対数スケールのサポートが欠けている...」、現在のバージョン2.0.0のよう

を、それは実験的であると

と言います。

+0

このような簡単な解決策です。どうもありがとうございます! – FreakJoe

関連する問題