I have pared my example down to a minimal example (the data is small but still takes up a lot of vertical room). What I am experiencing is about 10 seconds of render time.
I am trying to figure out if that is an expected length of time or if I have done something glaringly wrong/inefficient in my generation of the plots.
The rendering was taking about 30 seconds, then I sorted the data and now it is down to about 8-10 seconds on a three different machines. That time is consistent when doing ctrl+shift+r to refresh the page and have it loaded again.
Bokeh version: 12.7
I have never had this kind of slowness before, but this is my first time using the gridplot and have been trying different methods for a few days - finally I thought to post here to see if this is the expected render time for plots arranged like this.
Here is the script:
import pandas as pd
from bokeh.plotting import figure, show, output_file
from bokeh.models import LinearAxis, Range1d, ColumnDataSource, NumeralTickFormatter
from bokeh.layouts import gridplot
inputof = {‘attr_z’: {0: ‘TYPE_A’,
1: ‘TYPE_A’,
2: ‘TYPE_A’,
3: ‘TYPE_B’,
4: ‘TYPE_B’,
5: ‘TYPE_B’,
6: ‘TYPE_B’,
7: ‘TYPE_B’,
8: ‘TYPE_B’,
9: ‘TYPE_C’,
10: ‘TYPE_C’,
11: ‘TYPE_C’,
12: ‘TYPE_C’,
13: ‘TYPE_C’,
14: ‘TYPE_C’,
15: ‘TYPE_Z’,
16: ‘TYPE_Z’,
17: ‘TYPE_Z’,
18: ‘TYPE_Z’,
19: ‘TYPE_Z’,
20: ‘TYPE_Z’,
21: ‘TYPE_D’,
22: ‘TYPE_D’,
23: ‘TYPE_D’,
24: ‘TYPE_D’,
25: ‘TYPE_D’,
26: ‘TYPE_D’,
27: ‘TYPE_FF’,
28: ‘TYPE_FF’,
29: ‘TYPE_FF’,
30: ‘TYPE_FF’,
31: ‘TYPE_FF’,
32: ‘TYPE_FF’,
33: ‘TYPE_E’,
34: ‘TYPE_E’,
35: ‘TYPE_E’,
36: ‘TYPE_E’,
37: ‘TYPE_E’,
38: ‘TYPE_E’,
39: ‘TYPE_F’,
40: ‘TYPE_F’,
41: ‘TYPE_F’,
42: ‘TYPE_F’,
43: ‘TYPE_F’,
44: ‘TYPE_F’,
45: ‘TYPE_G’,
46: ‘TYPE_G’,
47: ‘TYPE_G’,
48: ‘TYPE_G’,
49: ‘TYPE_G’,
50: ‘TYPE_G’,
51: ‘TYPE_H’,
52: ‘TYPE_H’,
53: ‘TYPE_H’,
54: ‘TYPE_I’,
55: ‘TYPE_I’,
56: ‘TYPE_I’,
57: ‘TYPE_I’,
58: ‘TYPE_I’,
59: ‘TYPE_I’,
60: ‘TYPE_J’,
61: ‘TYPE_J’,
62: ‘TYPE_J’,
63: ‘TYPE_J’,
64: ‘TYPE_J’,
65: ‘TYPE_J’,
66: ‘TYPE_K’,
67: ‘TYPE_K’,
68: ‘TYPE_K’,
69: ‘TYPE_K’,
70: ‘TYPE_K’,
71: ‘TYPE_K’,
72: ‘TYPE_L’,
73: ‘TYPE_L’,
74: ‘TYPE_L’,
75: ‘TYPE_L’,
76: ‘TYPE_L’,
77: ‘TYPE_L’,
78: ‘TYPE_M’,
79: ‘TYPE_M’,
80: ‘TYPE_M’,
81: ‘TYPE_N’,
82: ‘TYPE_N’,
83: ‘TYPE_N’,
84: ‘TYPE_N’,
85: ‘TYPE_N’,
86: ‘TYPE_N’,
87: ‘TYPE_O’,
88: ‘TYPE_O’,
89: ‘TYPE_O’,
90: ‘TYPE_O’,
91: ‘TYPE_O’,
92: ‘TYPE_O’,
93: ‘TYPE_P’,
94: ‘TYPE_P’,
95: ‘TYPE_P’,
96: ‘TYPE_P’,
97: ‘TYPE_P’,
98: ‘TYPE_P’,
99: ‘TYPE_Q’,
100: ‘TYPE_Q’,
101: ‘TYPE_Q’,
102: ‘TYPE_Q’,
103: ‘TYPE_Q’,
104: ‘TYPE_Q’,
105: ‘TYPE_R’,
106: ‘TYPE_R’,
107: ‘TYPE_R’,
108: ‘TYPE_R’,
109: ‘TYPE_R’,
110: ‘TYPE_R’,
111: ‘TYPE_S’,
112: ‘TYPE_S’,
113: ‘TYPE_S’,
114: ‘TYPE_S’,
115: ‘TYPE_S’,
116: ‘TYPE_S’,
117: ‘TYPE_T’,
118: ‘TYPE_T’,
119: ‘TYPE_T’,
120: ‘TYPE_T’,
121: ‘TYPE_T’,
122: ‘TYPE_T’,
123: ‘TYPE_U’,
124: ‘TYPE_U’,
125: ‘TYPE_U’,
126: ‘TYPE_U’,
127: ‘TYPE_U’,
128: ‘TYPE_U’},
‘actual_color’: {0: ‘#58D68D’,
1: ‘#F5B041’,
2: ‘#D7DF01’,
3: ‘#F5B041’,
4: ‘#F5B041’,
5: ‘#D7DF01’,
6: ‘#D7DF01’,
7: ‘#58D68D’,
8: ‘#58D68D’,
9: ‘#F5B041’,
10: ‘#D7DF01’,
11: ‘#58D68D’,
12: ‘#F5B041’,
13: ‘#58D68D’,
14: ‘#D7DF01’,
15: ‘#D7DF01’,
16: ‘#58D68D’,
17: ‘#58D68D’,
18: ‘#D7DF01’,
19: ‘#F5B041’,
20: ‘#F5B041’,
21: ‘#F5B041’,
22: ‘#58D68D’,
23: ‘#D7DF01’,
24: ‘#F5B041’,
25: ‘#D7DF01’,
26: ‘#58D68D’,
27: ‘#F5B041’,
28: ‘#F5B041’,
29: ‘#58D68D’,
30: ‘#D7DF01’,
31: ‘#58D68D’,
32: ‘#D7DF01’,
33: ‘#D7DF01’,
34: ‘#F5B041’,
35: ‘#58D68D’,
36: ‘#58D68D’,
37: ‘#D7DF01’,
38: ‘#F5B041’,
39: ‘#D7DF01’,
40: ‘#D7DF01’,
41: ‘#58D68D’,
42: ‘#58D68D’,
43: ‘#F5B041’,
44: ‘#F5B041’,
45: ‘#F5B041’,
46: ‘#D7DF01’,
47: ‘#F5B041’,
48: ‘#D7DF01’,
49: ‘#58D68D’,
50: ‘#58D68D’,
51: ‘#58D68D’,
52: ‘#F5B041’,
53: ‘#D7DF01’,
54: ‘#D7DF01’,
55: ‘#58D68D’,
56: ‘#58D68D’,
57: ‘#F5B041’,
58: ‘#F5B041’,
59: ‘#D7DF01’,
60: ‘#D7DF01’,
61: ‘#F5B041’,
62: ‘#D7DF01’,
63: ‘#F5B041’,
64: ‘#58D68D’,
65: ‘#58D68D’,
66: ‘#F5B041’,
67: ‘#D7DF01’,
68: ‘#58D68D’,
69: ‘#F5B041’,
70: ‘#D7DF01’,
71: ‘#58D68D’,
72: ‘#D7DF01’,
73: ‘#F5B041’,
74: ‘#D7DF01’,
75: ‘#F5B041’,
76: ‘#58D68D’,
77: ‘#58D68D’,
78: ‘#F5B041’,
79: ‘#58D68D’,
80: ‘#D7DF01’,
81: ‘#58D68D’,
82: ‘#58D68D’,
83: ‘#D7DF01’,
84: ‘#F5B041’,
85: ‘#D7DF01’,
86: ‘#F5B041’,
87: ‘#D7DF01’,
88: ‘#58D68D’,
89: ‘#F5B041’,
90: ‘#F5B041’,
91: ‘#58D68D’,
92: ‘#D7DF01’,
93: ‘#F5B041’,
94: ‘#D7DF01’,
95: ‘#F5B041’,
96: ‘#58D68D’,
97: ‘#58D68D’,
98: ‘#D7DF01’,
99: ‘#D7DF01’,
100: ‘#D7DF01’,
101: ‘#F5B041’,
102: ‘#F5B041’,
103: ‘#58D68D’,
104: ‘#58D68D’,
105: ‘#58D68D’,
106: ‘#D7DF01’,
107: ‘#D7DF01’,
108: ‘#F5B041’,
109: ‘#58D68D’,
110: ‘#F5B041’,
111: ‘#58D68D’,
112: ‘#D7DF01’,
113: ‘#D7DF01’,
114: ‘#F5B041’,
115: ‘#F5B041’,
116: ‘#58D68D’,
117: ‘#F5B041’,
118: ‘#D7DF01’,
119: ‘#F5B041’,
120: ‘#D7DF01’,
121: ‘#58D68D’,
122: ‘#58D68D’,
123: ‘#F5B041’,
124: ‘#F5B041’,
125: ‘#58D68D’,
126: ‘#58D68D’,
127: ‘#D7DF01’,
128: ‘#D7DF01’},
‘m_color’: {0: 0,
1: 1,
2: 2,
3: 1,
4: 1,
5: 2,
6: 2,
7: 0,
8: 0,
9: 1,
10: 2,
11: 0,
12: 1,
13: 0,
14: 2,
15: 2,
16: 0,
17: 0,
18: 2,
19: 1,
20: 1,
21: 1,
22: 0,
23: 2,
24: 1,
25: 2,
26: 0,
27: 1,
28: 1,
29: 0,
30: 2,
31: 0,
32: 2,
33: 2,
34: 1,
35: 0,
36: 0,
37: 2,
38: 1,
39: 2,
40: 2,
41: 0,
42: 0,
43: 1,
44: 1,
45: 1,
46: 2,
47: 1,
48: 2,
49: 0,
50: 0,
51: 0,
52: 1,
53: 2,
54: 2,
55: 0,
56: 0,
57: 1,
58: 1,
59: 2,
60: 2,
61: 1,
62: 2,
63: 1,
64: 0,
65: 0,
66: 1,
67: 2,
68: 0,
69: 1,
70: 2,
71: 0,
72: 2,
73: 1,
74: 2,
75: 1,
76: 0,
77: 0,
78: 1,
79: 0,
80: 2,
81: 0,
82: 0,
83: 2,
84: 1,
85: 2,
86: 1,
87: 2,
88: 0,
89: 1,
90: 1,
91: 0,
92: 2,
93: 1,
94: 2,
95: 1,
96: 0,
97: 0,
98: 2,
99: 2,
100: 2,
101: 1,
102: 1,
103: 0,
104: 0,
105: 0,
106: 2,
107: 2,
108: 1,
109: 0,
110: 1,
111: 0,
112: 2,
113: 2,
114: 1,
115: 1,
116: 0,
117: 1,
118: 2,
119: 1,
120: 2,
121: 0,
122: 0,
123: 1,
124: 1,
125: 0,
126: 0,
127: 2,
128: 2},
‘m_sorting’: {0: 0,
1: 2,
2: 4,
3: 2,
4: 3,
5: 4,
6: 5,
7: 1,
8: 0,
9: 2,
10: 5,
11: 0,
12: 3,
13: 1,
14: 4,
15: 5,
16: 1,
17: 0,
18: 4,
19: 3,
20: 2,
21: 2,
22: 1,
23: 4,
24: 3,
25: 5,
26: 0,
27: 2,
28: 3,
29: 1,
30: 5,
31: 0,
32: 4,
33: 5,
34: 3,
35: 1,
36: 0,
37: 4,
38: 2,
39: 4,
40: 5,
41: 1,
42: 0,
43: 3,
44: 2,
45: 2,
46: 4,
47: 3,
48: 5,
49: 1,
50: 0,
51: 0,
52: 2,
53: 4,
54: 5,
55: 1,
56: 0,
57: 3,
58: 2,
59: 4,
60: 4,
61: 2,
62: 5,
63: 3,
64: 1,
65: 0,
66: 2,
67: 5,
68: 0,
69: 3,
70: 4,
71: 1,
72: 5,
73: 3,
74: 4,
75: 2,
76: 1,
77: 0,
78: 2,
79: 0,
80: 4,
81: 1,
82: 0,
83: 4,
84: 2,
85: 5,
86: 3,
87: 4,
88: 0,
89: 3,
90: 2,
91: 1,
92: 5,
93: 2,
94: 5,
95: 3,
96: 0,
97: 1,
98: 4,
99: 4,
100: 5,
101: 3,
102: 2,
103: 1,
104: 0,
105: 0,
106: 5,
107: 4,
108: 2,
109: 1,
110: 3,
111: 0,
112: 5,
113: 4,
114: 3,
115: 2,
116: 1,
117: 2,
118: 4,
119: 3,
120: 5,
121: 1,
122: 0,
123: 3,
124: 2,
125: 1,
126: 0,
127: 4,
128: 5},
‘size’: {0: 3,
1: 6,
2: 9,
3: 6,
4: 4,
5: 9,
6: 4,
7: 3,
8: 3,
9: 6,
10: 5,
11: 3,
12: 5,
13: 3,
14: 9,
15: 9,
16: 3,
17: 3,
18: 9,
19: 6,
20: 6,
21: 6,
22: 3,
23: 9,
24: 4,
25: 4,
26: 3,
27: 6,
28: 6,
29: 3,
30: 9,
31: 3,
32: 9,
33: 1,
34: 1,
35: 1,
36: 3,
37: 9,
38: 6,
39: 9,
40: 3,
41: 3,
42: 3,
43: 3,
44: 6,
45: 6,
46: 9,
47: 1,
48: 1,
49: 1,
50: 3,
51: 3,
52: 6,
53: 9,
54: 9,
55: 3,
56: 3,
57: 6,
58: 6,
59: 9,
60: 9,
61: 6,
62: 4,
63: 4,
64: 3,
65: 3,
66: 6,
67: 3,
68: 3,
69: 3,
70: 9,
71: 3,
72: 5,
73: 5,
74: 9,
75: 6,
76: 3,
77: 3,
78: 6,
79: 3,
80: 9,
81: 3,
82: 3,
83: 9,
84: 6,
85: 3,
86: 3,
87: 9,
88: 3,
89: 6,
90: 6,
91: 3,
92: 9,
93: 6,
94: 5,
95: 5,
96: 3,
97: 3,
98: 9,
99: 9,
100: 9,
101: 6,
102: 6,
103: 3,
104: 3,
105: 3,
106: 9,
107: 9,
108: 6,
109: 3,
110: 6,
111: 3,
112: 8,
113: 9,
114: 6,
115: 6,
116: 3,
117: 6,
118: 9,
119: 5,
120: 5,
121: 3,
122: 3,
123: 2,
124: 6,
125: 2,
126: 3,
127: 9,
128: 2},
‘source’: {0: ‘3_weeks_prior’,
1: ‘6_weeks_prior’,
2: ‘9_weeks_prior’,
3: ‘6_weeks_prior’,
4: ‘6_weeks_post’,
5: ‘9_weeks_prior’,
6: ‘9_weeks_post’,
7: ‘3_weeks_post’,
8: ‘3_weeks_prior’,
9: ‘6_weeks_prior’,
10: ‘9_weeks_post’,
11: ‘3_weeks_prior’,
12: ‘6_weeks_post’,
13: ‘3_weeks_post’,
14: ‘9_weeks_prior’,
15: ‘9_weeks_post’,
16: ‘3_weeks_post’,
17: ‘3_weeks_prior’,
18: ‘9_weeks_prior’,
19: ‘6_weeks_post’,
20: ‘6_weeks_prior’,
21: ‘6_weeks_prior’,
22: ‘3_weeks_post’,
23: ‘9_weeks_prior’,
24: ‘6_weeks_post’,
25: ‘9_weeks_post’,
26: ‘3_weeks_prior’,
27: ‘6_weeks_prior’,
28: ‘6_weeks_post’,
29: ‘3_weeks_post’,
30: ‘9_weeks_post’,
31: ‘3_weeks_prior’,
32: ‘9_weeks_prior’,
33: ‘9_weeks_post’,
34: ‘6_weeks_post’,
35: ‘3_weeks_post’,
36: ‘3_weeks_prior’,
37: ‘9_weeks_prior’,
38: ‘6_weeks_prior’,
39: ‘9_weeks_prior’,
40: ‘9_weeks_post’,
41: ‘3_weeks_post’,
42: ‘3_weeks_prior’,
43: ‘6_weeks_post’,
44: ‘6_weeks_prior’,
45: ‘6_weeks_prior’,
46: ‘9_weeks_prior’,
47: ‘6_weeks_post’,
48: ‘9_weeks_post’,
49: ‘3_weeks_post’,
50: ‘3_weeks_prior’,
51: ‘3_weeks_prior’,
52: ‘6_weeks_prior’,
53: ‘9_weeks_prior’,
54: ‘9_weeks_post’,
55: ‘3_weeks_post’,
56: ‘3_weeks_prior’,
57: ‘6_weeks_post’,
58: ‘6_weeks_prior’,
59: ‘9_weeks_prior’,
60: ‘9_weeks_prior’,
61: ‘6_weeks_prior’,
62: ‘9_weeks_post’,
63: ‘6_weeks_post’,
64: ‘3_weeks_post’,
65: ‘3_weeks_prior’,
66: ‘6_weeks_prior’,
67: ‘9_weeks_post’,
68: ‘3_weeks_prior’,
69: ‘6_weeks_post’,
70: ‘9_weeks_prior’,
71: ‘3_weeks_post’,
72: ‘9_weeks_post’,
73: ‘6_weeks_post’,
74: ‘9_weeks_prior’,
75: ‘6_weeks_prior’,
76: ‘3_weeks_post’,
77: ‘3_weeks_prior’,
78: ‘6_weeks_prior’,
79: ‘3_weeks_prior’,
80: ‘9_weeks_prior’,
81: ‘3_weeks_post’,
82: ‘3_weeks_prior’,
83: ‘9_weeks_prior’,
84: ‘6_weeks_prior’,
85: ‘9_weeks_post’,
86: ‘6_weeks_post’,
87: ‘9_weeks_prior’,
88: ‘3_weeks_prior’,
89: ‘6_weeks_post’,
90: ‘6_weeks_prior’,
91: ‘3_weeks_post’,
92: ‘9_weeks_post’,
93: ‘6_weeks_prior’,
94: ‘9_weeks_post’,
95: ‘6_weeks_post’,
96: ‘3_weeks_prior’,
97: ‘3_weeks_post’,
98: ‘9_weeks_prior’,
99: ‘9_weeks_prior’,
100: ‘9_weeks_post’,
101: ‘6_weeks_post’,
102: ‘6_weeks_prior’,
103: ‘3_weeks_post’,
104: ‘3_weeks_prior’,
105: ‘3_weeks_prior’,
106: ‘9_weeks_post’,
107: ‘9_weeks_prior’,
108: ‘6_weeks_prior’,
109: ‘3_weeks_post’,
110: ‘6_weeks_post’,
111: ‘3_weeks_prior’,
112: ‘9_weeks_post’,
113: ‘9_weeks_prior’,
114: ‘6_weeks_post’,
115: ‘6_weeks_prior’,
116: ‘3_weeks_post’,
117: ‘6_weeks_prior’,
118: ‘9_weeks_prior’,
119: ‘6_weeks_post’,
120: ‘9_weeks_post’,
121: ‘3_weeks_post’,
122: ‘3_weeks_prior’,
123: ‘6_weeks_post’,
124: ‘6_weeks_prior’,
125: ‘3_weeks_post’,
126: ‘3_weeks_prior’,
127: ‘9_weeks_prior’,
128: ‘9_weeks_post’},
‘attr_a’: {0: 0.0182370820668693,
1: 0.1010719754977029,
2: 0.16547497446373849,
3: 0.088669950738916245,
4: 0.086330935251798566,
5: 0.11612903225806449,
6: 0.086330935251798566,
7: 0.085714285714285715,
8: 0.029999999999999999,
9: 0.085714285714285715,
10: 0.0,
11: 0.084507042253521125,
12: 0.0,
13: 0.0,
14: 0.21531100478468901,
15: 0.016981132075471701,
16: 0.017341040462427751,
17: 0.067796610169491525,
18: 0.083487940630797772,
19: 0.01714285714285714,
20: 0.067988668555240786,
21: 0.090909090909090912,
22: 0.071428571428571425,
23: 0.17964071856287431,
24: 0.1076233183856502,
25: 0.1076233183856502,
26: 0.074999999999999997,
27: 0.2105263157894737,
28: 0.26785714285714279,
29: 0.052631578947368418,
30: 0.27108433734939757,
31: 0.052631578947368418,
32: 0.36842105263157893,
33: 0.034482758620689648,
34: 0.034482758620689648,
35: 0.034482758620689648,
36: 0.068571428571428575,
37: 0.18435754189944131,
38: 0.1359773371104816,
39: 0.078947368421052641,
40: 0.0,
41: 0.0,
42: 0.041095890410958909,
43: 0.0,
44: 0.039735099337748339,
45: 0.10000000000000001,
46: 0.1417322834645669,
47: 0.042857142857142858,
48: 0.042857142857142858,
49: 0.042857142857142858,
50: 0.028846153846153851,
51: 0.085051546391752567,
52: 0.16195372750642681,
53: 0.31619537275064269,
54: 0.0439453125,
55: 0.0086705202312138737,
56: 0.059829059829059832,
57: 0.03503649635036496,
58: 0.094285714285714278,
59: 0.15517241379310351,
60: 0.1198003327787022,
61: 0.10606060606060611,
62: 0.038314176245210732,
63: 0.038314176245210732,
64: 0.038363171355498722,
65: 0.098984771573604052,
66: 0.046332046332046337,
67: 0.0,
68: 0.0,
69: 0.0,
70: 0.048000000000000001,
71: 0.0,
72: 0.017182130584192441,
73: 0.017182130584192441,
74: 0.1003717472118959,
75: 0.049861495844875349,
76: 0.017341040462427751,
77: 0.01666666666666667,
78: 0.099447513812154692,
79: 0.032608695652173912,
80: 0.19926199261992619,
81: 0.020242914979757089,
82: 0.021186440677966101,
83: 0.0439453125,
84: 0.02178649237472767,
85: 0.020242914979757089,
86: 0.020242914979757089,
87: 0.43984962406015038,
88: 0.035714285714285712,
89: 0.07792207792207792,
90: 0.16949152542372881,
91: 0.036585365853658541,
92: 0.079295154185022032,
93: 0.1061946902654867,
94: 0.05281690140845071,
95: 0.05281690140845071,
96: 0.052325581395348833,
97: 0.017441860465116279,
98: 0.15728155339805819,
99: 0.045454545454545463,
100: 0.0,
101: 0.0,
102: 0.045454545454545463,
103: 0.0,
104: 0.0,
105: 0.01973684210526316,
106: 0.060133630289532287,
107: 0.079120879120879117,
108: 0.039473684210526321,
109: 0.0,
110: 0.040000000000000001,
111: 0.14457831325301199,
112: 0.34449760765550241,
113: 0.32270916334661348,
114: 0.33750000000000002,
115: 0.28742514970059879,
116: 0.14814814814814811,
117: 0.0,
118: 0.0,
119: 0.060975609756097567,
120: 0.060975609756097567,
121: 0.058823529411764712,
122: 0.0,
123: 0.079207920792079209,
124: 0.1584905660377359,
125: 0.079207920792079209,
126: 0.067669172932330823,
127: 0.40198511166253098,
128: 0.079207920792079209}}
spanner_df = pd.DataFrame(inputof)
mdu_list_of = list(spanner_df[‘attr_z’].value_counts().index)
range_of = list(spanner_df[‘source’].value_counts().index)
range_of_mass = spanner_df[[‘source’, ‘m_sorting’]].drop_duplicates()
range_of_mass.sort_values(by=‘m_sorting’, inplace=True)
range_of = list(range_of_mass[‘source’])
final_list =
output_file(“x_mdu_plot.html”)
for mdu in mdu_list_of:
source_of = ColumnDataSource(spanner_df[spanner_df[‘attr_z’] == mdu])
p = figure(plot_height = 500, plot_width = 900,
title="_ " + mdu + " details",
x_axis_label=“Periods of data”,
y_axis_label=“attr_a”,
x_range=range_of,
y_range=(0, spanner_df[spanner_df[‘attr_z’] == mdu][‘attr_a’].max()))
p.vbar(x=‘source’,
top=‘attr_a’,
bottom=0, width=0.5, fill_color=‘actual_color’,
line_color=None,
source=source_of)
p.extra_y_ranges = {“foo”: Range1d(start=0, end=10)}
p.add_layout(LinearAxis(y_range_name=“foo”, axis_label=“Number of areas”, axis_line_dash=‘dotted’), ‘right’)
p.circle(‘source’,
‘size’, color=‘black’,
y_range_name=“foo”,
legend=’# of weeks of data in period’,
#line_dash=‘dotted’,
line_color=‘black’,
fill_alpha=0.1,
radius=0.03,
source=source_of)
p.legend.location = “top_left”
p.legend.background_fill_alpha = 0.1
p.yaxis[0].formatter = NumeralTickFormatter(format=“0.0%”)
final_list.append(p)
final = gridplot([ for x in final_list])
show(final)