Python : グラフ、軸の範囲(xlim,ylim)、間隔(xticks)、グラフの切れたときの対応

pytonでグラフ作成する際の、軸の間隔を変えたいときについてです。

特に全範囲で見たい場合は変更しないでよいのですが、

どこか部分的に抜き出したいときなどに使います。

後、グラフが切れたときの対応も一緒に之てています。

 

今回も使用するグラフはライプニッツの公式を使った下記のcsvを使っています。

kangkang1981.hatenablog.com

 

・範囲を決めるのはX軸はxlim,y軸はylimとなります。

使い方は同じのため、x軸の説明をします。

 

書き方としては

plt.xllim([xの最小値 , xの最大値])

今回はグラフの最初のほうと、後のほうを分けて入れているので、

下記の2つを使っています。

plt.xlim([0,100])

plt.xlim([100000,200000])

 

・間隔、あと角度も決めることができるxticksについてです。

書き方としては

plt.xticks([間隔を入れていく0,10,・・・100のように],rotation=角度を入れる)

角度を変える必要がない場合はrotation=の部分を消してplt.xticks([0,10,100])のように。

下記がプログラムで書いた内容です。

plt.xticks([0,10,30,50,100],rotation=45)

plt.xticks([100000,120000,140000,160000,175000,200000],rotation=90)

 

実際に出てくるグラフとしては下記のようになります。

#x軸の範囲
plt.xlim([0,100])
#X軸の間隔と、ラベルの角度
plt.xticks([0,10,30,50,100],rotation=45)

#y軸の範囲
plt.ylim([0.65,0.9])

f:id:Kangkang1981:20200510115726j:plain

あっここで、グラフが切れている問題がありますね。

グラフが切れたときの対応としては保存のときにbbox_inches="tight"と入れると

対策できます。

fig0.savefig("pi_2.jpg",bbox_inches="tight")

f:id:Kangkang1981:20200510115942j:plain

これでちゃんと入っていますね。

 

後は、もう一つの後ろのほうのグラフです。

#x軸の範囲
plt.xlim([100000,200000])
#X軸の間隔と、ラベルの角度
plt.xticks([100000,120000,140000,160000,175000,200000],rotation=90)

#y軸の範囲
plt.ylim([0.7853925,0.785405])

f:id:Kangkang1981:20200510120057j:plain

徐々に収束していくのが見えるグラフになっていますね。

 

詳細のプログラムは下記になります。

#Leibniz formula

import matplotlib.pyplot as plt
import pandas as pd
import math

#ライプニッツの公式で求める、π÷4を求める。
pi_4 = float(math.pi / 4)

#前回つかった、csvを使用
libniz_data = pd.read_csv('pi_libniz.csv')

#新規のウィンドウを描画
#画像を保存する際はあらかじめ、figure()という宣言をしておく
fig0 = plt.figure()
#plot(x軸、y軸)
plt.plot(libniz_data['denominator'], libniz_data['Libniz'])
#狙いの線を引く、x軸が3~100000000,Y軸はpi/4、線の色を赤にして、線は点線にする。
plt.plot([3,10000000],[pi_4,pi_4],"red",linestyle="dashed")
#x軸にラベルを追加
plt.xlabel("denominator")
#x軸の範囲
plt.xlim([0,100])
#X軸の間隔と、ラベルの角度
plt.xticks([0,10,30,50,100],rotation=45)

#y軸の範囲
plt.ylim([0.65,0.9])

#グラフを保存
fig0.savefig("pi_2.jpg",bbox_inches="tight")

fig1 = plt.figure()
#plot(x軸、y軸)
plt.plot(libniz_data['denominator'], libniz_data['Libniz'])
#狙いの線を引く、x軸が3~100000000,Y軸はpi/4、線の色を赤にして、線は点線にする。
plt.plot([3,10000000],[pi_4,pi_4],"red",linestyle="dashed")
#x軸にラベルを追加
plt.xlabel("denominator")
#x軸の範囲
plt.xlim([100000,200000])
#X軸の間隔と、ラベルの角度
plt.xticks([100000,120000,140000,160000,175000,200000],rotation=90)

#y軸の範囲
plt.ylim([0.7853925,0.785405])

#グラフを保存,グラフがはみ出るときはbbox_inches="tight"を入れます
fig1.savefig("pi_3.jpg" ,bbox_inches="tight")

今までにpythonについて書いた記事はここにリンクを貼ってあります。

興味があればぜひご覧ください。