51254


みんなのpythonにこのようなプログラムがありました。  
これを使ったところ表示が一部おかしい  
５の部分が表示されない…？となっています。  
理由を教えてください。

[![画像の説明をここに入力](https://i.stack.imgur.com/uMJkG.jpg)](https://i.stack.imgur.com/uMJkG.jpg)

[code]

    %matplotlib inline
    import matplotlib.pyplot as plt
    
    monk_fish_team=[158,157,163,157,145]
    sum(monk_fish_team)
    max(monk_fish_team)
    min(monk_fish_team)
    len(monk_fish_team) 
    
    monk_sum=sum(monk_fish_team) 
    monk_len=len(monk_fish_team) 
    monk_mean=monk_sum/monk_len
    monk_mean
    
    plt.bar([0,1,2,3,4],monk_fish_team)
    plt.plot([0,len(monk_fish_team)],[monk_mean,monk_mean],color='red')
    
[/code]


CC BY-SA 4.0
2018-12-16T08:48:36.420
51253
2018-12-18T07:01:55.457
2018-12-18T07:01:55.457
19110
31472
question
python
pythonでplot画像の表示がうまくいかない。


データの数は5つなので、0から4までの5つの部分にデータがひとつずつ描画されている、正常動作です。

matplotlib
には軸に表示される最小値と最大値を自動的にそれっぽく調整してくれる機能がありますが、今回のプログラムだと平均値の横線を引く部分で0から4までではなく0から5まで線が引かれているため、横軸が5まで表示されているのでしょう。

たとえば以下のように横線の範囲を0から4までにすると、私の環境では横軸の5は出なくなりました。

[code]

    plt.plot([0, len(monk_fish_team) - 1], [monk_mean, monk_mean], color='red')
    
[/code]


CC BY-SA 4.0
2018-12-16T09:03:07.367
51254
2018-12-16T09:03:07.367
19110
51253
answer