Advertisement
Guest User

Untitled

a guest
Mar 16th, 2024
34
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 3.06 KB | None | 0 0
  1. import numpy as np
  2. import plotly.graph_objects as go
  3. import plotly.io as pio
  4.  
  5.  
  6. def 楽天のポイント計算(積立額, カードのグレード):
  7.     # 楽天カードの計算式
  8.     return 積立額 * カードのグレード["倍率"] - カードのグレード["年会費"]
  9.  
  10.  
  11. def マネックスのポイント計算(積立額):
  12.     # マネックス証券の計算式
  13.     倍率_first = 1.1 / 100
  14.     倍率_second = 0.6 / 100
  15.     倍率_third = 0.2 / 100
  16.     第1段階金額 = 50000
  17.     第2段階金額 = 70000
  18.     第3段階金額 = 100000
  19.  
  20.     #  ポイントの計算式
  21.     if 積立額 <1段階金額:
  22.         合計ポイント = 積立額 * 倍率_first
  23.     elif1段階金額 <= 積立額 <2段階金額:
  24.         合計ポイント =1段階金額 * 倍率_first + (積立額 - 第1段階金額) * 倍率_second
  25.     elif2段階金額 <= 積立額 <=3段階金額:
  26.         合計ポイント = (
  27.             第1段階金額 * 倍率_first
  28.             + (2段階金額 - 第1段階金額) * 倍率_second
  29.             + (積立額 - 第2段階金額) * 倍率_third
  30.         )
  31.  
  32.     return 合計ポイント
  33.  
  34.  
  35. def auのポイント計算(積立額):
  36.     ポイント付与率 = 1 / 100
  37.     年会費 = 0 / 12
  38.     return 積立額 * ポイント付与率 - 年会費
  39.  
  40.  
  41. def paypayのポイント計算(積立額):
  42.     ポイント付与率 = 0.7 / 100
  43.     合計ポイント = 積立額 * ポイント付与率
  44.     if 合計ポイント >= 350:
  45.         合計ポイント = 350
  46.     return 合計ポイント
  47.  
  48.  
  49. if __name__ == "__main__":
  50.     # 積立額
  51.     x = np.arange(100000)
  52.  
  53.     rakuten_normal_grade = {"年会費": 0, "倍率": 0.5 / 100}
  54.     rakuten_gold_grade = {"年会費": 2200 / 12, "倍率": 0.75 / 100}
  55.     rakuten_premium_grade = {"年会費": 11000 / 12, "倍率": 1 / 100}
  56.  
  57.     #  グラフ作成
  58.     plot = [
  59.         go.Scatter(
  60.             x=x,
  61.             y=[マネックスのポイント計算(x) for x in x],
  62.             mode="lines",
  63.             name="マネックス",
  64.         ),
  65.         go.Scatter(
  66.             x=x,
  67.             y=[楽天のポイント計算(x, rakuten_normal_grade) for x in x],
  68.             mode="lines",
  69.             name="楽天カード",
  70.         ),
  71.         go.Scatter(
  72.             x=x,
  73.             y=[楽天のポイント計算(x, rakuten_gold_grade) for x in x],
  74.             mode="lines",
  75.             name="楽天ゴールド",
  76.         ),
  77.         go.Scatter(
  78.             x=x,
  79.             y=[楽天のポイント計算(x, rakuten_premium_grade) for x in x],
  80.             mode="lines",
  81.             name="楽天プレミアム",
  82.         ),
  83.         go.Scatter(
  84.             x=x,
  85.             y=[paypayのポイント計算(x) for x in x],
  86.             mode="lines",
  87.             name="paypay",
  88.         ),
  89.     ]
  90.     fig = go.Figure(data=plot)
  91.     # fig.show()
  92.     prefix = "go-scatter-line"  # 保存ファイル名の接頭辞
  93.     save_name = f"{prefix}_default_scatter"
  94.     pio.write_html(fig, f"{save_name}.html")
  95.     pio.write_image(fig, f"{save_name}.png")
  96.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement