56

私は簡単なプロットコードを持っています

plt.plot(x,y)
plt.show()

現在の目盛りに加えて、x軸にいくつかの目盛りを追加したいと思います。

extraticks=[2.1, 3, 7.6]

ご覧のとおり、目盛りのパターンがないため、軸全体の目盛りの頻度を上げたくありません。元のものを保持し、それらの余分なものを追加するだけです...

可能ですか?

よろしく

4

2 に答える 2

87

はい、次のようなことを試すことができます:

plt.xticks(list(plt.xticks()[0]) + extraticks)

使用する関数はですxticks()。引数なしで呼び出されると、現在のティックを返します。引数を使用して呼び出すと、目盛りの位置と、オプションでラベルを設定できます。

于 2013-02-05T20:56:42.773 に答える
39

完全を期すために、@Lev-LevitskyのOOバージョンのすばらしい答えを示したいと思います。

lines = plt.plot(x,y)
ax = lines[0].axes
ax.set_xticks(list(ax.get_xticks()) + extraticks)

ここでは、によって返されたシーケンスAxesから抽出されたオブジェクトを使用します。通常、OOインターフェイスを使用している場合は、前もって参照があり、ではなくそれを呼び出します。Lines2DplotAxesplotpyplot

コーナー警告

何らかの理由で軸の制限を変更した場合(たとえば、データの一部をプログラムでズームインすることにより)、この操作の後にそれらを復元する必要があります。

lim = ax.get_xlim()
ax.set_xticks(list(ax.get_xticks()) + extraticks)
ax.set_xlim(lim)

それ以外の場合、プロットはx軸に軸上で使用可能なすべての目盛りを表示します。

于 2016-12-07T21:50:17.020 に答える