x軸ポイントのカスタムテキストでプロット


106

以下のサンプルコードのように、matplotlibとpythonを使用してプロットを描画しています。

x = array([0,1,2,3])
y = array([20,21,22,23])
plot(x,y)
show()

上記のx軸のコードなので、描画された値、0.0, 0.5, 1.0, 1.5つまり私の参照x値と同じ値が表示されます。

とにかく、xの各点を別の文字列にマップしますか?たとえば、x軸に月の名前(文字列Jun, July,...)や人の名前("John", "Arnold", ...)や時刻("12:20", "12:21", "12:22", ..)などの他の文字列を表示する必要があります。

私に何ができるか、またはどの機能を見るか知っていますか?
私の目的にとってそれmatplotlib.tickerは助けになるでしょうか?

回答:


195

手動で使用してxticks(およびyticks)を設定することができpyplot.xticksを

import matplotlib.pyplot as plt
import numpy as np

x = np.array([0,1,2,3])
y = np.array([20,21,22,23])
my_xticks = ['John','Arnold','Mavis','Matt']
plt.xticks(x, my_xticks)
plt.plot(x, y)
plt.show()


44
rotationまた、便利である場合があります:plt.xticks(range(5), ["some", "words", "as", "x", "ticks"], rotation=45)
アドビ

4
そして、x軸に沿って項目を均等に分散させる方法は?x軸の内部に100万のポイントがあり、軸に沿って均等に分散されたジョン、アーノルド、メイビス、マットのみを表示するとしますか?
スティーブK

@SirBenBenji:索引付け(例:)を使用x[idx]して、表示するデータのみを選択します。
unutbu 2014

なぜpylabを書くのか理解できません。その回答は古く、私の意見では間違っています。
Mario Krenn

1

これでうまくいきました。X軸の毎月

str_month_list = ['January','February','March','April','May','June','July','August','September','October','November','December']
ax.set_xticks(range(0,12))
ax.set_xticklabels(str_month_list)
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.