Lashtw commited on
Commit
bcb1890
·
verified ·
1 Parent(s): c199ae7

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +37 -3
app.py CHANGED
@@ -3,6 +3,7 @@ import pandas as pd
3
  import requests
4
  import json
5
  from io import StringIO
 
6
 
7
  # 自訂 CSS 確保標題不換行並調整圖片大小
8
  st.markdown("""
@@ -49,11 +50,11 @@ col1, col2 = st.columns(2)
49
  with col1:
50
  if st.button("上一頁", disabled=st.session_state.page <= 0):
51
  st.session_state.page -= 1
52
- st.rerun() # 替換為 st.rerun()
53
  with col2:
54
  if st.button("下一頁", disabled=st.session_state.page >= len(image_data) - 1):
55
  st.session_state.page += 1
56
- st.rerun() # 替換為 st.rerun()
57
 
58
  # 顯示當前頁數
59
  st.write(f"頁面: {st.session_state.page + 1} / {len(image_data)}")
@@ -61,7 +62,7 @@ st.write(f"頁面: {st.session_state.page + 1} / {len(image_data)}")
61
  # 分隔線
62
  st.markdown("---")
63
 
64
- # 原始程式其餘部分
65
  def process_number(number):
66
  """查詢特定數字並返回結果"""
67
  url = f"https://www.angio.net/newpi/piquery?q={number}"
@@ -156,6 +157,39 @@ def main():
156
  file_name="processed_results.csv",
157
  mime="text/csv"
158
  )
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
159
 
160
  except Exception as e:
161
  st.error(f"處理檔案時發生錯誤: {str(e)}")
 
3
  import requests
4
  import json
5
  from io import StringIO
6
+ import plotly.express as px # 引入 Plotly 來繪製長條圖
7
 
8
  # 自訂 CSS 確保標題不換行並調整圖片大小
9
  st.markdown("""
 
50
  with col1:
51
  if st.button("上一頁", disabled=st.session_state.page <= 0):
52
  st.session_state.page -= 1
53
+ st.rerun()
54
  with col2:
55
  if st.button("下一頁", disabled=st.session_state.page >= len(image_data) - 1):
56
  st.session_state.page += 1
57
+ st.rerun()
58
 
59
  # 顯示當前頁數
60
  st.write(f"頁面: {st.session_state.page + 1} / {len(image_data)}")
 
62
  # 分隔線
63
  st.markdown("---")
64
 
65
+ # 查詢數字函數
66
  def process_number(number):
67
  """查詢特定數字並返回結果"""
68
  url = f"https://www.angio.net/newpi/piquery?q={number}"
 
157
  file_name="processed_results.csv",
158
  mime="text/csv"
159
  )
160
+
161
+ # 新增長條圖功能
162
+ st.subheader("查詢結果長條圖")
163
+ # 篩選有效數據(查詢結果不為 "數字不符規定" 且不為 None)
164
+ valid_df = df[df['查詢結果'].notna() & (df['查詢結果'] != "數字不符規定")].copy()
165
+
166
+ if not valid_df.empty:
167
+ # 將查詢結果轉為數值型
168
+ valid_df['查詢結果'] = valid_df['查詢結果'].astype(float)
169
+ # 拼接姓名和幸運號碼作為橫軸標籤
170
+ valid_df['姓名_幸運號碼'] = valid_df['姓名'] + "_" + valid_df['幸運號碼']
171
+ # 按照查詢結果從大到小排序
172
+ valid_df = valid_df.sort_values(by='查詢結果', ascending=False)
173
+
174
+ # 使用 Plotly 繪製長條圖
175
+ fig = px.bar(
176
+ valid_df,
177
+ x='姓名_幸運號碼',
178
+ y='查詢結果',
179
+ labels={'姓名_幸運號碼': '姓名與幸運號碼', '查詢結果': '查詢結果數值'},
180
+ title="幸運數字查詢結果長條圖(按數值從大到小排序)"
181
+ )
182
+ # 調整圖表佈局
183
+ fig.update_layout(
184
+ xaxis_title="姓名與幸運號碼",
185
+ yaxis_title="查詢結果數值",
186
+ xaxis_tickangle=-45, # 旋轉橫軸標籤以避免重疊
187
+ margin=dict(l=50, r=50, t=80, b=150) # 增加底部邊距以顯示完整標籤
188
+ )
189
+ # 顯示圖表
190
+ st.plotly_chart(fig, use_container_width=True)
191
+ else:
192
+ st.warning("無有效的查詢結果可供繪製長條圖。請確認資料是否正確。")
193
 
194
  except Exception as e:
195
  st.error(f"處理檔案時發生錯誤: {str(e)}")