494

matplotlib を使用して、1 つの対数軸でグラフをプロットしたいと考えています。

ドキュメントを読んでいますが、構文がわかりません。おそらくプロット引数のような単純なものであることは知ってい'scale=linear'ますが、正しく理解できないようです

サンプルプログラム:

import pylab
import matplotlib.pyplot as plt
a = [pow(10, i) for i in range(10)]
fig = plt.figure()
ax = fig.add_subplot(2, 1, 1)

line, = ax.plot(a, color='blue', lw=2)
pylab.show()
4

6 に答える 6

539

メソッドを使用できますAxes.set_yscaleAxesこれにより、オブジェクトの作成後にスケールを変更できます。これにより、必要に応じてユーザーがスケールを選択できるようにするコントロールを構築することもできます。

追加する関連行は次のとおりです。

ax.set_yscale('log')

を使用'linear'して、線形スケールに戻すことができます。コードは次のようになります。

import pylab
import matplotlib.pyplot as plt
a = [pow(10, i) for i in range(10)]
fig = plt.figure()
ax = fig.add_subplot(2, 1, 1)

line, = ax.plot(a, color='blue', lw=2)

ax.set_yscale('log')

pylab.show()

結果チャート

于 2009-07-26T00:14:42.870 に答える
347

まず第一に、混合pylabしてpyplotコーディングするのはあまり整然としていません。さらに、pylab を使用するよりも pyplot スタイルが優先されます。

pyplot関数のみを使用して、わずかにクリーンアップされたコードを次に示します。

from matplotlib import pyplot

a = [ pow(10,i) for i in range(10) ]

pyplot.subplot(2,1,1)
pyplot.plot(a, color='blue', lw=2)
pyplot.yscale('log')
pyplot.show()

関連する関数はpyplot.yscale(). オブジェクト指向バージョンを使用している場合は、メソッドに置き換えてAxes.set_yscale()ください。pyplot.xscale()(または)を使用して、X 軸のスケールを変更することもできますAxes.set_xscale()

私の質問を確認してください「ログ」と「symlog」の違いは何ですか? matplotlib が提供するグラフ スケールの例をいくつか見てみましょう。

于 2010-08-18T15:10:32.733 に答える
76

plot の代わりにsemilogyを使用するだけです。

from pylab import *
import matplotlib.pyplot  as pyplot
a = [ pow(10,i) for i in range(10) ]
fig = pyplot.figure()
ax = fig.add_subplot(2,1,1)

line, = ax.semilogy(a, color='blue', lw=2)
show()
于 2009-04-21T18:07:42.637 に答える