AmirTrader commited on
Commit
4f0eada
·
verified ·
1 Parent(s): 2aab033

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +9 -6
app.py CHANGED
@@ -25,13 +25,16 @@ todaydate = pn.widgets.DatePicker(
25
  todaydate2 = datetime.today().strftime("%Y-%m-%d")
26
  df = get_df(todaydate2)
27
  selectedcol = pn.widgets.Select(name='Select Ratio', value = 'PEG Ratio', options=list(df.columns))
28
- selecteditem = pn.widgets.Select(name='Select Item', options=['Industry' , 'Sector'])
29
  selectedmethod = pn.widgets.Select(name='Select Method', value= 'Mean' , options=['Mean', 'Min' , 'Max'])
30
 
 
 
 
31
  selectedhover = 'Ticker'
32
  hv.extension('bokeh')
33
 
34
- def create_plot(selectedcol,selecteditem,todaydate,selectedmethod):
35
  df = get_df(todaydate)
36
  if selectedmethod=='Mean':
37
  group_them = df.groupby(selecteditem)[selectedcol].mean()
@@ -40,16 +43,16 @@ def create_plot(selectedcol,selecteditem,todaydate,selectedmethod):
40
  if selectedmethod=='Max':
41
  group_them = df.groupby(selecteditem)[selectedcol].max()
42
  df2 = df.merge(group_them, left_on=selecteditem, right_index=True, suffixes=('', f'_{selecteditem}_{selectedmethod}'))
43
-
44
- return df2.hvplot.bar(x=selecteditem, y=f'{selectedcol}_{selecteditem}_{selectedmethod}', hover_cols=selectedhover, height=800, width=1800).opts(xrotation=90, fontsize={'xticks': 10}).opts(show_grid=True)
45
 
46
  def create_alert(selectedcol):
47
  text = f"### {selectedcol} \n {DescriptionDict[selectedcol]}"
48
  return pn.pane.Alert(text, alert_type="warning")
49
 
50
 
51
- bound_plot = pn.bind(create_plot, selectedcol=selectedcol , selecteditem=selecteditem, todaydate=todaydate, selectedmethod=selectedmethod)
52
  bound_alert = pn.bind(create_alert,selectedcol=selectedcol)
53
- pn.Column(pn.Row(selectedcol, selecteditem, todaydate,selectedmethod), bound_plot, bound_alert).servable(title="Financial Sector Ratios Navigator")
54
 
55
 
 
25
  todaydate2 = datetime.today().strftime("%Y-%m-%d")
26
  df = get_df(todaydate2)
27
  selectedcol = pn.widgets.Select(name='Select Ratio', value = 'PEG Ratio', options=list(df.columns))
28
+ selecteditem = pn.widgets.Select(name='Select Item', value='Sector' , options=['Industry' , 'Sector'])
29
  selectedmethod = pn.widgets.Select(name='Select Method', value= 'Mean' , options=['Mean', 'Min' , 'Max'])
30
 
31
+ ticker = pn.widgets.AutocompleteInput(name='Ticker', options=list(df.Ticker) , placeholder='Write Ticker here همین جا')
32
+ ticker.value = "AAPL"
33
+
34
  selectedhover = 'Ticker'
35
  hv.extension('bokeh')
36
 
37
+ def create_plot(selectedcol,selecteditem,todaydate,selectedmethod,ticker):
38
  df = get_df(todaydate)
39
  if selectedmethod=='Mean':
40
  group_them = df.groupby(selecteditem)[selectedcol].mean()
 
43
  if selectedmethod=='Max':
44
  group_them = df.groupby(selecteditem)[selectedcol].max()
45
  df2 = df.merge(group_them, left_on=selecteditem, right_index=True, suffixes=('', f'_{selecteditem}_{selectedmethod}'))
46
+ df3 = df.query('Ticker == @ticker')
47
+ return df2.hvplot.bar(x=selecteditem, y=f'{selectedcol}_{selecteditem}_{selectedmethod}', hover_cols=selectedhover, height=800, width=1800).opts(xrotation=90, fontsize={'xticks': 10}).opts(show_grid=True) * df3.hvplot.bar(x=selecteditem, y=f'{selectedcol}',hover_cols=selectedhover,)
48
 
49
  def create_alert(selectedcol):
50
  text = f"### {selectedcol} \n {DescriptionDict[selectedcol]}"
51
  return pn.pane.Alert(text, alert_type="warning")
52
 
53
 
54
+ bound_plot = pn.bind(create_plot, selectedcol=selectedcol , selecteditem=selecteditem, todaydate=todaydate, selectedmethod=selectedmethod,ticker=ticker)
55
  bound_alert = pn.bind(create_alert,selectedcol=selectedcol)
56
+ pn.Column(pn.Row(selectedcol, selecteditem, todaydate,selectedmethod,ticker), bound_plot, bound_alert).servable(title="Financial Sector Ratios Navigator")
57
 
58