-
Notifications
You must be signed in to change notification settings - Fork 0
/
charts.py
59 lines (37 loc) · 1.71 KB
/
charts.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
from bokeh.plotting import figure, show
from bokeh.models import ColumnDataSource, HoverTool
from bokeh.io import output_file
from datetime import datetime
import sys
def make_chart(uid, average_compute_time, accuracy_percentage):
output_file(f"accuracy_vs_performance_{uid}.html")
# Data for the chart
data = {
'Average Compute Time (microseconds)': [round(average_compute_time * 1e9, -2)/1000],
'Accuracy Percentage': [accuracy_percentage]
}
source = ColumnDataSource(data=data)
# Create the figure with Datetime axis type
p = figure(x_axis_label='Average Compute Time (microseconds)',
y_axis_label='Accuracy Percentage',
title='Accuracy vs. Performance',
sizing_mode='scale_width', # Use 'scale_width' to fit to the available width
height=500) # Set the height of the figure
# Plot the data
p.circle('Average Compute Time (microseconds)', 'Accuracy Percentage', size=10, source=source, color='blue', alpha=0.5)
# Convert the x-axis labels to Datetime format
p.xaxis.formatter.use_scientific = False
p.xaxis.major_label_orientation = 45
# Add hover tool
hover = HoverTool()
hover.tooltips = [('Average Compute Time', '@{Average Compute Time (microseconds)}{0.0} microseconds'),
('Accuracy', '@{Accuracy Percentage}%')]
p.add_tools(hover)
# Show the chart
show(p)
if __name__ == '__main__':
if len(sys.argv) < 4:
sys.exit(1)
uid, average_compute_time, accuracy_percentage = sys.argv[1:]
make_chart(uid, float(average_compute_time), float(accuracy_percentage))
print(f"\tGraph generated in 'accuracy_vs_performance_{uid}.html'\n")