bayesian-risk / app.py
modernai's picture
Update app.py
a757375 verified
Raw
History Blame
1.49 kB
import gradio as gr
import altair as alt
import pandas as pd
import os
def create_portfolio_graph(amount):
# Calculate positions based on the provided amount
long_position = float(os.getenv('LONG_PORTION')) * amount
short_position = float(os.getenv('SHORT_PORTION')) * amount
# Data for the bars
positions = ['Long Position', 'Short Position']
percentages = [long_position, short_position]
data = pd.DataFrame({'Position': positions, 'Percentage': percentages})
# Creating the bar plot with adjusted width and colors
chart = alt.Chart(data).mark_bar().encode(
x=alt.X('Position:N', axis=alt.Axis(title=None)),
y=alt.Y('Percentage:Q', axis=alt.Axis(title='Funds')),
color=alt.Color('Position:N', scale=alt.Scale(range=['blue', 'red']))
).properties(width=400) # Adjust width as needed
return chart
with gr.Blocks() as demo:
title = gr.Markdown(
"""
# Insert Portfolio Value and Click Submit to See the Recommended Portfolio Allocation
"""
)
amount = gr.Number(value=0, label="Type in the total amount of funds in your portfolio including leverage")
button = gr.Button(value="Submit")
plot = gr.Plot(label="Portfolio Composition Chart")
demo.load(create_portfolio_graph, inputs=[amount], outputs=[plot])
button.click(create_portfolio_graph, [amount], plot)
if __name__ == "__main__":
demo.launch()