CVP分析をpythonを使って理解した勉強メモ
問1 変動比率を求める
問2 損益分岐点売上高を求める
問3 目標売上利益を達成する売上高を求める
まず、計算に使用するCVP分析のクラスを定義する
# CVP分析
class CVP():
def __init__(self):
self.sales = 0 # 売上高
self.v = 0 # 変動費
self.f = 0 # 固定費
# 変動費率の算定
def vrate(self):
return self.v / self.sales
# 損益分岐点売上高
def breakevenpointsales(self):
return int(self.f / (1 - self.vrate()))
# 目標利益達成売上高
def targetprofitsales(self, target):
return int((self.f + target) / (1 - self.vrate()))
実際の数値を入れて計算してみる。面倒くさいので、数値は1000分の1にした。
cvp = CVP()
cvp.v = (805 + 420 + 70)
cvp.f = (650 + 515 + 440 + 285)
cvp.sales = 3500
# 第1問
answer_1 = int( cvp.vrate() * 100 )
print('変動費率:',answer_1,'%')
# 第2問
answer_2 = cvp.breakevenpointsales()
print('損益分岐点売上高:',answer_2)
# 第3問
target = 630
answer_3 = cvp.targetprofitsales(target)
print('目標利益',target,'達成売上高:',answer_3)
変動費率: 37 %
損益分岐点売上高: 3000
目標利益 630 達成売上高: 4000
計算結果が正しく表示された。これを今度はnumpyとmatplotlibを使って図表にしてみる。
import numpy as np
import matplotlib.pyplot as plt
fig = plt.figure(figsize=(8, 5))
ax = fig.add_subplot(111)
sale = np.arange(1,5000)
# 売上高
sales = sale
ax.plot(sale, sales, color='gray')
# 変動費
vc = sale * cvp.vrate() + cvp.f
ax.plot(sale, vc, color='gray')
# 固定費
fc = sale * 0 + cvp.f
ax.plot(sale, fc, ls = '--', color = 'gray')
# 損益分岐点売上高
bep = cvp.breakevenpointsales()
ax.axvline(bep, ls = ':', color = 'red')
# 目標利益達成売上高
tps = cvp.targetprofitsales(target)
ax.axvline(tps, ls = ':', color = 'blue')
plt.show()
結果