GarGerry commited on
Commit
345ac6c
·
verified ·
1 Parent(s): 982cc21

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +12 -12
app.py CHANGED
@@ -97,24 +97,24 @@ if st.button("Analisis Portofolio"):
97
  portfolio_weights = {stock: weight for stock, weight in zip(stock_data.columns, optimal_weights)}
98
  st.write(portfolio_weights)
99
 
100
- # Pie Chart dengan filter saham dengan bobot signifikan
101
- filtered_weights = {k: v for k, v in portfolio_weights.items() if v > 0.01}
 
 
 
 
 
 
102
  fig, ax = plt.subplots()
103
- ax.pie(
104
- filtered_weights.values(),
105
- labels=filtered_weights.keys(),
106
- autopct=lambda p: f'{p:.1f}%' if p > 1 else '', # Hanya tampilkan jika > 1%
107
- startangle=140,
108
- pctdistance=0.85 # Mengatur jarak label agar lebih terlihat
109
- )
110
  ax.axis('equal')
111
  st.pyplot(fig)
112
 
113
  st.markdown("""
114
  **Interpretasi Pie Chart:**
115
  - Pie chart ini menunjukkan distribusi bobot optimal dari setiap saham dalam portofolio.
116
- - Semakin besar persentase suatu saham, semakin besar porsi dana yang dialokasikan ke saham tersebut dalam portofolio optimal.
117
- - Saham dengan bobot nol berarti tidak termasuk dalam portofolio optimal karena tidak memberikan kombinasi return dan risiko yang menguntungkan.
118
  - Portofolio optimal didasarkan pada perhitungan rasio Sharpe, yang mencari keseimbangan terbaik antara return dan risiko.
119
  """)
120
 
@@ -132,7 +132,7 @@ if st.button("Analisis Portofolio"):
132
 
133
  st.markdown("""
134
  **Interpretasi:**
135
- - **Bobot Portofolio Optimal**: Menunjukkan alokasi dana ke setiap saham. Saham dengan bobot nol berarti tidak termasuk dalam portofolio optimal.
136
  - **Grafik Efficient Frontier**:
137
  - Sumbu **X**: Risiko (diukur dengan standar deviasi return portofolio).
138
  - Sumbu **Y**: Return tahunan dari berbagai kombinasi portofolio.
 
97
  portfolio_weights = {stock: weight for stock, weight in zip(stock_data.columns, optimal_weights)}
98
  st.write(portfolio_weights)
99
 
100
+ # Pie Chart dengan pengelompokan saham kecil ke "Others"
101
+ threshold = 0.05 # Saham dengan bobot <5% digabung ke "Others"
102
+ large_weights = {k: v for k, v in portfolio_weights.items() if v >= threshold}
103
+ small_weights = {k: v for k, v in portfolio_weights.items() if v < threshold}
104
+
105
+ if small_weights:
106
+ large_weights["Others"] = sum(small_weights.values())
107
+
108
  fig, ax = plt.subplots()
109
+ ax.pie(large_weights.values(), labels=large_weights.keys(), autopct='%1.1f%%', startangle=140)
 
 
 
 
 
 
110
  ax.axis('equal')
111
  st.pyplot(fig)
112
 
113
  st.markdown("""
114
  **Interpretasi Pie Chart:**
115
  - Pie chart ini menunjukkan distribusi bobot optimal dari setiap saham dalam portofolio.
116
+ - Saham dengan bobot signifikan ditampilkan dengan persentase masing-masing.
117
+ - Saham dengan bobot kecil (<5%) digabung ke dalam kategori "Others".
118
  - Portofolio optimal didasarkan pada perhitungan rasio Sharpe, yang mencari keseimbangan terbaik antara return dan risiko.
119
  """)
120
 
 
132
 
133
  st.markdown("""
134
  **Interpretasi:**
135
+ - **Bobot Portofolio Optimal**: Menunjukkan alokasi dana ke setiap saham.
136
  - **Grafik Efficient Frontier**:
137
  - Sumbu **X**: Risiko (diukur dengan standar deviasi return portofolio).
138
  - Sumbu **Y**: Return tahunan dari berbagai kombinasi portofolio.