TensoraCO os1187 commited on
Commit
09b65fd
·
0 Parent(s):

Duplicate from os1187/Estimated_App_Rollout_Usage_Volume

Browse files

Co-authored-by: Oleg Seifert <os1187@users.noreply.huggingface.co>

Files changed (4) hide show
  1. .gitattributes +34 -0
  2. README.md +13 -0
  3. app.py +65 -0
  4. requirements.txt +5 -0
.gitattributes ADDED
@@ -0,0 +1,34 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ *.7z filter=lfs diff=lfs merge=lfs -text
2
+ *.arrow filter=lfs diff=lfs merge=lfs -text
3
+ *.bin filter=lfs diff=lfs merge=lfs -text
4
+ *.bz2 filter=lfs diff=lfs merge=lfs -text
5
+ *.ckpt filter=lfs diff=lfs merge=lfs -text
6
+ *.ftz filter=lfs diff=lfs merge=lfs -text
7
+ *.gz filter=lfs diff=lfs merge=lfs -text
8
+ *.h5 filter=lfs diff=lfs merge=lfs -text
9
+ *.joblib filter=lfs diff=lfs merge=lfs -text
10
+ *.lfs.* filter=lfs diff=lfs merge=lfs -text
11
+ *.mlmodel filter=lfs diff=lfs merge=lfs -text
12
+ *.model filter=lfs diff=lfs merge=lfs -text
13
+ *.msgpack filter=lfs diff=lfs merge=lfs -text
14
+ *.npy filter=lfs diff=lfs merge=lfs -text
15
+ *.npz filter=lfs diff=lfs merge=lfs -text
16
+ *.onnx filter=lfs diff=lfs merge=lfs -text
17
+ *.ot filter=lfs diff=lfs merge=lfs -text
18
+ *.parquet filter=lfs diff=lfs merge=lfs -text
19
+ *.pb filter=lfs diff=lfs merge=lfs -text
20
+ *.pickle filter=lfs diff=lfs merge=lfs -text
21
+ *.pkl filter=lfs diff=lfs merge=lfs -text
22
+ *.pt filter=lfs diff=lfs merge=lfs -text
23
+ *.pth filter=lfs diff=lfs merge=lfs -text
24
+ *.rar filter=lfs diff=lfs merge=lfs -text
25
+ *.safetensors filter=lfs diff=lfs merge=lfs -text
26
+ saved_model/**/* filter=lfs diff=lfs merge=lfs -text
27
+ *.tar.* filter=lfs diff=lfs merge=lfs -text
28
+ *.tflite filter=lfs diff=lfs merge=lfs -text
29
+ *.tgz filter=lfs diff=lfs merge=lfs -text
30
+ *.wasm filter=lfs diff=lfs merge=lfs -text
31
+ *.xz filter=lfs diff=lfs merge=lfs -text
32
+ *.zip filter=lfs diff=lfs merge=lfs -text
33
+ *.zst filter=lfs diff=lfs merge=lfs -text
34
+ *tfevents* filter=lfs diff=lfs merge=lfs -text
README.md ADDED
@@ -0,0 +1,13 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ title: Estimated App Rollout Usage Volume
3
+ emoji: 🏃
4
+ colorFrom: pink
5
+ colorTo: gray
6
+ sdk: gradio
7
+ sdk_version: 3.19.1
8
+ app_file: app.py
9
+ pinned: false
10
+ duplicated_from: os1187/Estimated_App_Rollout_Usage_Volume
11
+ ---
12
+
13
+ Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
app.py ADDED
@@ -0,0 +1,65 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import altair as alt
2
+ import gradio as gr
3
+ import pandas as pd
4
+ import numpy as np
5
+
6
+
7
+ def plot_usage_volume(system1, users1, timeline1, system2, users2, timeline2):
8
+ # Create empty dataframe to hold usage data
9
+ data = pd.DataFrame(columns=["System", "Month", "Usage"])
10
+
11
+ # Generate usage data for each system based on typical rollout behaviors
12
+ for i, system in enumerate([system1, system2]):
13
+ # Calculate the monthly usage volume based on the estimated number of users and timeline
14
+ usage = np.concatenate([
15
+ np.linspace(0, [users1, users2][i], int([timeline1, timeline2][i] * 0.25)),
16
+ np.linspace([users1, users2][i] * 0.5, [users1, users2][i], int([timeline1, timeline2][i] * 0.5)),
17
+ np.linspace([users1, users2][i], [users1, users2][i] * 0.75, int([timeline1, timeline2][i] * 0.25))
18
+ ])
19
+
20
+ # Add the usage data to the dataframe
21
+ months = ["Month {}".format(j) for j in range(1, len(usage) + 1)]
22
+ system_data = pd.DataFrame({"System": [system] * len(usage), "Month": months, "Usage": usage})
23
+ data = pd.concat([data, system_data], axis=0)
24
+
25
+ # Create a multiline plot of the usage volume for each system
26
+ line = alt.Chart(data).mark_line().encode(
27
+ x=alt.X('Month', sort=list(data['Month'].unique())),
28
+ y='Usage:Q',
29
+ color='System:N'
30
+ ).properties(title="System Rollout Usage Volume Plot")
31
+
32
+ # Create an aggregated line for the total usage across both systems
33
+ aggregated_data = data.groupby(['Month']).sum().reset_index()
34
+ aggregated_data['System'] = 'Total'
35
+ data = pd.concat([data, aggregated_data], axis=0)
36
+
37
+ aggregated_line = alt.Chart(aggregated_data).mark_line(color='black').encode(
38
+ x=alt.X('Month', sort=list(data['Month'].unique())),
39
+ y='Usage:Q'
40
+ )
41
+
42
+ # Combine the multiline and aggregated line plots
43
+ chart = alt.layer(line, aggregated_line)
44
+
45
+ # Return the plot as a Gradio output
46
+ return chart
47
+
48
+ # Define the input components
49
+ inputs = [
50
+ gr.inputs.Textbox(label="System 1 Name", default="System1"),
51
+ gr.inputs.Number(label="System 1 Users", default=1000),
52
+ gr.inputs.Number(label="System 1 Timeline (months)", default=12),
53
+ gr.inputs.Textbox(label="System 2 Name", default="System2"),
54
+ gr.inputs.Number(label="System 2 Users", default=500),
55
+ gr.inputs.Number(label="System 2 Timeline (months)", default=18)
56
+ ]
57
+
58
+ # Define the output component
59
+ output = gr.Plot(label="Usage Volume Plot")
60
+
61
+ # Create the interface
62
+ iface = gr.Interface(fn=plot_usage_volume, inputs=inputs, outputs=output, title="System Rollout Usage Volume Plot")
63
+
64
+ # Launch the interface
65
+ iface.launch()
requirements.txt ADDED
@@ -0,0 +1,5 @@
 
 
 
 
 
 
1
+ pandas
2
+ numpy
3
+ matplotlib
4
+ plotly
5
+ altair