Python : グラフ、軸の範囲(xlim,ylim)、間隔(xticks)、グラフの切れたときの対応
pytonでグラフ作成する際の、軸の間隔を変えたいときについてです。
特に全範囲で見たい場合は変更しないでよいのですが、
どこか部分的に抜き出したいときなどに使います。
後、グラフが切れたときの対応も一緒に之てています。
今回も使用するグラフはライプニッツの公式を使った下記のcsvを使っています。
・範囲を決めるのは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])
あっここで、グラフが切れている問題がありますね。
グラフが切れたときの対応としては保存のときにbbox_inches="tight"と入れると
対策できます。
fig0.savefig("pi_2.jpg",bbox_inches="tight")
これでちゃんと入っていますね。
後は、もう一つの後ろのほうのグラフです。
#x軸の範囲
plt.xlim([100000,200000])
#X軸の間隔と、ラベルの角度
plt.xticks([100000,120000,140000,160000,175000,200000],rotation=90)
#y軸の範囲
plt.ylim([0.7853925,0.785405])
徐々に収束していくのが見えるグラフになっていますね。
詳細のプログラムは下記になります。
#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について書いた記事はここにリンクを貼ってあります。
興味があればぜひご覧ください。