1. ホーム
  2. python

[解決済み] Matplotlib で Y 軸を強制的に整数値のみにする方法は?重複

2022-09-19 19:49:48

質問

matplotlib.pyplotモジュールを使用してヒストグラムをプロットしていますが、Y軸のラベルを小数ではなく整数(例:0, 1, 2, 3など)だけ表示させる方法を知りたいのです(例:0., 0.5, 1.)

ガイダンスノートを見ると、答えはそのあたりにあるようです。 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()

どのように解決するのですか?

y-dataがある場合

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]

次に、Yティックマークの位置(とラベル)を設定するために matplotlib.pyplot.yticks :

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

matplotlib.pyplot.yticks(yint)