import plotly.graph_objects as go import gradio as gr def create_gauge(): fig = go.Figure(go.Indicator( mode="gauge+number", value=76, gauge={ 'axis': {'range': [0, 100]}, 'bar': {'color': "black"}, # Цвет стрелки 'steps': [ {'range': [0, 40], 'color': "#55efc4"}, # Мягкий зеленый {'range': [40, 70], 'color': "#ffeaa7"}, # Желтый {'range': [70, 100], 'color': "#ff7675"} # Мягкий красный ], 'threshold': { 'line': {'color': "black", 'width': 4}, 'thickness': 0.75, 'value': 76 } }, number={'font': {'size': 48}} # Размер шрифта числа )) fig.update_layout(paper_bgcolor="#f8f9fa", # Цвет фона font={'color': "#2d3436", 'family': "Arial"}) # Цвет текста return fig def update_plot(): return create_gauge() with gr.Blocks() as demo: gr.Markdown("## Улучшенный спидометр с вероятностью успеха") with gr.Row(): plot = gr.Plot(label="Success Rate Gauge") with gr.Row(): update_button = gr.Button("Показать спидометр") update_button.click(fn=update_plot, inputs=[], outputs=plot) demo.launch()