112

matplotlib.pyplot モジュールを使用してヒストグラムをプロットしていますが、y 軸ラベルに整数 (0、1、2、3 など) のみを表示し、小数 (0.、0.5 など) を表示しないようにする方法を知りたいと思っています。 、1.、1.5、2. など)。

ガイダンス ノートを見て、答えはmatplotlib.pyplot.ylimのどこかにあると思われますが、これまでのところ、y 軸の最小値と最大値を設定するものしか見つかりません。

def doMakeChart(item, x):
    if len(x)==1:
        return
    filename = "C:\Users\me\maxbyte3\charts\\"
    bins=logspace(0.1, 10, 100)
    plt.hist(x, bins=bins, facecolor='green', alpha=0.75)
    plt.gca().set_xscale("log")
    plt.xlabel('Size (Bytes)')
    plt.ylabel('Count')
    plt.suptitle(r'Normal Distribution for Set of Files')
    plt.title('Reference PUID: %s' % item)
    plt.grid(True)
    plt.savefig(filename + item + '.png')
    plt.clf()
4

3 に答える 3

216

別の方法は次のとおりです。

from matplotlib.ticker import MaxNLocator

ax = plt.figure().gca()
ax.yaxis.set_major_locator(MaxNLocator(integer=True))
于 2016-06-29T10:01:16.170 に答える
58

yデータがある場合

y = [0., 0.5, 1., 1.5, 2., 2.5]

このデータの最大値と最小値を使用して、この範囲の自然数のリストを作成できます。例えば、

import math
print range(math.floor(min(y)), math.ceil(max(y))+1)

収量

[0, 1, 2, 3]

次に、 matplotlib.pyplot.yticksを使用してy目盛りの位置(およびラベル)を設定できます。

yint = range(min(y), math.ceil(max(y))+1)

matplotlib.pyplot.yticks(yint)
于 2012-08-21T08:53:38.030 に答える