web-dev-qa-db-ja.com

Matplotlibを使用して、対数-対数プロットのすべての目盛りに対数間隔のグリッド線を表示するにはどうすればよいですか?

プロットの下部と左側に沿って表示されるすべての目盛りに対数間隔のグリッド線を示す対数-対数グラフをプロットしようとしています。私はmatplotlib.pyplot.grid(True)を使用してsomeグリッド線を表示できましたが、これはグリッド間隔を10の累乗で表示しているだけです。例として、ここに私が現在得ているものがあります:

Alt text

グリッド線がすべて等間隔ではない、グリッド線が次のように見えるものが本当に欲しいです:

Alt text

Matplotlibでこれを達成するにはどうすればよいですか?

29
Bryce Thomas

基本的には、グリッドコマンドのパラメーター_which="both"_を次のようにする必要があります。

_matplotlib.pyplot.grid(True, which="both")
_

「マイナー」および「メジャー」である他のオプションは、主ティック(グラフに表示されます)および不足しているマイナーティックです。実線が必要な場合は、_ls="-"_をgrid()のパラメータとして使用することもできます。

キックの例を次に示します。

_import numpy as np
from matplotlib import pyplot as plt

x = np.arange(0,100,.5)
y = 2*x**3

plt.loglog(x,y)
plt.grid(True,which="both",ls="-")
plt.show()
_

生成されるもの:

a log-log graph

37
Justin Peel

@Bryceが言うように、私のマシンでは正しいkwargはmajorminorです。明るい色の実線は点線よりも良いと思います。

plt.grid(True,which="majorminor",ls="-", color='0.65')

私のために働く。

6
Pablo Navarro