Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import numpy as np
- import plotly.graph_objects as go
- import plotly.io as pio
- def 楽天のポイント計算(積立額, カードのグレード):
- # 楽天カードの計算式
- return 積立額 * カードのグレード["倍率"] - カードのグレード["年会費"]
- def マネックスのポイント計算(積立額):
- # マネックス証券の計算式
- 倍率_first = 1.1 / 100
- 倍率_second = 0.6 / 100
- 倍率_third = 0.2 / 100
- 第1段階金額 = 50000
- 第2段階金額 = 70000
- 第3段階金額 = 100000
- # ポイントの計算式
- if 積立額 < 第1段階金額:
- 合計ポイント = 積立額 * 倍率_first
- elif 第1段階金額 <= 積立額 < 第2段階金額:
- 合計ポイント = 第1段階金額 * 倍率_first + (積立額 - 第1段階金額) * 倍率_second
- elif 第2段階金額 <= 積立額 <= 第3段階金額:
- 合計ポイント = (
- 第1段階金額 * 倍率_first
- + (第2段階金額 - 第1段階金額) * 倍率_second
- + (積立額 - 第2段階金額) * 倍率_third
- )
- return 合計ポイント
- def auのポイント計算(積立額):
- ポイント付与率 = 1 / 100
- 年会費 = 0 / 12
- return 積立額 * ポイント付与率 - 年会費
- def paypayのポイント計算(積立額):
- ポイント付与率 = 0.7 / 100
- 合計ポイント = 積立額 * ポイント付与率
- if 合計ポイント >= 350:
- 合計ポイント = 350
- return 合計ポイント
- if __name__ == "__main__":
- # 積立額
- x = np.arange(100000)
- rakuten_normal_grade = {"年会費": 0, "倍率": 0.5 / 100}
- rakuten_gold_grade = {"年会費": 2200 / 12, "倍率": 0.75 / 100}
- rakuten_premium_grade = {"年会費": 11000 / 12, "倍率": 1 / 100}
- # グラフ作成
- plot = [
- go.Scatter(
- x=x,
- y=[マネックスのポイント計算(x) for x in x],
- mode="lines",
- name="マネックス",
- ),
- go.Scatter(
- x=x,
- y=[楽天のポイント計算(x, rakuten_normal_grade) for x in x],
- mode="lines",
- name="楽天カード",
- ),
- go.Scatter(
- x=x,
- y=[楽天のポイント計算(x, rakuten_gold_grade) for x in x],
- mode="lines",
- name="楽天ゴールド",
- ),
- go.Scatter(
- x=x,
- y=[楽天のポイント計算(x, rakuten_premium_grade) for x in x],
- mode="lines",
- name="楽天プレミアム",
- ),
- go.Scatter(
- x=x,
- y=[paypayのポイント計算(x) for x in x],
- mode="lines",
- name="paypay",
- ),
- ]
- fig = go.Figure(data=plot)
- # fig.show()
- prefix = "go-scatter-line" # 保存ファイル名の接頭辞
- save_name = f"{prefix}_default_scatter"
- pio.write_html(fig, f"{save_name}.html")
- pio.write_image(fig, f"{save_name}.png")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement