moderne-visualizations-misc 0.72.0__py3-none-any.whl → 0.73.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,4199 @@
1
+ {
2
+ "cells": [
3
+ {
4
+ "cell_type": "code",
5
+ "execution_count": 1,
6
+ "metadata": {
7
+ "tags": [
8
+ "parameters"
9
+ ]
10
+ },
11
+ "outputs": [],
12
+ "source": [
13
+ "repository_filter: list[str] = []\n",
14
+ "top_n_classes: int = 50"
15
+ ]
16
+ },
17
+ {
18
+ "cell_type": "code",
19
+ "execution_count": 2,
20
+ "metadata": {},
21
+ "outputs": [
22
+ {
23
+ "data": {
24
+ "application/vnd.plotly.v1+json": {
25
+ "config": {
26
+ "plotlyServerURL": "https://plot.ly"
27
+ },
28
+ "data": [
29
+ {
30
+ "colorbar": {
31
+ "len": 0.7,
32
+ "thickness": 15,
33
+ "title": {
34
+ "text": "Normalized<br>Complexity"
35
+ }
36
+ },
37
+ "colorscale": [
38
+ [
39
+ 0,
40
+ "#E8F5E9"
41
+ ],
42
+ [
43
+ 0.2,
44
+ "#A5D6A7"
45
+ ],
46
+ [
47
+ 0.4,
48
+ "#FFE082"
49
+ ],
50
+ [
51
+ 0.6,
52
+ "#FFB74D"
53
+ ],
54
+ [
55
+ 0.8,
56
+ "#FF8A65"
57
+ ],
58
+ [
59
+ 1,
60
+ "#EF5350"
61
+ ]
62
+ ],
63
+ "hovertemplate": "<b>%{y}</b><br>%{text}<extra></extra>",
64
+ "text": [
65
+ [
66
+ "Method Count: 59",
67
+ "Avg Complexity: 5.7",
68
+ "Max Complexity: 25",
69
+ "Total Complexity: 339"
70
+ ],
71
+ [
72
+ "Method Count: 103",
73
+ "Avg Complexity: 2.3",
74
+ "Max Complexity: 4",
75
+ "Total Complexity: 232"
76
+ ],
77
+ [
78
+ "Method Count: 46",
79
+ "Avg Complexity: 4.5",
80
+ "Max Complexity: 23",
81
+ "Total Complexity: 207"
82
+ ],
83
+ [
84
+ "Method Count: 13",
85
+ "Avg Complexity: 34.8",
86
+ "Max Complexity: 247",
87
+ "Total Complexity: 452"
88
+ ],
89
+ [
90
+ "Method Count: 55",
91
+ "Avg Complexity: 6.1",
92
+ "Max Complexity: 48",
93
+ "Total Complexity: 336"
94
+ ],
95
+ [
96
+ "Method Count: 29",
97
+ "Avg Complexity: 14.0",
98
+ "Max Complexity: 210",
99
+ "Total Complexity: 405"
100
+ ],
101
+ [
102
+ "Method Count: 57",
103
+ "Avg Complexity: 7.0",
104
+ "Max Complexity: 223",
105
+ "Total Complexity: 399"
106
+ ],
107
+ [
108
+ "Method Count: 18",
109
+ "Avg Complexity: 13.2",
110
+ "Max Complexity: 195",
111
+ "Total Complexity: 238"
112
+ ],
113
+ [
114
+ "Method Count: 14",
115
+ "Avg Complexity: 19.9",
116
+ "Max Complexity: 99",
117
+ "Total Complexity: 278"
118
+ ],
119
+ [
120
+ "Method Count: 240",
121
+ "Avg Complexity: 1.0",
122
+ "Max Complexity: 1",
123
+ "Total Complexity: 240"
124
+ ],
125
+ [
126
+ "Method Count: 49",
127
+ "Avg Complexity: 4.1",
128
+ "Max Complexity: 14",
129
+ "Total Complexity: 199"
130
+ ],
131
+ [
132
+ "Method Count: 460",
133
+ "Avg Complexity: 1.0",
134
+ "Max Complexity: 1",
135
+ "Total Complexity: 460"
136
+ ],
137
+ [
138
+ "Method Count: 14",
139
+ "Avg Complexity: 19.9",
140
+ "Max Complexity: 99",
141
+ "Total Complexity: 278"
142
+ ],
143
+ [
144
+ "Method Count: 171",
145
+ "Avg Complexity: 1.5",
146
+ "Max Complexity: 80",
147
+ "Total Complexity: 252"
148
+ ],
149
+ [
150
+ "Method Count: 60",
151
+ "Avg Complexity: 3.4",
152
+ "Max Complexity: 43",
153
+ "Total Complexity: 205"
154
+ ],
155
+ [
156
+ "Method Count: 171",
157
+ "Avg Complexity: 1.1",
158
+ "Max Complexity: 7",
159
+ "Total Complexity: 194"
160
+ ],
161
+ [
162
+ "Method Count: 78",
163
+ "Avg Complexity: 2.6",
164
+ "Max Complexity: 37",
165
+ "Total Complexity: 203"
166
+ ],
167
+ [
168
+ "Method Count: 348",
169
+ "Avg Complexity: 1.1",
170
+ "Max Complexity: 5",
171
+ "Total Complexity: 374"
172
+ ],
173
+ [
174
+ "Method Count: 558",
175
+ "Avg Complexity: 1.0",
176
+ "Max Complexity: 6",
177
+ "Total Complexity: 580"
178
+ ],
179
+ [
180
+ "Method Count: 277",
181
+ "Avg Complexity: 1.0",
182
+ "Max Complexity: 1",
183
+ "Total Complexity: 277"
184
+ ],
185
+ [
186
+ "Method Count: 275",
187
+ "Avg Complexity: 1.0",
188
+ "Max Complexity: 1",
189
+ "Total Complexity: 275"
190
+ ],
191
+ [
192
+ "Method Count: 282",
193
+ "Avg Complexity: 1.0",
194
+ "Max Complexity: 1",
195
+ "Total Complexity: 282"
196
+ ],
197
+ [
198
+ "Method Count: 277",
199
+ "Avg Complexity: 1.0",
200
+ "Max Complexity: 1",
201
+ "Total Complexity: 277"
202
+ ],
203
+ [
204
+ "Method Count: 270",
205
+ "Avg Complexity: 1.0",
206
+ "Max Complexity: 1",
207
+ "Total Complexity: 270"
208
+ ],
209
+ [
210
+ "Method Count: 303",
211
+ "Avg Complexity: 1.0",
212
+ "Max Complexity: 3",
213
+ "Total Complexity: 313"
214
+ ],
215
+ [
216
+ "Method Count: 295",
217
+ "Avg Complexity: 1.0",
218
+ "Max Complexity: 4",
219
+ "Total Complexity: 307"
220
+ ],
221
+ [
222
+ "Method Count: 235",
223
+ "Avg Complexity: 1.0",
224
+ "Max Complexity: 2",
225
+ "Total Complexity: 236"
226
+ ],
227
+ [
228
+ "Method Count: 66",
229
+ "Avg Complexity: 5.0",
230
+ "Max Complexity: 30",
231
+ "Total Complexity: 330"
232
+ ],
233
+ [
234
+ "Method Count: 90",
235
+ "Avg Complexity: 3.8",
236
+ "Max Complexity: 59",
237
+ "Total Complexity: 340"
238
+ ],
239
+ [
240
+ "Method Count: 1",
241
+ "Avg Complexity: 173.0",
242
+ "Max Complexity: 173",
243
+ "Total Complexity: 173"
244
+ ],
245
+ [
246
+ "Method Count: 56",
247
+ "Avg Complexity: 5.9",
248
+ "Max Complexity: 71",
249
+ "Total Complexity: 329"
250
+ ],
251
+ [
252
+ "Method Count: 52",
253
+ "Avg Complexity: 23.6",
254
+ "Max Complexity: 553",
255
+ "Total Complexity: 1229"
256
+ ],
257
+ [
258
+ "Method Count: 108",
259
+ "Avg Complexity: 2.2",
260
+ "Max Complexity: 38",
261
+ "Total Complexity: 234"
262
+ ],
263
+ [
264
+ "Method Count: 46",
265
+ "Avg Complexity: 5.0",
266
+ "Max Complexity: 48",
267
+ "Total Complexity: 231"
268
+ ],
269
+ [
270
+ "Method Count: 34",
271
+ "Avg Complexity: 8.2",
272
+ "Max Complexity: 73",
273
+ "Total Complexity: 278"
274
+ ],
275
+ [
276
+ "Method Count: 198",
277
+ "Avg Complexity: 1.1",
278
+ "Max Complexity: 7",
279
+ "Total Complexity: 216"
280
+ ],
281
+ [
282
+ "Method Count: 23",
283
+ "Avg Complexity: 15.6",
284
+ "Max Complexity: 193",
285
+ "Total Complexity: 359"
286
+ ],
287
+ [
288
+ "Method Count: 145",
289
+ "Avg Complexity: 1.6",
290
+ "Max Complexity: 22",
291
+ "Total Complexity: 234"
292
+ ],
293
+ [
294
+ "Method Count: 52",
295
+ "Avg Complexity: 5.6",
296
+ "Max Complexity: 47",
297
+ "Total Complexity: 291"
298
+ ],
299
+ [
300
+ "Method Count: 14",
301
+ "Avg Complexity: 16.6",
302
+ "Max Complexity: 154",
303
+ "Total Complexity: 232"
304
+ ],
305
+ [
306
+ "Method Count: 50",
307
+ "Avg Complexity: 7.8",
308
+ "Max Complexity: 43",
309
+ "Total Complexity: 392"
310
+ ],
311
+ [
312
+ "Method Count: 141",
313
+ "Avg Complexity: 1.6",
314
+ "Max Complexity: 12",
315
+ "Total Complexity: 232"
316
+ ],
317
+ [
318
+ "Method Count: 64",
319
+ "Avg Complexity: 3.4",
320
+ "Max Complexity: 18",
321
+ "Total Complexity: 216"
322
+ ],
323
+ [
324
+ "Method Count: 64",
325
+ "Avg Complexity: 4.1",
326
+ "Max Complexity: 83",
327
+ "Total Complexity: 260"
328
+ ],
329
+ [
330
+ "Method Count: 38",
331
+ "Avg Complexity: 6.3",
332
+ "Max Complexity: 48",
333
+ "Total Complexity: 241"
334
+ ],
335
+ [
336
+ "Method Count: 47",
337
+ "Avg Complexity: 6.3",
338
+ "Max Complexity: 44",
339
+ "Total Complexity: 295"
340
+ ],
341
+ [
342
+ "Method Count: 20",
343
+ "Avg Complexity: 15.8",
344
+ "Max Complexity: 44",
345
+ "Total Complexity: 317"
346
+ ],
347
+ [
348
+ "Method Count: 98",
349
+ "Avg Complexity: 2.4",
350
+ "Max Complexity: 32",
351
+ "Total Complexity: 236"
352
+ ],
353
+ [
354
+ "Method Count: 155",
355
+ "Avg Complexity: 1.5",
356
+ "Max Complexity: 12",
357
+ "Total Complexity: 238"
358
+ ],
359
+ [
360
+ "Method Count: 202",
361
+ "Avg Complexity: 1.1",
362
+ "Max Complexity: 3",
363
+ "Total Complexity: 217"
364
+ ]
365
+ ],
366
+ "texttemplate": "",
367
+ "type": "heatmap",
368
+ "x": [
369
+ "Method Count",
370
+ "Avg Complexity",
371
+ "Max Complexity",
372
+ "Total Complexity"
373
+ ],
374
+ "y": [
375
+ "conductor::AbstractProtoMapper",
376
+ "conductor::JedisMock",
377
+ "conductor::WorkflowExecutor",
378
+ "hollow::HollowObjectTypeMapper$MappedField",
379
+ "metacat::PartitionParser",
380
+ "metacat::PartitionParserTokenManager",
381
+ "photon::HeaderPartition",
382
+ "photon::MXFPropertyPopulator",
383
+ "spring-cloud-deployer-cloudfoundry::QuartzCronExpression",
384
+ "spring-cloud-deployer-kubernetes::KubernetesDeployerProperties",
385
+ "spring-cloud-deployer::KubernetesAppDeployer",
386
+ "spring-cloud-deployer::KubernetesDeployerProperties",
387
+ "spring-cloud-deployer::QuartzCronExpression",
388
+ "spring-cloud-netflix::EurekaServerConfigBean",
389
+ "spring-cloud-stream-binder-kafka::KafkaMessageChannelBinder",
390
+ "spring-data-elasticsearch::ElasticsearchIntegrationTests",
391
+ "spring-data-elasticsearch::RequestConverter",
392
+ "spring-data-redis::AbstractConnectionIntegrationTests",
393
+ "spring-data-redis::DefaultStringRedisConnection",
394
+ "spring-data-redis::DefaultStringRedisConnectionPipelineTests",
395
+ "spring-data-redis::DefaultStringRedisConnectionPipelineTxTests",
396
+ "spring-data-redis::DefaultStringRedisConnectionTests",
397
+ "spring-data-redis::DefaultStringRedisConnectionTxTests",
398
+ "spring-data-redis::DefaultedRedisConnection",
399
+ "spring-data-redis::JedisClusterConnectionTests",
400
+ "spring-data-redis::LettuceClusterConnectionTests",
401
+ "spring-data-redis::RedisConnectionUnitTests$AbstractDelegatingRedisConnectionStub",
402
+ "spring-framework::AbstractAutowireCapableBeanFactory",
403
+ "spring-framework::AbstractBeanFactory",
404
+ "spring-framework::AbstractMockWebServerTests$TestDispatcher",
405
+ "spring-framework::BeanDefinitionParserDelegate",
406
+ "spring-framework::ClassReader",
407
+ "spring-framework::CodeEmitter",
408
+ "spring-framework::CodeFlow",
409
+ "spring-framework::ConstructorResolver",
410
+ "spring-framework::DefaultListableBeanFactoryTests",
411
+ "spring-framework::Frame",
412
+ "spring-framework::HttpHeaders",
413
+ "spring-framework::InternalSpelExpressionParser",
414
+ "spring-framework::JdbcUtils",
415
+ "spring-framework::MethodWriter",
416
+ "spring-framework::MockHttpServletRequest",
417
+ "spring-framework::StringUtils",
418
+ "spring-framework::SymbolTable",
419
+ "spring-framework::Type",
420
+ "spring-framework::WhatWgUrlParser",
421
+ "spring-framework::WhatWgUrlParser$State",
422
+ "spring-ldap::DirContextAdapter",
423
+ "spring-ldap::LdapTemplate",
424
+ "spring-session-data-geode::AbstractGemFireOperationsSessionRepositoryTests"
425
+ ],
426
+ "z": [
427
+ [
428
+ 0.10412926391382406,
429
+ 0.027591643673630272,
430
+ 0.043478260869565216,
431
+ 0.1571969696969697
432
+ ],
433
+ [
434
+ 0.18312387791741472,
435
+ 0.007281553398058252,
436
+ 0.005434782608695652,
437
+ 0.05587121212121212
438
+ ],
439
+ [
440
+ 0.0807899461400359,
441
+ 0.020348837209302327,
442
+ 0.03985507246376811,
443
+ 0.032196969696969696
444
+ ],
445
+ [
446
+ 0.02154398563734291,
447
+ 0.19633273703041143,
448
+ 0.44565217391304346,
449
+ 0.26420454545454547
450
+ ],
451
+ [
452
+ 0.09694793536804308,
453
+ 0.02970401691331924,
454
+ 0.08514492753623189,
455
+ 0.1543560606060606
456
+ ],
457
+ [
458
+ 0.05026929982046679,
459
+ 0.07538091419406576,
460
+ 0.3786231884057971,
461
+ 0.2196969696969697
462
+ ],
463
+ [
464
+ 0.10053859964093358,
465
+ 0.03488372093023256,
466
+ 0.40217391304347827,
467
+ 0.21401515151515152
468
+ ],
469
+ [
470
+ 0.03052064631956912,
471
+ 0.0710594315245478,
472
+ 0.35144927536231885,
473
+ 0.061553030303030304
474
+ ],
475
+ [
476
+ 0.02333931777378815,
477
+ 0.10963455149501661,
478
+ 0.17753623188405798,
479
+ 0.09943181818181818
480
+ ],
481
+ [
482
+ 0.42908438061041293,
483
+ 0,
484
+ 0,
485
+ 0.0634469696969697
486
+ ],
487
+ [
488
+ 0.08617594254937164,
489
+ 0.017797816801139062,
490
+ 0.02355072463768116,
491
+ 0.02462121212121212
492
+ ],
493
+ [
494
+ 0.8240574506283662,
495
+ 0,
496
+ 0,
497
+ 0.27178030303030304
498
+ ],
499
+ [
500
+ 0.02333931777378815,
501
+ 0.10963455149501661,
502
+ 0.17753623188405798,
503
+ 0.09943181818181818
504
+ ],
505
+ [
506
+ 0.3052064631956912,
507
+ 0.002753977968176254,
508
+ 0.1431159420289855,
509
+ 0.07481060606060606
510
+ ],
511
+ [
512
+ 0.1059245960502693,
513
+ 0.014050387596899224,
514
+ 0.07608695652173914,
515
+ 0.030303030303030304
516
+ ],
517
+ [
518
+ 0.3052064631956912,
519
+ 0.0007819937440500478,
520
+ 0.010869565217391304,
521
+ 0.019886363636363636
522
+ ],
523
+ [
524
+ 0.13824057450628366,
525
+ 0.009317233154442457,
526
+ 0.06521739130434782,
527
+ 0.028409090909090908
528
+ ],
529
+ [
530
+ 0.6229802513464991,
531
+ 0.00043437583533814466,
532
+ 0.007246376811594203,
533
+ 0.1903409090909091
534
+ ],
535
+ [
536
+ 1,
537
+ 0.00022922397265983185,
538
+ 0.009057971014492754,
539
+ 0.3854166666666667
540
+ ],
541
+ [
542
+ 0.4955116696588869,
543
+ 0,
544
+ 0,
545
+ 0.09848484848484848
546
+ ],
547
+ [
548
+ 0.4919210053859964,
549
+ 0,
550
+ 0,
551
+ 0.09659090909090909
552
+ ],
553
+ [
554
+ 0.5044883303411131,
555
+ 0,
556
+ 0,
557
+ 0.10321969696969698
558
+ ],
559
+ [
560
+ 0.4955116696588869,
561
+ 0,
562
+ 0,
563
+ 0.09848484848484848
564
+ ],
565
+ [
566
+ 0.4829443447037702,
567
+ 0,
568
+ 0,
569
+ 0.09185606060606061
570
+ ],
571
+ [
572
+ 0.5421903052064632,
573
+ 0.00019187965308158696,
574
+ 0.0036231884057971015,
575
+ 0.13257575757575757
576
+ ],
577
+ [
578
+ 0.5278276481149012,
579
+ 0.00023649980291683104,
580
+ 0.005434782608695652,
581
+ 0.1268939393939394
582
+ ],
583
+ [
584
+ 0.42010771992818674,
585
+ 0.000024740227610093405,
586
+ 0.0018115942028985507,
587
+ 0.05965909090909091
588
+ ],
589
+ [
590
+ 0.11669658886894076,
591
+ 0.023255813953488372,
592
+ 0.05253623188405797,
593
+ 0.14867424242424243
594
+ ],
595
+ [
596
+ 0.15978456014362658,
597
+ 0.01614987080103359,
598
+ 0.10507246376811594,
599
+ 0.1581439393939394
600
+ ],
601
+ [
602
+ 0,
603
+ 1,
604
+ 0.3115942028985507,
605
+ 0
606
+ ],
607
+ [
608
+ 0.09874326750448834,
609
+ 0.028343023255813952,
610
+ 0.12681159420289856,
611
+ 0.14772727272727273
612
+ ],
613
+ [
614
+ 0.09156193895870736,
615
+ 0.13159660107334525,
616
+ 1,
617
+ 1
618
+ ],
619
+ [
620
+ 0.19210053859964094,
621
+ 0.0067829457364341076,
622
+ 0.06702898550724638,
623
+ 0.05776515151515151
624
+ ],
625
+ [
626
+ 0.0807899461400359,
627
+ 0.02338220424671385,
628
+ 0.08514492753623189,
629
+ 0.054924242424242424
630
+ ],
631
+ [
632
+ 0.059245960502693,
633
+ 0.041723666210670314,
634
+ 0.13043478260869565,
635
+ 0.09943181818181818
636
+ ],
637
+ [
638
+ 0.35368043087971274,
639
+ 0.0005285412262156443,
640
+ 0.010869565217391304,
641
+ 0.04071969696969697
642
+ ],
643
+ [
644
+ 0.03949730700179533,
645
+ 0.08493427704752275,
646
+ 0.34782608695652173,
647
+ 0.17613636363636365
648
+ ],
649
+ [
650
+ 0.2585278276481149,
651
+ 0.003568564554931836,
652
+ 0.03804347826086957,
653
+ 0.05776515151515151
654
+ ],
655
+ [
656
+ 0.09156193895870736,
657
+ 0.026721824686940964,
658
+ 0.08333333333333333,
659
+ 0.11174242424242424
660
+ ],
661
+ [
662
+ 0.02333931777378815,
663
+ 0.09053156146179403,
664
+ 0.27717391304347827,
665
+ 0.05587121212121212
666
+ ],
667
+ [
668
+ 0.08797127468581688,
669
+ 0.039767441860465116,
670
+ 0.07608695652173914,
671
+ 0.20738636363636365
672
+ ],
673
+ [
674
+ 0.2513464991023339,
675
+ 0.0037522678541975917,
676
+ 0.019927536231884056,
677
+ 0.05587121212121212
678
+ ],
679
+ [
680
+ 0.11310592459605028,
681
+ 0.013808139534883721,
682
+ 0.030797101449275364,
683
+ 0.04071969696969697
684
+ ],
685
+ [
686
+ 0.11310592459605028,
687
+ 0.017805232558139535,
688
+ 0.14855072463768115,
689
+ 0.08238636363636363
690
+ ],
691
+ [
692
+ 0.06642728904847396,
693
+ 0.03105875152998776,
694
+ 0.08514492753623189,
695
+ 0.06439393939393939
696
+ ],
697
+ [
698
+ 0.08258527827648116,
699
+ 0.030677882236516574,
700
+ 0.07789855072463768,
701
+ 0.11553030303030302
702
+ ],
703
+ [
704
+ 0.03411131059245961,
705
+ 0.08633720930232558,
706
+ 0.07789855072463768,
707
+ 0.13636363636363635
708
+ ],
709
+ [
710
+ 0.1741472172351885,
711
+ 0.008186995728523968,
712
+ 0.05615942028985507,
713
+ 0.05965909090909091
714
+ ],
715
+ [
716
+ 0.2764811490125673,
717
+ 0.0031132783195798944,
718
+ 0.019927536231884056,
719
+ 0.061553030303030304
720
+ ],
721
+ [
722
+ 0.3608617594254937,
723
+ 0.00043172921943357163,
724
+ 0.0036231884057971015,
725
+ 0.041666666666666664
726
+ ]
727
+ ]
728
+ }
729
+ ],
730
+ "layout": {
731
+ "annotations": [
732
+ {
733
+ "font": {
734
+ "color": "black",
735
+ "size": 10
736
+ },
737
+ "showarrow": false,
738
+ "text": "59",
739
+ "x": 0,
740
+ "xref": "x",
741
+ "y": 0,
742
+ "yref": "y"
743
+ },
744
+ {
745
+ "font": {
746
+ "color": "black",
747
+ "size": 10
748
+ },
749
+ "showarrow": false,
750
+ "text": "5.7",
751
+ "x": 1,
752
+ "xref": "x",
753
+ "y": 0,
754
+ "yref": "y"
755
+ },
756
+ {
757
+ "font": {
758
+ "color": "black",
759
+ "size": 10
760
+ },
761
+ "showarrow": false,
762
+ "text": "25",
763
+ "x": 2,
764
+ "xref": "x",
765
+ "y": 0,
766
+ "yref": "y"
767
+ },
768
+ {
769
+ "font": {
770
+ "color": "black",
771
+ "size": 10
772
+ },
773
+ "showarrow": false,
774
+ "text": "339",
775
+ "x": 3,
776
+ "xref": "x",
777
+ "y": 0,
778
+ "yref": "y"
779
+ },
780
+ {
781
+ "font": {
782
+ "color": "black",
783
+ "size": 10
784
+ },
785
+ "showarrow": false,
786
+ "text": "103",
787
+ "x": 0,
788
+ "xref": "x",
789
+ "y": 1,
790
+ "yref": "y"
791
+ },
792
+ {
793
+ "font": {
794
+ "color": "black",
795
+ "size": 10
796
+ },
797
+ "showarrow": false,
798
+ "text": "2.3",
799
+ "x": 1,
800
+ "xref": "x",
801
+ "y": 1,
802
+ "yref": "y"
803
+ },
804
+ {
805
+ "font": {
806
+ "color": "black",
807
+ "size": 10
808
+ },
809
+ "showarrow": false,
810
+ "text": "4",
811
+ "x": 2,
812
+ "xref": "x",
813
+ "y": 1,
814
+ "yref": "y"
815
+ },
816
+ {
817
+ "font": {
818
+ "color": "black",
819
+ "size": 10
820
+ },
821
+ "showarrow": false,
822
+ "text": "232",
823
+ "x": 3,
824
+ "xref": "x",
825
+ "y": 1,
826
+ "yref": "y"
827
+ },
828
+ {
829
+ "font": {
830
+ "color": "black",
831
+ "size": 10
832
+ },
833
+ "showarrow": false,
834
+ "text": "46",
835
+ "x": 0,
836
+ "xref": "x",
837
+ "y": 2,
838
+ "yref": "y"
839
+ },
840
+ {
841
+ "font": {
842
+ "color": "black",
843
+ "size": 10
844
+ },
845
+ "showarrow": false,
846
+ "text": "4.5",
847
+ "x": 1,
848
+ "xref": "x",
849
+ "y": 2,
850
+ "yref": "y"
851
+ },
852
+ {
853
+ "font": {
854
+ "color": "black",
855
+ "size": 10
856
+ },
857
+ "showarrow": false,
858
+ "text": "23",
859
+ "x": 2,
860
+ "xref": "x",
861
+ "y": 2,
862
+ "yref": "y"
863
+ },
864
+ {
865
+ "font": {
866
+ "color": "black",
867
+ "size": 10
868
+ },
869
+ "showarrow": false,
870
+ "text": "207",
871
+ "x": 3,
872
+ "xref": "x",
873
+ "y": 2,
874
+ "yref": "y"
875
+ },
876
+ {
877
+ "font": {
878
+ "color": "black",
879
+ "size": 10
880
+ },
881
+ "showarrow": false,
882
+ "text": "13",
883
+ "x": 0,
884
+ "xref": "x",
885
+ "y": 3,
886
+ "yref": "y"
887
+ },
888
+ {
889
+ "font": {
890
+ "color": "black",
891
+ "size": 10
892
+ },
893
+ "showarrow": false,
894
+ "text": "34.8",
895
+ "x": 1,
896
+ "xref": "x",
897
+ "y": 3,
898
+ "yref": "y"
899
+ },
900
+ {
901
+ "font": {
902
+ "color": "black",
903
+ "size": 10
904
+ },
905
+ "showarrow": false,
906
+ "text": "247",
907
+ "x": 2,
908
+ "xref": "x",
909
+ "y": 3,
910
+ "yref": "y"
911
+ },
912
+ {
913
+ "font": {
914
+ "color": "black",
915
+ "size": 10
916
+ },
917
+ "showarrow": false,
918
+ "text": "452",
919
+ "x": 3,
920
+ "xref": "x",
921
+ "y": 3,
922
+ "yref": "y"
923
+ },
924
+ {
925
+ "font": {
926
+ "color": "black",
927
+ "size": 10
928
+ },
929
+ "showarrow": false,
930
+ "text": "55",
931
+ "x": 0,
932
+ "xref": "x",
933
+ "y": 4,
934
+ "yref": "y"
935
+ },
936
+ {
937
+ "font": {
938
+ "color": "black",
939
+ "size": 10
940
+ },
941
+ "showarrow": false,
942
+ "text": "6.1",
943
+ "x": 1,
944
+ "xref": "x",
945
+ "y": 4,
946
+ "yref": "y"
947
+ },
948
+ {
949
+ "font": {
950
+ "color": "black",
951
+ "size": 10
952
+ },
953
+ "showarrow": false,
954
+ "text": "48",
955
+ "x": 2,
956
+ "xref": "x",
957
+ "y": 4,
958
+ "yref": "y"
959
+ },
960
+ {
961
+ "font": {
962
+ "color": "black",
963
+ "size": 10
964
+ },
965
+ "showarrow": false,
966
+ "text": "336",
967
+ "x": 3,
968
+ "xref": "x",
969
+ "y": 4,
970
+ "yref": "y"
971
+ },
972
+ {
973
+ "font": {
974
+ "color": "black",
975
+ "size": 10
976
+ },
977
+ "showarrow": false,
978
+ "text": "29",
979
+ "x": 0,
980
+ "xref": "x",
981
+ "y": 5,
982
+ "yref": "y"
983
+ },
984
+ {
985
+ "font": {
986
+ "color": "black",
987
+ "size": 10
988
+ },
989
+ "showarrow": false,
990
+ "text": "14.0",
991
+ "x": 1,
992
+ "xref": "x",
993
+ "y": 5,
994
+ "yref": "y"
995
+ },
996
+ {
997
+ "font": {
998
+ "color": "black",
999
+ "size": 10
1000
+ },
1001
+ "showarrow": false,
1002
+ "text": "210",
1003
+ "x": 2,
1004
+ "xref": "x",
1005
+ "y": 5,
1006
+ "yref": "y"
1007
+ },
1008
+ {
1009
+ "font": {
1010
+ "color": "black",
1011
+ "size": 10
1012
+ },
1013
+ "showarrow": false,
1014
+ "text": "405",
1015
+ "x": 3,
1016
+ "xref": "x",
1017
+ "y": 5,
1018
+ "yref": "y"
1019
+ },
1020
+ {
1021
+ "font": {
1022
+ "color": "black",
1023
+ "size": 10
1024
+ },
1025
+ "showarrow": false,
1026
+ "text": "57",
1027
+ "x": 0,
1028
+ "xref": "x",
1029
+ "y": 6,
1030
+ "yref": "y"
1031
+ },
1032
+ {
1033
+ "font": {
1034
+ "color": "black",
1035
+ "size": 10
1036
+ },
1037
+ "showarrow": false,
1038
+ "text": "7.0",
1039
+ "x": 1,
1040
+ "xref": "x",
1041
+ "y": 6,
1042
+ "yref": "y"
1043
+ },
1044
+ {
1045
+ "font": {
1046
+ "color": "black",
1047
+ "size": 10
1048
+ },
1049
+ "showarrow": false,
1050
+ "text": "223",
1051
+ "x": 2,
1052
+ "xref": "x",
1053
+ "y": 6,
1054
+ "yref": "y"
1055
+ },
1056
+ {
1057
+ "font": {
1058
+ "color": "black",
1059
+ "size": 10
1060
+ },
1061
+ "showarrow": false,
1062
+ "text": "399",
1063
+ "x": 3,
1064
+ "xref": "x",
1065
+ "y": 6,
1066
+ "yref": "y"
1067
+ },
1068
+ {
1069
+ "font": {
1070
+ "color": "black",
1071
+ "size": 10
1072
+ },
1073
+ "showarrow": false,
1074
+ "text": "18",
1075
+ "x": 0,
1076
+ "xref": "x",
1077
+ "y": 7,
1078
+ "yref": "y"
1079
+ },
1080
+ {
1081
+ "font": {
1082
+ "color": "black",
1083
+ "size": 10
1084
+ },
1085
+ "showarrow": false,
1086
+ "text": "13.2",
1087
+ "x": 1,
1088
+ "xref": "x",
1089
+ "y": 7,
1090
+ "yref": "y"
1091
+ },
1092
+ {
1093
+ "font": {
1094
+ "color": "black",
1095
+ "size": 10
1096
+ },
1097
+ "showarrow": false,
1098
+ "text": "195",
1099
+ "x": 2,
1100
+ "xref": "x",
1101
+ "y": 7,
1102
+ "yref": "y"
1103
+ },
1104
+ {
1105
+ "font": {
1106
+ "color": "black",
1107
+ "size": 10
1108
+ },
1109
+ "showarrow": false,
1110
+ "text": "238",
1111
+ "x": 3,
1112
+ "xref": "x",
1113
+ "y": 7,
1114
+ "yref": "y"
1115
+ },
1116
+ {
1117
+ "font": {
1118
+ "color": "black",
1119
+ "size": 10
1120
+ },
1121
+ "showarrow": false,
1122
+ "text": "14",
1123
+ "x": 0,
1124
+ "xref": "x",
1125
+ "y": 8,
1126
+ "yref": "y"
1127
+ },
1128
+ {
1129
+ "font": {
1130
+ "color": "black",
1131
+ "size": 10
1132
+ },
1133
+ "showarrow": false,
1134
+ "text": "19.9",
1135
+ "x": 1,
1136
+ "xref": "x",
1137
+ "y": 8,
1138
+ "yref": "y"
1139
+ },
1140
+ {
1141
+ "font": {
1142
+ "color": "black",
1143
+ "size": 10
1144
+ },
1145
+ "showarrow": false,
1146
+ "text": "99",
1147
+ "x": 2,
1148
+ "xref": "x",
1149
+ "y": 8,
1150
+ "yref": "y"
1151
+ },
1152
+ {
1153
+ "font": {
1154
+ "color": "black",
1155
+ "size": 10
1156
+ },
1157
+ "showarrow": false,
1158
+ "text": "278",
1159
+ "x": 3,
1160
+ "xref": "x",
1161
+ "y": 8,
1162
+ "yref": "y"
1163
+ },
1164
+ {
1165
+ "font": {
1166
+ "color": "black",
1167
+ "size": 10
1168
+ },
1169
+ "showarrow": false,
1170
+ "text": "240",
1171
+ "x": 0,
1172
+ "xref": "x",
1173
+ "y": 9,
1174
+ "yref": "y"
1175
+ },
1176
+ {
1177
+ "font": {
1178
+ "color": "black",
1179
+ "size": 10
1180
+ },
1181
+ "showarrow": false,
1182
+ "text": "1.0",
1183
+ "x": 1,
1184
+ "xref": "x",
1185
+ "y": 9,
1186
+ "yref": "y"
1187
+ },
1188
+ {
1189
+ "font": {
1190
+ "color": "black",
1191
+ "size": 10
1192
+ },
1193
+ "showarrow": false,
1194
+ "text": "1",
1195
+ "x": 2,
1196
+ "xref": "x",
1197
+ "y": 9,
1198
+ "yref": "y"
1199
+ },
1200
+ {
1201
+ "font": {
1202
+ "color": "black",
1203
+ "size": 10
1204
+ },
1205
+ "showarrow": false,
1206
+ "text": "240",
1207
+ "x": 3,
1208
+ "xref": "x",
1209
+ "y": 9,
1210
+ "yref": "y"
1211
+ },
1212
+ {
1213
+ "font": {
1214
+ "color": "black",
1215
+ "size": 10
1216
+ },
1217
+ "showarrow": false,
1218
+ "text": "49",
1219
+ "x": 0,
1220
+ "xref": "x",
1221
+ "y": 10,
1222
+ "yref": "y"
1223
+ },
1224
+ {
1225
+ "font": {
1226
+ "color": "black",
1227
+ "size": 10
1228
+ },
1229
+ "showarrow": false,
1230
+ "text": "4.1",
1231
+ "x": 1,
1232
+ "xref": "x",
1233
+ "y": 10,
1234
+ "yref": "y"
1235
+ },
1236
+ {
1237
+ "font": {
1238
+ "color": "black",
1239
+ "size": 10
1240
+ },
1241
+ "showarrow": false,
1242
+ "text": "14",
1243
+ "x": 2,
1244
+ "xref": "x",
1245
+ "y": 10,
1246
+ "yref": "y"
1247
+ },
1248
+ {
1249
+ "font": {
1250
+ "color": "black",
1251
+ "size": 10
1252
+ },
1253
+ "showarrow": false,
1254
+ "text": "199",
1255
+ "x": 3,
1256
+ "xref": "x",
1257
+ "y": 10,
1258
+ "yref": "y"
1259
+ },
1260
+ {
1261
+ "font": {
1262
+ "color": "white",
1263
+ "size": 10
1264
+ },
1265
+ "showarrow": false,
1266
+ "text": "460",
1267
+ "x": 0,
1268
+ "xref": "x",
1269
+ "y": 11,
1270
+ "yref": "y"
1271
+ },
1272
+ {
1273
+ "font": {
1274
+ "color": "black",
1275
+ "size": 10
1276
+ },
1277
+ "showarrow": false,
1278
+ "text": "1.0",
1279
+ "x": 1,
1280
+ "xref": "x",
1281
+ "y": 11,
1282
+ "yref": "y"
1283
+ },
1284
+ {
1285
+ "font": {
1286
+ "color": "black",
1287
+ "size": 10
1288
+ },
1289
+ "showarrow": false,
1290
+ "text": "1",
1291
+ "x": 2,
1292
+ "xref": "x",
1293
+ "y": 11,
1294
+ "yref": "y"
1295
+ },
1296
+ {
1297
+ "font": {
1298
+ "color": "black",
1299
+ "size": 10
1300
+ },
1301
+ "showarrow": false,
1302
+ "text": "460",
1303
+ "x": 3,
1304
+ "xref": "x",
1305
+ "y": 11,
1306
+ "yref": "y"
1307
+ },
1308
+ {
1309
+ "font": {
1310
+ "color": "black",
1311
+ "size": 10
1312
+ },
1313
+ "showarrow": false,
1314
+ "text": "14",
1315
+ "x": 0,
1316
+ "xref": "x",
1317
+ "y": 12,
1318
+ "yref": "y"
1319
+ },
1320
+ {
1321
+ "font": {
1322
+ "color": "black",
1323
+ "size": 10
1324
+ },
1325
+ "showarrow": false,
1326
+ "text": "19.9",
1327
+ "x": 1,
1328
+ "xref": "x",
1329
+ "y": 12,
1330
+ "yref": "y"
1331
+ },
1332
+ {
1333
+ "font": {
1334
+ "color": "black",
1335
+ "size": 10
1336
+ },
1337
+ "showarrow": false,
1338
+ "text": "99",
1339
+ "x": 2,
1340
+ "xref": "x",
1341
+ "y": 12,
1342
+ "yref": "y"
1343
+ },
1344
+ {
1345
+ "font": {
1346
+ "color": "black",
1347
+ "size": 10
1348
+ },
1349
+ "showarrow": false,
1350
+ "text": "278",
1351
+ "x": 3,
1352
+ "xref": "x",
1353
+ "y": 12,
1354
+ "yref": "y"
1355
+ },
1356
+ {
1357
+ "font": {
1358
+ "color": "black",
1359
+ "size": 10
1360
+ },
1361
+ "showarrow": false,
1362
+ "text": "171",
1363
+ "x": 0,
1364
+ "xref": "x",
1365
+ "y": 13,
1366
+ "yref": "y"
1367
+ },
1368
+ {
1369
+ "font": {
1370
+ "color": "black",
1371
+ "size": 10
1372
+ },
1373
+ "showarrow": false,
1374
+ "text": "1.5",
1375
+ "x": 1,
1376
+ "xref": "x",
1377
+ "y": 13,
1378
+ "yref": "y"
1379
+ },
1380
+ {
1381
+ "font": {
1382
+ "color": "black",
1383
+ "size": 10
1384
+ },
1385
+ "showarrow": false,
1386
+ "text": "80",
1387
+ "x": 2,
1388
+ "xref": "x",
1389
+ "y": 13,
1390
+ "yref": "y"
1391
+ },
1392
+ {
1393
+ "font": {
1394
+ "color": "black",
1395
+ "size": 10
1396
+ },
1397
+ "showarrow": false,
1398
+ "text": "252",
1399
+ "x": 3,
1400
+ "xref": "x",
1401
+ "y": 13,
1402
+ "yref": "y"
1403
+ },
1404
+ {
1405
+ "font": {
1406
+ "color": "black",
1407
+ "size": 10
1408
+ },
1409
+ "showarrow": false,
1410
+ "text": "60",
1411
+ "x": 0,
1412
+ "xref": "x",
1413
+ "y": 14,
1414
+ "yref": "y"
1415
+ },
1416
+ {
1417
+ "font": {
1418
+ "color": "black",
1419
+ "size": 10
1420
+ },
1421
+ "showarrow": false,
1422
+ "text": "3.4",
1423
+ "x": 1,
1424
+ "xref": "x",
1425
+ "y": 14,
1426
+ "yref": "y"
1427
+ },
1428
+ {
1429
+ "font": {
1430
+ "color": "black",
1431
+ "size": 10
1432
+ },
1433
+ "showarrow": false,
1434
+ "text": "43",
1435
+ "x": 2,
1436
+ "xref": "x",
1437
+ "y": 14,
1438
+ "yref": "y"
1439
+ },
1440
+ {
1441
+ "font": {
1442
+ "color": "black",
1443
+ "size": 10
1444
+ },
1445
+ "showarrow": false,
1446
+ "text": "205",
1447
+ "x": 3,
1448
+ "xref": "x",
1449
+ "y": 14,
1450
+ "yref": "y"
1451
+ },
1452
+ {
1453
+ "font": {
1454
+ "color": "black",
1455
+ "size": 10
1456
+ },
1457
+ "showarrow": false,
1458
+ "text": "171",
1459
+ "x": 0,
1460
+ "xref": "x",
1461
+ "y": 15,
1462
+ "yref": "y"
1463
+ },
1464
+ {
1465
+ "font": {
1466
+ "color": "black",
1467
+ "size": 10
1468
+ },
1469
+ "showarrow": false,
1470
+ "text": "1.1",
1471
+ "x": 1,
1472
+ "xref": "x",
1473
+ "y": 15,
1474
+ "yref": "y"
1475
+ },
1476
+ {
1477
+ "font": {
1478
+ "color": "black",
1479
+ "size": 10
1480
+ },
1481
+ "showarrow": false,
1482
+ "text": "7",
1483
+ "x": 2,
1484
+ "xref": "x",
1485
+ "y": 15,
1486
+ "yref": "y"
1487
+ },
1488
+ {
1489
+ "font": {
1490
+ "color": "black",
1491
+ "size": 10
1492
+ },
1493
+ "showarrow": false,
1494
+ "text": "194",
1495
+ "x": 3,
1496
+ "xref": "x",
1497
+ "y": 15,
1498
+ "yref": "y"
1499
+ },
1500
+ {
1501
+ "font": {
1502
+ "color": "black",
1503
+ "size": 10
1504
+ },
1505
+ "showarrow": false,
1506
+ "text": "78",
1507
+ "x": 0,
1508
+ "xref": "x",
1509
+ "y": 16,
1510
+ "yref": "y"
1511
+ },
1512
+ {
1513
+ "font": {
1514
+ "color": "black",
1515
+ "size": 10
1516
+ },
1517
+ "showarrow": false,
1518
+ "text": "2.6",
1519
+ "x": 1,
1520
+ "xref": "x",
1521
+ "y": 16,
1522
+ "yref": "y"
1523
+ },
1524
+ {
1525
+ "font": {
1526
+ "color": "black",
1527
+ "size": 10
1528
+ },
1529
+ "showarrow": false,
1530
+ "text": "37",
1531
+ "x": 2,
1532
+ "xref": "x",
1533
+ "y": 16,
1534
+ "yref": "y"
1535
+ },
1536
+ {
1537
+ "font": {
1538
+ "color": "black",
1539
+ "size": 10
1540
+ },
1541
+ "showarrow": false,
1542
+ "text": "203",
1543
+ "x": 3,
1544
+ "xref": "x",
1545
+ "y": 16,
1546
+ "yref": "y"
1547
+ },
1548
+ {
1549
+ "font": {
1550
+ "color": "white",
1551
+ "size": 10
1552
+ },
1553
+ "showarrow": false,
1554
+ "text": "348",
1555
+ "x": 0,
1556
+ "xref": "x",
1557
+ "y": 17,
1558
+ "yref": "y"
1559
+ },
1560
+ {
1561
+ "font": {
1562
+ "color": "black",
1563
+ "size": 10
1564
+ },
1565
+ "showarrow": false,
1566
+ "text": "1.1",
1567
+ "x": 1,
1568
+ "xref": "x",
1569
+ "y": 17,
1570
+ "yref": "y"
1571
+ },
1572
+ {
1573
+ "font": {
1574
+ "color": "black",
1575
+ "size": 10
1576
+ },
1577
+ "showarrow": false,
1578
+ "text": "5",
1579
+ "x": 2,
1580
+ "xref": "x",
1581
+ "y": 17,
1582
+ "yref": "y"
1583
+ },
1584
+ {
1585
+ "font": {
1586
+ "color": "black",
1587
+ "size": 10
1588
+ },
1589
+ "showarrow": false,
1590
+ "text": "374",
1591
+ "x": 3,
1592
+ "xref": "x",
1593
+ "y": 17,
1594
+ "yref": "y"
1595
+ },
1596
+ {
1597
+ "font": {
1598
+ "color": "white",
1599
+ "size": 10
1600
+ },
1601
+ "showarrow": false,
1602
+ "text": "558",
1603
+ "x": 0,
1604
+ "xref": "x",
1605
+ "y": 18,
1606
+ "yref": "y"
1607
+ },
1608
+ {
1609
+ "font": {
1610
+ "color": "black",
1611
+ "size": 10
1612
+ },
1613
+ "showarrow": false,
1614
+ "text": "1.0",
1615
+ "x": 1,
1616
+ "xref": "x",
1617
+ "y": 18,
1618
+ "yref": "y"
1619
+ },
1620
+ {
1621
+ "font": {
1622
+ "color": "black",
1623
+ "size": 10
1624
+ },
1625
+ "showarrow": false,
1626
+ "text": "6",
1627
+ "x": 2,
1628
+ "xref": "x",
1629
+ "y": 18,
1630
+ "yref": "y"
1631
+ },
1632
+ {
1633
+ "font": {
1634
+ "color": "black",
1635
+ "size": 10
1636
+ },
1637
+ "showarrow": false,
1638
+ "text": "580",
1639
+ "x": 3,
1640
+ "xref": "x",
1641
+ "y": 18,
1642
+ "yref": "y"
1643
+ },
1644
+ {
1645
+ "font": {
1646
+ "color": "black",
1647
+ "size": 10
1648
+ },
1649
+ "showarrow": false,
1650
+ "text": "277",
1651
+ "x": 0,
1652
+ "xref": "x",
1653
+ "y": 19,
1654
+ "yref": "y"
1655
+ },
1656
+ {
1657
+ "font": {
1658
+ "color": "black",
1659
+ "size": 10
1660
+ },
1661
+ "showarrow": false,
1662
+ "text": "1.0",
1663
+ "x": 1,
1664
+ "xref": "x",
1665
+ "y": 19,
1666
+ "yref": "y"
1667
+ },
1668
+ {
1669
+ "font": {
1670
+ "color": "black",
1671
+ "size": 10
1672
+ },
1673
+ "showarrow": false,
1674
+ "text": "1",
1675
+ "x": 2,
1676
+ "xref": "x",
1677
+ "y": 19,
1678
+ "yref": "y"
1679
+ },
1680
+ {
1681
+ "font": {
1682
+ "color": "black",
1683
+ "size": 10
1684
+ },
1685
+ "showarrow": false,
1686
+ "text": "277",
1687
+ "x": 3,
1688
+ "xref": "x",
1689
+ "y": 19,
1690
+ "yref": "y"
1691
+ },
1692
+ {
1693
+ "font": {
1694
+ "color": "black",
1695
+ "size": 10
1696
+ },
1697
+ "showarrow": false,
1698
+ "text": "275",
1699
+ "x": 0,
1700
+ "xref": "x",
1701
+ "y": 20,
1702
+ "yref": "y"
1703
+ },
1704
+ {
1705
+ "font": {
1706
+ "color": "black",
1707
+ "size": 10
1708
+ },
1709
+ "showarrow": false,
1710
+ "text": "1.0",
1711
+ "x": 1,
1712
+ "xref": "x",
1713
+ "y": 20,
1714
+ "yref": "y"
1715
+ },
1716
+ {
1717
+ "font": {
1718
+ "color": "black",
1719
+ "size": 10
1720
+ },
1721
+ "showarrow": false,
1722
+ "text": "1",
1723
+ "x": 2,
1724
+ "xref": "x",
1725
+ "y": 20,
1726
+ "yref": "y"
1727
+ },
1728
+ {
1729
+ "font": {
1730
+ "color": "black",
1731
+ "size": 10
1732
+ },
1733
+ "showarrow": false,
1734
+ "text": "275",
1735
+ "x": 3,
1736
+ "xref": "x",
1737
+ "y": 20,
1738
+ "yref": "y"
1739
+ },
1740
+ {
1741
+ "font": {
1742
+ "color": "black",
1743
+ "size": 10
1744
+ },
1745
+ "showarrow": false,
1746
+ "text": "282",
1747
+ "x": 0,
1748
+ "xref": "x",
1749
+ "y": 21,
1750
+ "yref": "y"
1751
+ },
1752
+ {
1753
+ "font": {
1754
+ "color": "black",
1755
+ "size": 10
1756
+ },
1757
+ "showarrow": false,
1758
+ "text": "1.0",
1759
+ "x": 1,
1760
+ "xref": "x",
1761
+ "y": 21,
1762
+ "yref": "y"
1763
+ },
1764
+ {
1765
+ "font": {
1766
+ "color": "black",
1767
+ "size": 10
1768
+ },
1769
+ "showarrow": false,
1770
+ "text": "1",
1771
+ "x": 2,
1772
+ "xref": "x",
1773
+ "y": 21,
1774
+ "yref": "y"
1775
+ },
1776
+ {
1777
+ "font": {
1778
+ "color": "black",
1779
+ "size": 10
1780
+ },
1781
+ "showarrow": false,
1782
+ "text": "282",
1783
+ "x": 3,
1784
+ "xref": "x",
1785
+ "y": 21,
1786
+ "yref": "y"
1787
+ },
1788
+ {
1789
+ "font": {
1790
+ "color": "black",
1791
+ "size": 10
1792
+ },
1793
+ "showarrow": false,
1794
+ "text": "277",
1795
+ "x": 0,
1796
+ "xref": "x",
1797
+ "y": 22,
1798
+ "yref": "y"
1799
+ },
1800
+ {
1801
+ "font": {
1802
+ "color": "black",
1803
+ "size": 10
1804
+ },
1805
+ "showarrow": false,
1806
+ "text": "1.0",
1807
+ "x": 1,
1808
+ "xref": "x",
1809
+ "y": 22,
1810
+ "yref": "y"
1811
+ },
1812
+ {
1813
+ "font": {
1814
+ "color": "black",
1815
+ "size": 10
1816
+ },
1817
+ "showarrow": false,
1818
+ "text": "1",
1819
+ "x": 2,
1820
+ "xref": "x",
1821
+ "y": 22,
1822
+ "yref": "y"
1823
+ },
1824
+ {
1825
+ "font": {
1826
+ "color": "black",
1827
+ "size": 10
1828
+ },
1829
+ "showarrow": false,
1830
+ "text": "277",
1831
+ "x": 3,
1832
+ "xref": "x",
1833
+ "y": 22,
1834
+ "yref": "y"
1835
+ },
1836
+ {
1837
+ "font": {
1838
+ "color": "black",
1839
+ "size": 10
1840
+ },
1841
+ "showarrow": false,
1842
+ "text": "270",
1843
+ "x": 0,
1844
+ "xref": "x",
1845
+ "y": 23,
1846
+ "yref": "y"
1847
+ },
1848
+ {
1849
+ "font": {
1850
+ "color": "black",
1851
+ "size": 10
1852
+ },
1853
+ "showarrow": false,
1854
+ "text": "1.0",
1855
+ "x": 1,
1856
+ "xref": "x",
1857
+ "y": 23,
1858
+ "yref": "y"
1859
+ },
1860
+ {
1861
+ "font": {
1862
+ "color": "black",
1863
+ "size": 10
1864
+ },
1865
+ "showarrow": false,
1866
+ "text": "1",
1867
+ "x": 2,
1868
+ "xref": "x",
1869
+ "y": 23,
1870
+ "yref": "y"
1871
+ },
1872
+ {
1873
+ "font": {
1874
+ "color": "black",
1875
+ "size": 10
1876
+ },
1877
+ "showarrow": false,
1878
+ "text": "270",
1879
+ "x": 3,
1880
+ "xref": "x",
1881
+ "y": 23,
1882
+ "yref": "y"
1883
+ },
1884
+ {
1885
+ "font": {
1886
+ "color": "black",
1887
+ "size": 10
1888
+ },
1889
+ "showarrow": false,
1890
+ "text": "303",
1891
+ "x": 0,
1892
+ "xref": "x",
1893
+ "y": 24,
1894
+ "yref": "y"
1895
+ },
1896
+ {
1897
+ "font": {
1898
+ "color": "black",
1899
+ "size": 10
1900
+ },
1901
+ "showarrow": false,
1902
+ "text": "1.0",
1903
+ "x": 1,
1904
+ "xref": "x",
1905
+ "y": 24,
1906
+ "yref": "y"
1907
+ },
1908
+ {
1909
+ "font": {
1910
+ "color": "black",
1911
+ "size": 10
1912
+ },
1913
+ "showarrow": false,
1914
+ "text": "3",
1915
+ "x": 2,
1916
+ "xref": "x",
1917
+ "y": 24,
1918
+ "yref": "y"
1919
+ },
1920
+ {
1921
+ "font": {
1922
+ "color": "black",
1923
+ "size": 10
1924
+ },
1925
+ "showarrow": false,
1926
+ "text": "313",
1927
+ "x": 3,
1928
+ "xref": "x",
1929
+ "y": 24,
1930
+ "yref": "y"
1931
+ },
1932
+ {
1933
+ "font": {
1934
+ "color": "black",
1935
+ "size": 10
1936
+ },
1937
+ "showarrow": false,
1938
+ "text": "295",
1939
+ "x": 0,
1940
+ "xref": "x",
1941
+ "y": 25,
1942
+ "yref": "y"
1943
+ },
1944
+ {
1945
+ "font": {
1946
+ "color": "black",
1947
+ "size": 10
1948
+ },
1949
+ "showarrow": false,
1950
+ "text": "1.0",
1951
+ "x": 1,
1952
+ "xref": "x",
1953
+ "y": 25,
1954
+ "yref": "y"
1955
+ },
1956
+ {
1957
+ "font": {
1958
+ "color": "black",
1959
+ "size": 10
1960
+ },
1961
+ "showarrow": false,
1962
+ "text": "4",
1963
+ "x": 2,
1964
+ "xref": "x",
1965
+ "y": 25,
1966
+ "yref": "y"
1967
+ },
1968
+ {
1969
+ "font": {
1970
+ "color": "black",
1971
+ "size": 10
1972
+ },
1973
+ "showarrow": false,
1974
+ "text": "307",
1975
+ "x": 3,
1976
+ "xref": "x",
1977
+ "y": 25,
1978
+ "yref": "y"
1979
+ },
1980
+ {
1981
+ "font": {
1982
+ "color": "black",
1983
+ "size": 10
1984
+ },
1985
+ "showarrow": false,
1986
+ "text": "235",
1987
+ "x": 0,
1988
+ "xref": "x",
1989
+ "y": 26,
1990
+ "yref": "y"
1991
+ },
1992
+ {
1993
+ "font": {
1994
+ "color": "black",
1995
+ "size": 10
1996
+ },
1997
+ "showarrow": false,
1998
+ "text": "1.0",
1999
+ "x": 1,
2000
+ "xref": "x",
2001
+ "y": 26,
2002
+ "yref": "y"
2003
+ },
2004
+ {
2005
+ "font": {
2006
+ "color": "black",
2007
+ "size": 10
2008
+ },
2009
+ "showarrow": false,
2010
+ "text": "2",
2011
+ "x": 2,
2012
+ "xref": "x",
2013
+ "y": 26,
2014
+ "yref": "y"
2015
+ },
2016
+ {
2017
+ "font": {
2018
+ "color": "black",
2019
+ "size": 10
2020
+ },
2021
+ "showarrow": false,
2022
+ "text": "236",
2023
+ "x": 3,
2024
+ "xref": "x",
2025
+ "y": 26,
2026
+ "yref": "y"
2027
+ },
2028
+ {
2029
+ "font": {
2030
+ "color": "black",
2031
+ "size": 10
2032
+ },
2033
+ "showarrow": false,
2034
+ "text": "66",
2035
+ "x": 0,
2036
+ "xref": "x",
2037
+ "y": 27,
2038
+ "yref": "y"
2039
+ },
2040
+ {
2041
+ "font": {
2042
+ "color": "black",
2043
+ "size": 10
2044
+ },
2045
+ "showarrow": false,
2046
+ "text": "5.0",
2047
+ "x": 1,
2048
+ "xref": "x",
2049
+ "y": 27,
2050
+ "yref": "y"
2051
+ },
2052
+ {
2053
+ "font": {
2054
+ "color": "black",
2055
+ "size": 10
2056
+ },
2057
+ "showarrow": false,
2058
+ "text": "30",
2059
+ "x": 2,
2060
+ "xref": "x",
2061
+ "y": 27,
2062
+ "yref": "y"
2063
+ },
2064
+ {
2065
+ "font": {
2066
+ "color": "black",
2067
+ "size": 10
2068
+ },
2069
+ "showarrow": false,
2070
+ "text": "330",
2071
+ "x": 3,
2072
+ "xref": "x",
2073
+ "y": 27,
2074
+ "yref": "y"
2075
+ },
2076
+ {
2077
+ "font": {
2078
+ "color": "black",
2079
+ "size": 10
2080
+ },
2081
+ "showarrow": false,
2082
+ "text": "90",
2083
+ "x": 0,
2084
+ "xref": "x",
2085
+ "y": 28,
2086
+ "yref": "y"
2087
+ },
2088
+ {
2089
+ "font": {
2090
+ "color": "black",
2091
+ "size": 10
2092
+ },
2093
+ "showarrow": false,
2094
+ "text": "3.8",
2095
+ "x": 1,
2096
+ "xref": "x",
2097
+ "y": 28,
2098
+ "yref": "y"
2099
+ },
2100
+ {
2101
+ "font": {
2102
+ "color": "black",
2103
+ "size": 10
2104
+ },
2105
+ "showarrow": false,
2106
+ "text": "59",
2107
+ "x": 2,
2108
+ "xref": "x",
2109
+ "y": 28,
2110
+ "yref": "y"
2111
+ },
2112
+ {
2113
+ "font": {
2114
+ "color": "black",
2115
+ "size": 10
2116
+ },
2117
+ "showarrow": false,
2118
+ "text": "340",
2119
+ "x": 3,
2120
+ "xref": "x",
2121
+ "y": 28,
2122
+ "yref": "y"
2123
+ },
2124
+ {
2125
+ "font": {
2126
+ "color": "black",
2127
+ "size": 10
2128
+ },
2129
+ "showarrow": false,
2130
+ "text": "1",
2131
+ "x": 0,
2132
+ "xref": "x",
2133
+ "y": 29,
2134
+ "yref": "y"
2135
+ },
2136
+ {
2137
+ "font": {
2138
+ "color": "white",
2139
+ "size": 10
2140
+ },
2141
+ "showarrow": false,
2142
+ "text": "173.0",
2143
+ "x": 1,
2144
+ "xref": "x",
2145
+ "y": 29,
2146
+ "yref": "y"
2147
+ },
2148
+ {
2149
+ "font": {
2150
+ "color": "black",
2151
+ "size": 10
2152
+ },
2153
+ "showarrow": false,
2154
+ "text": "173",
2155
+ "x": 2,
2156
+ "xref": "x",
2157
+ "y": 29,
2158
+ "yref": "y"
2159
+ },
2160
+ {
2161
+ "font": {
2162
+ "color": "black",
2163
+ "size": 10
2164
+ },
2165
+ "showarrow": false,
2166
+ "text": "173",
2167
+ "x": 3,
2168
+ "xref": "x",
2169
+ "y": 29,
2170
+ "yref": "y"
2171
+ },
2172
+ {
2173
+ "font": {
2174
+ "color": "black",
2175
+ "size": 10
2176
+ },
2177
+ "showarrow": false,
2178
+ "text": "56",
2179
+ "x": 0,
2180
+ "xref": "x",
2181
+ "y": 30,
2182
+ "yref": "y"
2183
+ },
2184
+ {
2185
+ "font": {
2186
+ "color": "black",
2187
+ "size": 10
2188
+ },
2189
+ "showarrow": false,
2190
+ "text": "5.9",
2191
+ "x": 1,
2192
+ "xref": "x",
2193
+ "y": 30,
2194
+ "yref": "y"
2195
+ },
2196
+ {
2197
+ "font": {
2198
+ "color": "black",
2199
+ "size": 10
2200
+ },
2201
+ "showarrow": false,
2202
+ "text": "71",
2203
+ "x": 2,
2204
+ "xref": "x",
2205
+ "y": 30,
2206
+ "yref": "y"
2207
+ },
2208
+ {
2209
+ "font": {
2210
+ "color": "black",
2211
+ "size": 10
2212
+ },
2213
+ "showarrow": false,
2214
+ "text": "329",
2215
+ "x": 3,
2216
+ "xref": "x",
2217
+ "y": 30,
2218
+ "yref": "y"
2219
+ },
2220
+ {
2221
+ "font": {
2222
+ "color": "black",
2223
+ "size": 10
2224
+ },
2225
+ "showarrow": false,
2226
+ "text": "52",
2227
+ "x": 0,
2228
+ "xref": "x",
2229
+ "y": 31,
2230
+ "yref": "y"
2231
+ },
2232
+ {
2233
+ "font": {
2234
+ "color": "black",
2235
+ "size": 10
2236
+ },
2237
+ "showarrow": false,
2238
+ "text": "23.6",
2239
+ "x": 1,
2240
+ "xref": "x",
2241
+ "y": 31,
2242
+ "yref": "y"
2243
+ },
2244
+ {
2245
+ "font": {
2246
+ "color": "white",
2247
+ "size": 10
2248
+ },
2249
+ "showarrow": false,
2250
+ "text": "553",
2251
+ "x": 2,
2252
+ "xref": "x",
2253
+ "y": 31,
2254
+ "yref": "y"
2255
+ },
2256
+ {
2257
+ "font": {
2258
+ "color": "white",
2259
+ "size": 10
2260
+ },
2261
+ "showarrow": false,
2262
+ "text": "1229",
2263
+ "x": 3,
2264
+ "xref": "x",
2265
+ "y": 31,
2266
+ "yref": "y"
2267
+ },
2268
+ {
2269
+ "font": {
2270
+ "color": "black",
2271
+ "size": 10
2272
+ },
2273
+ "showarrow": false,
2274
+ "text": "108",
2275
+ "x": 0,
2276
+ "xref": "x",
2277
+ "y": 32,
2278
+ "yref": "y"
2279
+ },
2280
+ {
2281
+ "font": {
2282
+ "color": "black",
2283
+ "size": 10
2284
+ },
2285
+ "showarrow": false,
2286
+ "text": "2.2",
2287
+ "x": 1,
2288
+ "xref": "x",
2289
+ "y": 32,
2290
+ "yref": "y"
2291
+ },
2292
+ {
2293
+ "font": {
2294
+ "color": "black",
2295
+ "size": 10
2296
+ },
2297
+ "showarrow": false,
2298
+ "text": "38",
2299
+ "x": 2,
2300
+ "xref": "x",
2301
+ "y": 32,
2302
+ "yref": "y"
2303
+ },
2304
+ {
2305
+ "font": {
2306
+ "color": "black",
2307
+ "size": 10
2308
+ },
2309
+ "showarrow": false,
2310
+ "text": "234",
2311
+ "x": 3,
2312
+ "xref": "x",
2313
+ "y": 32,
2314
+ "yref": "y"
2315
+ },
2316
+ {
2317
+ "font": {
2318
+ "color": "black",
2319
+ "size": 10
2320
+ },
2321
+ "showarrow": false,
2322
+ "text": "46",
2323
+ "x": 0,
2324
+ "xref": "x",
2325
+ "y": 33,
2326
+ "yref": "y"
2327
+ },
2328
+ {
2329
+ "font": {
2330
+ "color": "black",
2331
+ "size": 10
2332
+ },
2333
+ "showarrow": false,
2334
+ "text": "5.0",
2335
+ "x": 1,
2336
+ "xref": "x",
2337
+ "y": 33,
2338
+ "yref": "y"
2339
+ },
2340
+ {
2341
+ "font": {
2342
+ "color": "black",
2343
+ "size": 10
2344
+ },
2345
+ "showarrow": false,
2346
+ "text": "48",
2347
+ "x": 2,
2348
+ "xref": "x",
2349
+ "y": 33,
2350
+ "yref": "y"
2351
+ },
2352
+ {
2353
+ "font": {
2354
+ "color": "black",
2355
+ "size": 10
2356
+ },
2357
+ "showarrow": false,
2358
+ "text": "231",
2359
+ "x": 3,
2360
+ "xref": "x",
2361
+ "y": 33,
2362
+ "yref": "y"
2363
+ },
2364
+ {
2365
+ "font": {
2366
+ "color": "black",
2367
+ "size": 10
2368
+ },
2369
+ "showarrow": false,
2370
+ "text": "34",
2371
+ "x": 0,
2372
+ "xref": "x",
2373
+ "y": 34,
2374
+ "yref": "y"
2375
+ },
2376
+ {
2377
+ "font": {
2378
+ "color": "black",
2379
+ "size": 10
2380
+ },
2381
+ "showarrow": false,
2382
+ "text": "8.2",
2383
+ "x": 1,
2384
+ "xref": "x",
2385
+ "y": 34,
2386
+ "yref": "y"
2387
+ },
2388
+ {
2389
+ "font": {
2390
+ "color": "black",
2391
+ "size": 10
2392
+ },
2393
+ "showarrow": false,
2394
+ "text": "73",
2395
+ "x": 2,
2396
+ "xref": "x",
2397
+ "y": 34,
2398
+ "yref": "y"
2399
+ },
2400
+ {
2401
+ "font": {
2402
+ "color": "black",
2403
+ "size": 10
2404
+ },
2405
+ "showarrow": false,
2406
+ "text": "278",
2407
+ "x": 3,
2408
+ "xref": "x",
2409
+ "y": 34,
2410
+ "yref": "y"
2411
+ },
2412
+ {
2413
+ "font": {
2414
+ "color": "black",
2415
+ "size": 10
2416
+ },
2417
+ "showarrow": false,
2418
+ "text": "198",
2419
+ "x": 0,
2420
+ "xref": "x",
2421
+ "y": 35,
2422
+ "yref": "y"
2423
+ },
2424
+ {
2425
+ "font": {
2426
+ "color": "black",
2427
+ "size": 10
2428
+ },
2429
+ "showarrow": false,
2430
+ "text": "1.1",
2431
+ "x": 1,
2432
+ "xref": "x",
2433
+ "y": 35,
2434
+ "yref": "y"
2435
+ },
2436
+ {
2437
+ "font": {
2438
+ "color": "black",
2439
+ "size": 10
2440
+ },
2441
+ "showarrow": false,
2442
+ "text": "7",
2443
+ "x": 2,
2444
+ "xref": "x",
2445
+ "y": 35,
2446
+ "yref": "y"
2447
+ },
2448
+ {
2449
+ "font": {
2450
+ "color": "black",
2451
+ "size": 10
2452
+ },
2453
+ "showarrow": false,
2454
+ "text": "216",
2455
+ "x": 3,
2456
+ "xref": "x",
2457
+ "y": 35,
2458
+ "yref": "y"
2459
+ },
2460
+ {
2461
+ "font": {
2462
+ "color": "black",
2463
+ "size": 10
2464
+ },
2465
+ "showarrow": false,
2466
+ "text": "23",
2467
+ "x": 0,
2468
+ "xref": "x",
2469
+ "y": 36,
2470
+ "yref": "y"
2471
+ },
2472
+ {
2473
+ "font": {
2474
+ "color": "black",
2475
+ "size": 10
2476
+ },
2477
+ "showarrow": false,
2478
+ "text": "15.6",
2479
+ "x": 1,
2480
+ "xref": "x",
2481
+ "y": 36,
2482
+ "yref": "y"
2483
+ },
2484
+ {
2485
+ "font": {
2486
+ "color": "black",
2487
+ "size": 10
2488
+ },
2489
+ "showarrow": false,
2490
+ "text": "193",
2491
+ "x": 2,
2492
+ "xref": "x",
2493
+ "y": 36,
2494
+ "yref": "y"
2495
+ },
2496
+ {
2497
+ "font": {
2498
+ "color": "black",
2499
+ "size": 10
2500
+ },
2501
+ "showarrow": false,
2502
+ "text": "359",
2503
+ "x": 3,
2504
+ "xref": "x",
2505
+ "y": 36,
2506
+ "yref": "y"
2507
+ },
2508
+ {
2509
+ "font": {
2510
+ "color": "black",
2511
+ "size": 10
2512
+ },
2513
+ "showarrow": false,
2514
+ "text": "145",
2515
+ "x": 0,
2516
+ "xref": "x",
2517
+ "y": 37,
2518
+ "yref": "y"
2519
+ },
2520
+ {
2521
+ "font": {
2522
+ "color": "black",
2523
+ "size": 10
2524
+ },
2525
+ "showarrow": false,
2526
+ "text": "1.6",
2527
+ "x": 1,
2528
+ "xref": "x",
2529
+ "y": 37,
2530
+ "yref": "y"
2531
+ },
2532
+ {
2533
+ "font": {
2534
+ "color": "black",
2535
+ "size": 10
2536
+ },
2537
+ "showarrow": false,
2538
+ "text": "22",
2539
+ "x": 2,
2540
+ "xref": "x",
2541
+ "y": 37,
2542
+ "yref": "y"
2543
+ },
2544
+ {
2545
+ "font": {
2546
+ "color": "black",
2547
+ "size": 10
2548
+ },
2549
+ "showarrow": false,
2550
+ "text": "234",
2551
+ "x": 3,
2552
+ "xref": "x",
2553
+ "y": 37,
2554
+ "yref": "y"
2555
+ },
2556
+ {
2557
+ "font": {
2558
+ "color": "black",
2559
+ "size": 10
2560
+ },
2561
+ "showarrow": false,
2562
+ "text": "52",
2563
+ "x": 0,
2564
+ "xref": "x",
2565
+ "y": 38,
2566
+ "yref": "y"
2567
+ },
2568
+ {
2569
+ "font": {
2570
+ "color": "black",
2571
+ "size": 10
2572
+ },
2573
+ "showarrow": false,
2574
+ "text": "5.6",
2575
+ "x": 1,
2576
+ "xref": "x",
2577
+ "y": 38,
2578
+ "yref": "y"
2579
+ },
2580
+ {
2581
+ "font": {
2582
+ "color": "black",
2583
+ "size": 10
2584
+ },
2585
+ "showarrow": false,
2586
+ "text": "47",
2587
+ "x": 2,
2588
+ "xref": "x",
2589
+ "y": 38,
2590
+ "yref": "y"
2591
+ },
2592
+ {
2593
+ "font": {
2594
+ "color": "black",
2595
+ "size": 10
2596
+ },
2597
+ "showarrow": false,
2598
+ "text": "291",
2599
+ "x": 3,
2600
+ "xref": "x",
2601
+ "y": 38,
2602
+ "yref": "y"
2603
+ },
2604
+ {
2605
+ "font": {
2606
+ "color": "black",
2607
+ "size": 10
2608
+ },
2609
+ "showarrow": false,
2610
+ "text": "14",
2611
+ "x": 0,
2612
+ "xref": "x",
2613
+ "y": 39,
2614
+ "yref": "y"
2615
+ },
2616
+ {
2617
+ "font": {
2618
+ "color": "black",
2619
+ "size": 10
2620
+ },
2621
+ "showarrow": false,
2622
+ "text": "16.6",
2623
+ "x": 1,
2624
+ "xref": "x",
2625
+ "y": 39,
2626
+ "yref": "y"
2627
+ },
2628
+ {
2629
+ "font": {
2630
+ "color": "black",
2631
+ "size": 10
2632
+ },
2633
+ "showarrow": false,
2634
+ "text": "154",
2635
+ "x": 2,
2636
+ "xref": "x",
2637
+ "y": 39,
2638
+ "yref": "y"
2639
+ },
2640
+ {
2641
+ "font": {
2642
+ "color": "black",
2643
+ "size": 10
2644
+ },
2645
+ "showarrow": false,
2646
+ "text": "232",
2647
+ "x": 3,
2648
+ "xref": "x",
2649
+ "y": 39,
2650
+ "yref": "y"
2651
+ },
2652
+ {
2653
+ "font": {
2654
+ "color": "black",
2655
+ "size": 10
2656
+ },
2657
+ "showarrow": false,
2658
+ "text": "50",
2659
+ "x": 0,
2660
+ "xref": "x",
2661
+ "y": 40,
2662
+ "yref": "y"
2663
+ },
2664
+ {
2665
+ "font": {
2666
+ "color": "black",
2667
+ "size": 10
2668
+ },
2669
+ "showarrow": false,
2670
+ "text": "7.8",
2671
+ "x": 1,
2672
+ "xref": "x",
2673
+ "y": 40,
2674
+ "yref": "y"
2675
+ },
2676
+ {
2677
+ "font": {
2678
+ "color": "black",
2679
+ "size": 10
2680
+ },
2681
+ "showarrow": false,
2682
+ "text": "43",
2683
+ "x": 2,
2684
+ "xref": "x",
2685
+ "y": 40,
2686
+ "yref": "y"
2687
+ },
2688
+ {
2689
+ "font": {
2690
+ "color": "black",
2691
+ "size": 10
2692
+ },
2693
+ "showarrow": false,
2694
+ "text": "392",
2695
+ "x": 3,
2696
+ "xref": "x",
2697
+ "y": 40,
2698
+ "yref": "y"
2699
+ },
2700
+ {
2701
+ "font": {
2702
+ "color": "black",
2703
+ "size": 10
2704
+ },
2705
+ "showarrow": false,
2706
+ "text": "141",
2707
+ "x": 0,
2708
+ "xref": "x",
2709
+ "y": 41,
2710
+ "yref": "y"
2711
+ },
2712
+ {
2713
+ "font": {
2714
+ "color": "black",
2715
+ "size": 10
2716
+ },
2717
+ "showarrow": false,
2718
+ "text": "1.6",
2719
+ "x": 1,
2720
+ "xref": "x",
2721
+ "y": 41,
2722
+ "yref": "y"
2723
+ },
2724
+ {
2725
+ "font": {
2726
+ "color": "black",
2727
+ "size": 10
2728
+ },
2729
+ "showarrow": false,
2730
+ "text": "12",
2731
+ "x": 2,
2732
+ "xref": "x",
2733
+ "y": 41,
2734
+ "yref": "y"
2735
+ },
2736
+ {
2737
+ "font": {
2738
+ "color": "black",
2739
+ "size": 10
2740
+ },
2741
+ "showarrow": false,
2742
+ "text": "232",
2743
+ "x": 3,
2744
+ "xref": "x",
2745
+ "y": 41,
2746
+ "yref": "y"
2747
+ },
2748
+ {
2749
+ "font": {
2750
+ "color": "black",
2751
+ "size": 10
2752
+ },
2753
+ "showarrow": false,
2754
+ "text": "64",
2755
+ "x": 0,
2756
+ "xref": "x",
2757
+ "y": 42,
2758
+ "yref": "y"
2759
+ },
2760
+ {
2761
+ "font": {
2762
+ "color": "black",
2763
+ "size": 10
2764
+ },
2765
+ "showarrow": false,
2766
+ "text": "3.4",
2767
+ "x": 1,
2768
+ "xref": "x",
2769
+ "y": 42,
2770
+ "yref": "y"
2771
+ },
2772
+ {
2773
+ "font": {
2774
+ "color": "black",
2775
+ "size": 10
2776
+ },
2777
+ "showarrow": false,
2778
+ "text": "18",
2779
+ "x": 2,
2780
+ "xref": "x",
2781
+ "y": 42,
2782
+ "yref": "y"
2783
+ },
2784
+ {
2785
+ "font": {
2786
+ "color": "black",
2787
+ "size": 10
2788
+ },
2789
+ "showarrow": false,
2790
+ "text": "216",
2791
+ "x": 3,
2792
+ "xref": "x",
2793
+ "y": 42,
2794
+ "yref": "y"
2795
+ },
2796
+ {
2797
+ "font": {
2798
+ "color": "black",
2799
+ "size": 10
2800
+ },
2801
+ "showarrow": false,
2802
+ "text": "64",
2803
+ "x": 0,
2804
+ "xref": "x",
2805
+ "y": 43,
2806
+ "yref": "y"
2807
+ },
2808
+ {
2809
+ "font": {
2810
+ "color": "black",
2811
+ "size": 10
2812
+ },
2813
+ "showarrow": false,
2814
+ "text": "4.1",
2815
+ "x": 1,
2816
+ "xref": "x",
2817
+ "y": 43,
2818
+ "yref": "y"
2819
+ },
2820
+ {
2821
+ "font": {
2822
+ "color": "black",
2823
+ "size": 10
2824
+ },
2825
+ "showarrow": false,
2826
+ "text": "83",
2827
+ "x": 2,
2828
+ "xref": "x",
2829
+ "y": 43,
2830
+ "yref": "y"
2831
+ },
2832
+ {
2833
+ "font": {
2834
+ "color": "black",
2835
+ "size": 10
2836
+ },
2837
+ "showarrow": false,
2838
+ "text": "260",
2839
+ "x": 3,
2840
+ "xref": "x",
2841
+ "y": 43,
2842
+ "yref": "y"
2843
+ },
2844
+ {
2845
+ "font": {
2846
+ "color": "black",
2847
+ "size": 10
2848
+ },
2849
+ "showarrow": false,
2850
+ "text": "38",
2851
+ "x": 0,
2852
+ "xref": "x",
2853
+ "y": 44,
2854
+ "yref": "y"
2855
+ },
2856
+ {
2857
+ "font": {
2858
+ "color": "black",
2859
+ "size": 10
2860
+ },
2861
+ "showarrow": false,
2862
+ "text": "6.3",
2863
+ "x": 1,
2864
+ "xref": "x",
2865
+ "y": 44,
2866
+ "yref": "y"
2867
+ },
2868
+ {
2869
+ "font": {
2870
+ "color": "black",
2871
+ "size": 10
2872
+ },
2873
+ "showarrow": false,
2874
+ "text": "48",
2875
+ "x": 2,
2876
+ "xref": "x",
2877
+ "y": 44,
2878
+ "yref": "y"
2879
+ },
2880
+ {
2881
+ "font": {
2882
+ "color": "black",
2883
+ "size": 10
2884
+ },
2885
+ "showarrow": false,
2886
+ "text": "241",
2887
+ "x": 3,
2888
+ "xref": "x",
2889
+ "y": 44,
2890
+ "yref": "y"
2891
+ },
2892
+ {
2893
+ "font": {
2894
+ "color": "black",
2895
+ "size": 10
2896
+ },
2897
+ "showarrow": false,
2898
+ "text": "47",
2899
+ "x": 0,
2900
+ "xref": "x",
2901
+ "y": 45,
2902
+ "yref": "y"
2903
+ },
2904
+ {
2905
+ "font": {
2906
+ "color": "black",
2907
+ "size": 10
2908
+ },
2909
+ "showarrow": false,
2910
+ "text": "6.3",
2911
+ "x": 1,
2912
+ "xref": "x",
2913
+ "y": 45,
2914
+ "yref": "y"
2915
+ },
2916
+ {
2917
+ "font": {
2918
+ "color": "black",
2919
+ "size": 10
2920
+ },
2921
+ "showarrow": false,
2922
+ "text": "44",
2923
+ "x": 2,
2924
+ "xref": "x",
2925
+ "y": 45,
2926
+ "yref": "y"
2927
+ },
2928
+ {
2929
+ "font": {
2930
+ "color": "black",
2931
+ "size": 10
2932
+ },
2933
+ "showarrow": false,
2934
+ "text": "295",
2935
+ "x": 3,
2936
+ "xref": "x",
2937
+ "y": 45,
2938
+ "yref": "y"
2939
+ },
2940
+ {
2941
+ "font": {
2942
+ "color": "black",
2943
+ "size": 10
2944
+ },
2945
+ "showarrow": false,
2946
+ "text": "20",
2947
+ "x": 0,
2948
+ "xref": "x",
2949
+ "y": 46,
2950
+ "yref": "y"
2951
+ },
2952
+ {
2953
+ "font": {
2954
+ "color": "black",
2955
+ "size": 10
2956
+ },
2957
+ "showarrow": false,
2958
+ "text": "15.8",
2959
+ "x": 1,
2960
+ "xref": "x",
2961
+ "y": 46,
2962
+ "yref": "y"
2963
+ },
2964
+ {
2965
+ "font": {
2966
+ "color": "black",
2967
+ "size": 10
2968
+ },
2969
+ "showarrow": false,
2970
+ "text": "44",
2971
+ "x": 2,
2972
+ "xref": "x",
2973
+ "y": 46,
2974
+ "yref": "y"
2975
+ },
2976
+ {
2977
+ "font": {
2978
+ "color": "black",
2979
+ "size": 10
2980
+ },
2981
+ "showarrow": false,
2982
+ "text": "317",
2983
+ "x": 3,
2984
+ "xref": "x",
2985
+ "y": 46,
2986
+ "yref": "y"
2987
+ },
2988
+ {
2989
+ "font": {
2990
+ "color": "black",
2991
+ "size": 10
2992
+ },
2993
+ "showarrow": false,
2994
+ "text": "98",
2995
+ "x": 0,
2996
+ "xref": "x",
2997
+ "y": 47,
2998
+ "yref": "y"
2999
+ },
3000
+ {
3001
+ "font": {
3002
+ "color": "black",
3003
+ "size": 10
3004
+ },
3005
+ "showarrow": false,
3006
+ "text": "2.4",
3007
+ "x": 1,
3008
+ "xref": "x",
3009
+ "y": 47,
3010
+ "yref": "y"
3011
+ },
3012
+ {
3013
+ "font": {
3014
+ "color": "black",
3015
+ "size": 10
3016
+ },
3017
+ "showarrow": false,
3018
+ "text": "32",
3019
+ "x": 2,
3020
+ "xref": "x",
3021
+ "y": 47,
3022
+ "yref": "y"
3023
+ },
3024
+ {
3025
+ "font": {
3026
+ "color": "black",
3027
+ "size": 10
3028
+ },
3029
+ "showarrow": false,
3030
+ "text": "236",
3031
+ "x": 3,
3032
+ "xref": "x",
3033
+ "y": 47,
3034
+ "yref": "y"
3035
+ },
3036
+ {
3037
+ "font": {
3038
+ "color": "black",
3039
+ "size": 10
3040
+ },
3041
+ "showarrow": false,
3042
+ "text": "155",
3043
+ "x": 0,
3044
+ "xref": "x",
3045
+ "y": 48,
3046
+ "yref": "y"
3047
+ },
3048
+ {
3049
+ "font": {
3050
+ "color": "black",
3051
+ "size": 10
3052
+ },
3053
+ "showarrow": false,
3054
+ "text": "1.5",
3055
+ "x": 1,
3056
+ "xref": "x",
3057
+ "y": 48,
3058
+ "yref": "y"
3059
+ },
3060
+ {
3061
+ "font": {
3062
+ "color": "black",
3063
+ "size": 10
3064
+ },
3065
+ "showarrow": false,
3066
+ "text": "12",
3067
+ "x": 2,
3068
+ "xref": "x",
3069
+ "y": 48,
3070
+ "yref": "y"
3071
+ },
3072
+ {
3073
+ "font": {
3074
+ "color": "black",
3075
+ "size": 10
3076
+ },
3077
+ "showarrow": false,
3078
+ "text": "238",
3079
+ "x": 3,
3080
+ "xref": "x",
3081
+ "y": 48,
3082
+ "yref": "y"
3083
+ },
3084
+ {
3085
+ "font": {
3086
+ "color": "black",
3087
+ "size": 10
3088
+ },
3089
+ "showarrow": false,
3090
+ "text": "202",
3091
+ "x": 0,
3092
+ "xref": "x",
3093
+ "y": 49,
3094
+ "yref": "y"
3095
+ },
3096
+ {
3097
+ "font": {
3098
+ "color": "black",
3099
+ "size": 10
3100
+ },
3101
+ "showarrow": false,
3102
+ "text": "1.1",
3103
+ "x": 1,
3104
+ "xref": "x",
3105
+ "y": 49,
3106
+ "yref": "y"
3107
+ },
3108
+ {
3109
+ "font": {
3110
+ "color": "black",
3111
+ "size": 10
3112
+ },
3113
+ "showarrow": false,
3114
+ "text": "3",
3115
+ "x": 2,
3116
+ "xref": "x",
3117
+ "y": 49,
3118
+ "yref": "y"
3119
+ },
3120
+ {
3121
+ "font": {
3122
+ "color": "black",
3123
+ "size": 10
3124
+ },
3125
+ "showarrow": false,
3126
+ "text": "217",
3127
+ "x": 3,
3128
+ "xref": "x",
3129
+ "y": 49,
3130
+ "yref": "y"
3131
+ }
3132
+ ],
3133
+ "height": 1450,
3134
+ "margin": {
3135
+ "b": 80,
3136
+ "l": 250,
3137
+ "r": 50,
3138
+ "t": 100
3139
+ },
3140
+ "plot_bgcolor": "white",
3141
+ "template": {
3142
+ "data": {
3143
+ "bar": [
3144
+ {
3145
+ "error_x": {
3146
+ "color": "#2a3f5f"
3147
+ },
3148
+ "error_y": {
3149
+ "color": "#2a3f5f"
3150
+ },
3151
+ "marker": {
3152
+ "line": {
3153
+ "color": "#E5ECF6",
3154
+ "width": 0.5
3155
+ },
3156
+ "pattern": {
3157
+ "fillmode": "overlay",
3158
+ "size": 10,
3159
+ "solidity": 0.2
3160
+ }
3161
+ },
3162
+ "type": "bar"
3163
+ }
3164
+ ],
3165
+ "barpolar": [
3166
+ {
3167
+ "marker": {
3168
+ "line": {
3169
+ "color": "#E5ECF6",
3170
+ "width": 0.5
3171
+ },
3172
+ "pattern": {
3173
+ "fillmode": "overlay",
3174
+ "size": 10,
3175
+ "solidity": 0.2
3176
+ }
3177
+ },
3178
+ "type": "barpolar"
3179
+ }
3180
+ ],
3181
+ "carpet": [
3182
+ {
3183
+ "aaxis": {
3184
+ "endlinecolor": "#2a3f5f",
3185
+ "gridcolor": "white",
3186
+ "linecolor": "white",
3187
+ "minorgridcolor": "white",
3188
+ "startlinecolor": "#2a3f5f"
3189
+ },
3190
+ "baxis": {
3191
+ "endlinecolor": "#2a3f5f",
3192
+ "gridcolor": "white",
3193
+ "linecolor": "white",
3194
+ "minorgridcolor": "white",
3195
+ "startlinecolor": "#2a3f5f"
3196
+ },
3197
+ "type": "carpet"
3198
+ }
3199
+ ],
3200
+ "choropleth": [
3201
+ {
3202
+ "colorbar": {
3203
+ "outlinewidth": 0,
3204
+ "ticks": ""
3205
+ },
3206
+ "type": "choropleth"
3207
+ }
3208
+ ],
3209
+ "contour": [
3210
+ {
3211
+ "colorbar": {
3212
+ "outlinewidth": 0,
3213
+ "ticks": ""
3214
+ },
3215
+ "colorscale": [
3216
+ [
3217
+ 0,
3218
+ "#0d0887"
3219
+ ],
3220
+ [
3221
+ 0.1111111111111111,
3222
+ "#46039f"
3223
+ ],
3224
+ [
3225
+ 0.2222222222222222,
3226
+ "#7201a8"
3227
+ ],
3228
+ [
3229
+ 0.3333333333333333,
3230
+ "#9c179e"
3231
+ ],
3232
+ [
3233
+ 0.4444444444444444,
3234
+ "#bd3786"
3235
+ ],
3236
+ [
3237
+ 0.5555555555555556,
3238
+ "#d8576b"
3239
+ ],
3240
+ [
3241
+ 0.6666666666666666,
3242
+ "#ed7953"
3243
+ ],
3244
+ [
3245
+ 0.7777777777777778,
3246
+ "#fb9f3a"
3247
+ ],
3248
+ [
3249
+ 0.8888888888888888,
3250
+ "#fdca26"
3251
+ ],
3252
+ [
3253
+ 1,
3254
+ "#f0f921"
3255
+ ]
3256
+ ],
3257
+ "type": "contour"
3258
+ }
3259
+ ],
3260
+ "contourcarpet": [
3261
+ {
3262
+ "colorbar": {
3263
+ "outlinewidth": 0,
3264
+ "ticks": ""
3265
+ },
3266
+ "type": "contourcarpet"
3267
+ }
3268
+ ],
3269
+ "heatmap": [
3270
+ {
3271
+ "colorbar": {
3272
+ "outlinewidth": 0,
3273
+ "ticks": ""
3274
+ },
3275
+ "colorscale": [
3276
+ [
3277
+ 0,
3278
+ "#0d0887"
3279
+ ],
3280
+ [
3281
+ 0.1111111111111111,
3282
+ "#46039f"
3283
+ ],
3284
+ [
3285
+ 0.2222222222222222,
3286
+ "#7201a8"
3287
+ ],
3288
+ [
3289
+ 0.3333333333333333,
3290
+ "#9c179e"
3291
+ ],
3292
+ [
3293
+ 0.4444444444444444,
3294
+ "#bd3786"
3295
+ ],
3296
+ [
3297
+ 0.5555555555555556,
3298
+ "#d8576b"
3299
+ ],
3300
+ [
3301
+ 0.6666666666666666,
3302
+ "#ed7953"
3303
+ ],
3304
+ [
3305
+ 0.7777777777777778,
3306
+ "#fb9f3a"
3307
+ ],
3308
+ [
3309
+ 0.8888888888888888,
3310
+ "#fdca26"
3311
+ ],
3312
+ [
3313
+ 1,
3314
+ "#f0f921"
3315
+ ]
3316
+ ],
3317
+ "type": "heatmap"
3318
+ }
3319
+ ],
3320
+ "heatmapgl": [
3321
+ {
3322
+ "colorbar": {
3323
+ "outlinewidth": 0,
3324
+ "ticks": ""
3325
+ },
3326
+ "colorscale": [
3327
+ [
3328
+ 0,
3329
+ "#0d0887"
3330
+ ],
3331
+ [
3332
+ 0.1111111111111111,
3333
+ "#46039f"
3334
+ ],
3335
+ [
3336
+ 0.2222222222222222,
3337
+ "#7201a8"
3338
+ ],
3339
+ [
3340
+ 0.3333333333333333,
3341
+ "#9c179e"
3342
+ ],
3343
+ [
3344
+ 0.4444444444444444,
3345
+ "#bd3786"
3346
+ ],
3347
+ [
3348
+ 0.5555555555555556,
3349
+ "#d8576b"
3350
+ ],
3351
+ [
3352
+ 0.6666666666666666,
3353
+ "#ed7953"
3354
+ ],
3355
+ [
3356
+ 0.7777777777777778,
3357
+ "#fb9f3a"
3358
+ ],
3359
+ [
3360
+ 0.8888888888888888,
3361
+ "#fdca26"
3362
+ ],
3363
+ [
3364
+ 1,
3365
+ "#f0f921"
3366
+ ]
3367
+ ],
3368
+ "type": "heatmapgl"
3369
+ }
3370
+ ],
3371
+ "histogram": [
3372
+ {
3373
+ "marker": {
3374
+ "pattern": {
3375
+ "fillmode": "overlay",
3376
+ "size": 10,
3377
+ "solidity": 0.2
3378
+ }
3379
+ },
3380
+ "type": "histogram"
3381
+ }
3382
+ ],
3383
+ "histogram2d": [
3384
+ {
3385
+ "colorbar": {
3386
+ "outlinewidth": 0,
3387
+ "ticks": ""
3388
+ },
3389
+ "colorscale": [
3390
+ [
3391
+ 0,
3392
+ "#0d0887"
3393
+ ],
3394
+ [
3395
+ 0.1111111111111111,
3396
+ "#46039f"
3397
+ ],
3398
+ [
3399
+ 0.2222222222222222,
3400
+ "#7201a8"
3401
+ ],
3402
+ [
3403
+ 0.3333333333333333,
3404
+ "#9c179e"
3405
+ ],
3406
+ [
3407
+ 0.4444444444444444,
3408
+ "#bd3786"
3409
+ ],
3410
+ [
3411
+ 0.5555555555555556,
3412
+ "#d8576b"
3413
+ ],
3414
+ [
3415
+ 0.6666666666666666,
3416
+ "#ed7953"
3417
+ ],
3418
+ [
3419
+ 0.7777777777777778,
3420
+ "#fb9f3a"
3421
+ ],
3422
+ [
3423
+ 0.8888888888888888,
3424
+ "#fdca26"
3425
+ ],
3426
+ [
3427
+ 1,
3428
+ "#f0f921"
3429
+ ]
3430
+ ],
3431
+ "type": "histogram2d"
3432
+ }
3433
+ ],
3434
+ "histogram2dcontour": [
3435
+ {
3436
+ "colorbar": {
3437
+ "outlinewidth": 0,
3438
+ "ticks": ""
3439
+ },
3440
+ "colorscale": [
3441
+ [
3442
+ 0,
3443
+ "#0d0887"
3444
+ ],
3445
+ [
3446
+ 0.1111111111111111,
3447
+ "#46039f"
3448
+ ],
3449
+ [
3450
+ 0.2222222222222222,
3451
+ "#7201a8"
3452
+ ],
3453
+ [
3454
+ 0.3333333333333333,
3455
+ "#9c179e"
3456
+ ],
3457
+ [
3458
+ 0.4444444444444444,
3459
+ "#bd3786"
3460
+ ],
3461
+ [
3462
+ 0.5555555555555556,
3463
+ "#d8576b"
3464
+ ],
3465
+ [
3466
+ 0.6666666666666666,
3467
+ "#ed7953"
3468
+ ],
3469
+ [
3470
+ 0.7777777777777778,
3471
+ "#fb9f3a"
3472
+ ],
3473
+ [
3474
+ 0.8888888888888888,
3475
+ "#fdca26"
3476
+ ],
3477
+ [
3478
+ 1,
3479
+ "#f0f921"
3480
+ ]
3481
+ ],
3482
+ "type": "histogram2dcontour"
3483
+ }
3484
+ ],
3485
+ "mesh3d": [
3486
+ {
3487
+ "colorbar": {
3488
+ "outlinewidth": 0,
3489
+ "ticks": ""
3490
+ },
3491
+ "type": "mesh3d"
3492
+ }
3493
+ ],
3494
+ "parcoords": [
3495
+ {
3496
+ "line": {
3497
+ "colorbar": {
3498
+ "outlinewidth": 0,
3499
+ "ticks": ""
3500
+ }
3501
+ },
3502
+ "type": "parcoords"
3503
+ }
3504
+ ],
3505
+ "pie": [
3506
+ {
3507
+ "automargin": true,
3508
+ "type": "pie"
3509
+ }
3510
+ ],
3511
+ "scatter": [
3512
+ {
3513
+ "fillpattern": {
3514
+ "fillmode": "overlay",
3515
+ "size": 10,
3516
+ "solidity": 0.2
3517
+ },
3518
+ "type": "scatter"
3519
+ }
3520
+ ],
3521
+ "scatter3d": [
3522
+ {
3523
+ "line": {
3524
+ "colorbar": {
3525
+ "outlinewidth": 0,
3526
+ "ticks": ""
3527
+ }
3528
+ },
3529
+ "marker": {
3530
+ "colorbar": {
3531
+ "outlinewidth": 0,
3532
+ "ticks": ""
3533
+ }
3534
+ },
3535
+ "type": "scatter3d"
3536
+ }
3537
+ ],
3538
+ "scattercarpet": [
3539
+ {
3540
+ "marker": {
3541
+ "colorbar": {
3542
+ "outlinewidth": 0,
3543
+ "ticks": ""
3544
+ }
3545
+ },
3546
+ "type": "scattercarpet"
3547
+ }
3548
+ ],
3549
+ "scattergeo": [
3550
+ {
3551
+ "marker": {
3552
+ "colorbar": {
3553
+ "outlinewidth": 0,
3554
+ "ticks": ""
3555
+ }
3556
+ },
3557
+ "type": "scattergeo"
3558
+ }
3559
+ ],
3560
+ "scattergl": [
3561
+ {
3562
+ "marker": {
3563
+ "colorbar": {
3564
+ "outlinewidth": 0,
3565
+ "ticks": ""
3566
+ }
3567
+ },
3568
+ "type": "scattergl"
3569
+ }
3570
+ ],
3571
+ "scattermapbox": [
3572
+ {
3573
+ "marker": {
3574
+ "colorbar": {
3575
+ "outlinewidth": 0,
3576
+ "ticks": ""
3577
+ }
3578
+ },
3579
+ "type": "scattermapbox"
3580
+ }
3581
+ ],
3582
+ "scatterpolar": [
3583
+ {
3584
+ "marker": {
3585
+ "colorbar": {
3586
+ "outlinewidth": 0,
3587
+ "ticks": ""
3588
+ }
3589
+ },
3590
+ "type": "scatterpolar"
3591
+ }
3592
+ ],
3593
+ "scatterpolargl": [
3594
+ {
3595
+ "marker": {
3596
+ "colorbar": {
3597
+ "outlinewidth": 0,
3598
+ "ticks": ""
3599
+ }
3600
+ },
3601
+ "type": "scatterpolargl"
3602
+ }
3603
+ ],
3604
+ "scatterternary": [
3605
+ {
3606
+ "marker": {
3607
+ "colorbar": {
3608
+ "outlinewidth": 0,
3609
+ "ticks": ""
3610
+ }
3611
+ },
3612
+ "type": "scatterternary"
3613
+ }
3614
+ ],
3615
+ "surface": [
3616
+ {
3617
+ "colorbar": {
3618
+ "outlinewidth": 0,
3619
+ "ticks": ""
3620
+ },
3621
+ "colorscale": [
3622
+ [
3623
+ 0,
3624
+ "#0d0887"
3625
+ ],
3626
+ [
3627
+ 0.1111111111111111,
3628
+ "#46039f"
3629
+ ],
3630
+ [
3631
+ 0.2222222222222222,
3632
+ "#7201a8"
3633
+ ],
3634
+ [
3635
+ 0.3333333333333333,
3636
+ "#9c179e"
3637
+ ],
3638
+ [
3639
+ 0.4444444444444444,
3640
+ "#bd3786"
3641
+ ],
3642
+ [
3643
+ 0.5555555555555556,
3644
+ "#d8576b"
3645
+ ],
3646
+ [
3647
+ 0.6666666666666666,
3648
+ "#ed7953"
3649
+ ],
3650
+ [
3651
+ 0.7777777777777778,
3652
+ "#fb9f3a"
3653
+ ],
3654
+ [
3655
+ 0.8888888888888888,
3656
+ "#fdca26"
3657
+ ],
3658
+ [
3659
+ 1,
3660
+ "#f0f921"
3661
+ ]
3662
+ ],
3663
+ "type": "surface"
3664
+ }
3665
+ ],
3666
+ "table": [
3667
+ {
3668
+ "cells": {
3669
+ "fill": {
3670
+ "color": "#EBF0F8"
3671
+ },
3672
+ "line": {
3673
+ "color": "white"
3674
+ }
3675
+ },
3676
+ "header": {
3677
+ "fill": {
3678
+ "color": "#C8D4E3"
3679
+ },
3680
+ "line": {
3681
+ "color": "white"
3682
+ }
3683
+ },
3684
+ "type": "table"
3685
+ }
3686
+ ]
3687
+ },
3688
+ "layout": {
3689
+ "annotationdefaults": {
3690
+ "arrowcolor": "#2a3f5f",
3691
+ "arrowhead": 0,
3692
+ "arrowwidth": 1
3693
+ },
3694
+ "autotypenumbers": "strict",
3695
+ "coloraxis": {
3696
+ "colorbar": {
3697
+ "outlinewidth": 0,
3698
+ "ticks": ""
3699
+ }
3700
+ },
3701
+ "colorscale": {
3702
+ "diverging": [
3703
+ [
3704
+ 0,
3705
+ "#8e0152"
3706
+ ],
3707
+ [
3708
+ 0.1,
3709
+ "#c51b7d"
3710
+ ],
3711
+ [
3712
+ 0.2,
3713
+ "#de77ae"
3714
+ ],
3715
+ [
3716
+ 0.3,
3717
+ "#f1b6da"
3718
+ ],
3719
+ [
3720
+ 0.4,
3721
+ "#fde0ef"
3722
+ ],
3723
+ [
3724
+ 0.5,
3725
+ "#f7f7f7"
3726
+ ],
3727
+ [
3728
+ 0.6,
3729
+ "#e6f5d0"
3730
+ ],
3731
+ [
3732
+ 0.7,
3733
+ "#b8e186"
3734
+ ],
3735
+ [
3736
+ 0.8,
3737
+ "#7fbc41"
3738
+ ],
3739
+ [
3740
+ 0.9,
3741
+ "#4d9221"
3742
+ ],
3743
+ [
3744
+ 1,
3745
+ "#276419"
3746
+ ]
3747
+ ],
3748
+ "sequential": [
3749
+ [
3750
+ 0,
3751
+ "#0d0887"
3752
+ ],
3753
+ [
3754
+ 0.1111111111111111,
3755
+ "#46039f"
3756
+ ],
3757
+ [
3758
+ 0.2222222222222222,
3759
+ "#7201a8"
3760
+ ],
3761
+ [
3762
+ 0.3333333333333333,
3763
+ "#9c179e"
3764
+ ],
3765
+ [
3766
+ 0.4444444444444444,
3767
+ "#bd3786"
3768
+ ],
3769
+ [
3770
+ 0.5555555555555556,
3771
+ "#d8576b"
3772
+ ],
3773
+ [
3774
+ 0.6666666666666666,
3775
+ "#ed7953"
3776
+ ],
3777
+ [
3778
+ 0.7777777777777778,
3779
+ "#fb9f3a"
3780
+ ],
3781
+ [
3782
+ 0.8888888888888888,
3783
+ "#fdca26"
3784
+ ],
3785
+ [
3786
+ 1,
3787
+ "#f0f921"
3788
+ ]
3789
+ ],
3790
+ "sequentialminus": [
3791
+ [
3792
+ 0,
3793
+ "#0d0887"
3794
+ ],
3795
+ [
3796
+ 0.1111111111111111,
3797
+ "#46039f"
3798
+ ],
3799
+ [
3800
+ 0.2222222222222222,
3801
+ "#7201a8"
3802
+ ],
3803
+ [
3804
+ 0.3333333333333333,
3805
+ "#9c179e"
3806
+ ],
3807
+ [
3808
+ 0.4444444444444444,
3809
+ "#bd3786"
3810
+ ],
3811
+ [
3812
+ 0.5555555555555556,
3813
+ "#d8576b"
3814
+ ],
3815
+ [
3816
+ 0.6666666666666666,
3817
+ "#ed7953"
3818
+ ],
3819
+ [
3820
+ 0.7777777777777778,
3821
+ "#fb9f3a"
3822
+ ],
3823
+ [
3824
+ 0.8888888888888888,
3825
+ "#fdca26"
3826
+ ],
3827
+ [
3828
+ 1,
3829
+ "#f0f921"
3830
+ ]
3831
+ ]
3832
+ },
3833
+ "colorway": [
3834
+ "#636efa",
3835
+ "#EF553B",
3836
+ "#00cc96",
3837
+ "#ab63fa",
3838
+ "#FFA15A",
3839
+ "#19d3f3",
3840
+ "#FF6692",
3841
+ "#B6E880",
3842
+ "#FF97FF",
3843
+ "#FECB52"
3844
+ ],
3845
+ "font": {
3846
+ "color": "#2a3f5f"
3847
+ },
3848
+ "geo": {
3849
+ "bgcolor": "white",
3850
+ "lakecolor": "white",
3851
+ "landcolor": "#E5ECF6",
3852
+ "showlakes": true,
3853
+ "showland": true,
3854
+ "subunitcolor": "white"
3855
+ },
3856
+ "hoverlabel": {
3857
+ "align": "left"
3858
+ },
3859
+ "hovermode": "closest",
3860
+ "mapbox": {
3861
+ "style": "light"
3862
+ },
3863
+ "paper_bgcolor": "white",
3864
+ "plot_bgcolor": "#E5ECF6",
3865
+ "polar": {
3866
+ "angularaxis": {
3867
+ "gridcolor": "white",
3868
+ "linecolor": "white",
3869
+ "ticks": ""
3870
+ },
3871
+ "bgcolor": "#E5ECF6",
3872
+ "radialaxis": {
3873
+ "gridcolor": "white",
3874
+ "linecolor": "white",
3875
+ "ticks": ""
3876
+ }
3877
+ },
3878
+ "scene": {
3879
+ "xaxis": {
3880
+ "backgroundcolor": "#E5ECF6",
3881
+ "gridcolor": "white",
3882
+ "gridwidth": 2,
3883
+ "linecolor": "white",
3884
+ "showbackground": true,
3885
+ "ticks": "",
3886
+ "zerolinecolor": "white"
3887
+ },
3888
+ "yaxis": {
3889
+ "backgroundcolor": "#E5ECF6",
3890
+ "gridcolor": "white",
3891
+ "gridwidth": 2,
3892
+ "linecolor": "white",
3893
+ "showbackground": true,
3894
+ "ticks": "",
3895
+ "zerolinecolor": "white"
3896
+ },
3897
+ "zaxis": {
3898
+ "backgroundcolor": "#E5ECF6",
3899
+ "gridcolor": "white",
3900
+ "gridwidth": 2,
3901
+ "linecolor": "white",
3902
+ "showbackground": true,
3903
+ "ticks": "",
3904
+ "zerolinecolor": "white"
3905
+ }
3906
+ },
3907
+ "shapedefaults": {
3908
+ "line": {
3909
+ "color": "#2a3f5f"
3910
+ }
3911
+ },
3912
+ "ternary": {
3913
+ "aaxis": {
3914
+ "gridcolor": "white",
3915
+ "linecolor": "white",
3916
+ "ticks": ""
3917
+ },
3918
+ "baxis": {
3919
+ "gridcolor": "white",
3920
+ "linecolor": "white",
3921
+ "ticks": ""
3922
+ },
3923
+ "bgcolor": "#E5ECF6",
3924
+ "caxis": {
3925
+ "gridcolor": "white",
3926
+ "linecolor": "white",
3927
+ "ticks": ""
3928
+ }
3929
+ },
3930
+ "title": {
3931
+ "x": 0.05
3932
+ },
3933
+ "xaxis": {
3934
+ "automargin": true,
3935
+ "gridcolor": "white",
3936
+ "linecolor": "white",
3937
+ "ticks": "",
3938
+ "title": {
3939
+ "standoff": 15
3940
+ },
3941
+ "zerolinecolor": "white",
3942
+ "zerolinewidth": 2
3943
+ },
3944
+ "yaxis": {
3945
+ "automargin": true,
3946
+ "gridcolor": "white",
3947
+ "linecolor": "white",
3948
+ "ticks": "",
3949
+ "title": {
3950
+ "standoff": 15
3951
+ },
3952
+ "zerolinecolor": "white",
3953
+ "zerolinewidth": 2
3954
+ }
3955
+ }
3956
+ },
3957
+ "title": {
3958
+ "font": {
3959
+ "size": 16
3960
+ },
3961
+ "text": "Cyclomatic Complexity Heatmap by Class<br><sub>Top 50 classes by complexity score</sub>"
3962
+ },
3963
+ "xaxis": {
3964
+ "showgrid": false,
3965
+ "side": "bottom",
3966
+ "tickfont": {
3967
+ "size": 12
3968
+ },
3969
+ "title": {
3970
+ "text": "Complexity Metrics"
3971
+ }
3972
+ },
3973
+ "yaxis": {
3974
+ "autorange": "reversed",
3975
+ "showgrid": false,
3976
+ "tickfont": {
3977
+ "size": 10
3978
+ },
3979
+ "title": {
3980
+ "text": "Repository::Class"
3981
+ }
3982
+ }
3983
+ }
3984
+ }
3985
+ },
3986
+ "metadata": {},
3987
+ "output_type": "display_data"
3988
+ }
3989
+ ],
3990
+ "source": [
3991
+ "import pandas as pd\n",
3992
+ "import warnings\n",
3993
+ "import plotly.graph_objects as go\n",
3994
+ "import plotly.express as px\n",
3995
+ "import code_data_science.data_table as dt\n",
3996
+ "import numpy as np\n",
3997
+ "\n",
3998
+ "warnings.simplefilter(\"ignore\")\n",
3999
+ "\n",
4000
+ "df = dt.read_csv(\"../samples/cyclomatic_complexity.csv\")\n",
4001
+ "\n",
4002
+ "# Filter the data frame to only include rows where repositoryPath contains\n",
4003
+ "# a term in the repository_filter (case insensitive)\n",
4004
+ "if len(repository_filter) > 0:\n",
4005
+ " df = df[\n",
4006
+ " df[\"repositoryPath\"].str.contains(\"|\".join(repository_filter), case=False)\n",
4007
+ " ]\n",
4008
+ "\n",
4009
+ "# Exit early if there are no records and render a plot with a message\n",
4010
+ "if len(df) == 0:\n",
4011
+ " fig = go.Figure()\n",
4012
+ " fig.add_annotation(\n",
4013
+ " text=\"No data available for the selected repositories\",\n",
4014
+ " xref=\"paper\",\n",
4015
+ " yref=\"paper\",\n",
4016
+ " x=0.5,\n",
4017
+ " y=0.5,\n",
4018
+ " showarrow=False,\n",
4019
+ " font=dict(size=14)\n",
4020
+ " )\n",
4021
+ " fig.update_layout(\n",
4022
+ " xaxis=dict(visible=False),\n",
4023
+ " yaxis=dict(visible=False),\n",
4024
+ " margin=dict(l=0, r=0, t=60, b=60),\n",
4025
+ " title=\"Cyclomatic Complexity Heatmap\"\n",
4026
+ " )\n",
4027
+ " fig.show(render=\"plotly_mimetype\")\n",
4028
+ "else:\n",
4029
+ " # Aggregate complexity metrics by repository and class\n",
4030
+ " class_metrics = df.groupby(['repositoryPath', 'className']).agg({\n",
4031
+ " 'complexity': ['sum', 'mean', 'max', 'count']\n",
4032
+ " }).reset_index()\n",
4033
+ " \n",
4034
+ " # Flatten column names\n",
4035
+ " class_metrics.columns = ['repository', 'className', 'total_complexity', 'avg_complexity', 'max_complexity', 'method_count']\n",
4036
+ " \n",
4037
+ " # Get short class names for display\n",
4038
+ " class_metrics['classShortName'] = class_metrics['className'].str.split('.').str[-1]\n",
4039
+ " \n",
4040
+ " # Create a score that balances total and average complexity\n",
4041
+ " class_metrics['complexity_score'] = class_metrics['total_complexity'] * 0.6 + class_metrics['avg_complexity'] * 0.4\n",
4042
+ " \n",
4043
+ " # Get top N classes by complexity score\n",
4044
+ " top_classes = class_metrics.nlargest(min(top_n_classes, len(class_metrics)), 'complexity_score')\n",
4045
+ " \n",
4046
+ " # Create pivot table for heatmap\n",
4047
+ " # We'll show different metrics as columns\n",
4048
+ " metrics_data = []\n",
4049
+ " for _, row in top_classes.iterrows():\n",
4050
+ " metrics_data.append({\n",
4051
+ " 'class': f\"{row['repository'].split('/')[-1]}::{row['classShortName']}\",\n",
4052
+ " 'metric': 'Total Complexity',\n",
4053
+ " 'value': row['total_complexity']\n",
4054
+ " })\n",
4055
+ " metrics_data.append({\n",
4056
+ " 'class': f\"{row['repository'].split('/')[-1]}::{row['classShortName']}\",\n",
4057
+ " 'metric': 'Avg Complexity',\n",
4058
+ " 'value': row['avg_complexity']\n",
4059
+ " })\n",
4060
+ " metrics_data.append({\n",
4061
+ " 'class': f\"{row['repository'].split('/')[-1]}::{row['classShortName']}\",\n",
4062
+ " 'metric': 'Max Complexity',\n",
4063
+ " 'value': row['max_complexity']\n",
4064
+ " })\n",
4065
+ " metrics_data.append({\n",
4066
+ " 'class': f\"{row['repository'].split('/')[-1]}::{row['classShortName']}\",\n",
4067
+ " 'metric': 'Method Count',\n",
4068
+ " 'value': row['method_count']\n",
4069
+ " })\n",
4070
+ " \n",
4071
+ " metrics_df = pd.DataFrame(metrics_data)\n",
4072
+ " pivot_table = metrics_df.pivot(index='class', columns='metric', values='value')\n",
4073
+ " \n",
4074
+ " # Reorder columns\n",
4075
+ " pivot_table = pivot_table[['Method Count', 'Avg Complexity', 'Max Complexity', 'Total Complexity']]\n",
4076
+ " \n",
4077
+ " # Normalize values for each metric (0-1 scale) for better color representation\n",
4078
+ " normalized_data = pivot_table.copy()\n",
4079
+ " for col in normalized_data.columns:\n",
4080
+ " col_min = normalized_data[col].min()\n",
4081
+ " col_max = normalized_data[col].max()\n",
4082
+ " if col_max > col_min:\n",
4083
+ " normalized_data[col] = (normalized_data[col] - col_min) / (col_max - col_min)\n",
4084
+ " \n",
4085
+ " # Create custom hover text\n",
4086
+ " hover_text = []\n",
4087
+ " for i in range(len(pivot_table)):\n",
4088
+ " hover_row = []\n",
4089
+ " for j, col in enumerate(pivot_table.columns):\n",
4090
+ " value = pivot_table.iloc[i, j]\n",
4091
+ " if col == 'Avg Complexity':\n",
4092
+ " hover_row.append(f\"{col}: {value:.1f}\")\n",
4093
+ " else:\n",
4094
+ " hover_row.append(f\"{col}: {int(value)}\")\n",
4095
+ " hover_text.append(hover_row)\n",
4096
+ " \n",
4097
+ " # Create the heatmap\n",
4098
+ " fig = go.Figure(data=go.Heatmap(\n",
4099
+ " z=normalized_data.values,\n",
4100
+ " x=normalized_data.columns,\n",
4101
+ " y=normalized_data.index,\n",
4102
+ " colorscale=[\n",
4103
+ " [0, '#E8F5E9'],\n",
4104
+ " [0.2, '#A5D6A7'],\n",
4105
+ " [0.4, '#FFE082'],\n",
4106
+ " [0.6, '#FFB74D'],\n",
4107
+ " [0.8, '#FF8A65'],\n",
4108
+ " [1, '#EF5350']\n",
4109
+ " ],\n",
4110
+ " colorbar=dict(\n",
4111
+ " title=\"Normalized<br>Complexity\",\n",
4112
+ " thickness=15,\n",
4113
+ " len=0.7\n",
4114
+ " ),\n",
4115
+ " text=hover_text,\n",
4116
+ " texttemplate=\"\",\n",
4117
+ " hovertemplate=(\n",
4118
+ " '<b>%{y}</b><br>' +\n",
4119
+ " '%{text}' +\n",
4120
+ " '<extra></extra>'\n",
4121
+ " )\n",
4122
+ " ))\n",
4123
+ " \n",
4124
+ " # Add text annotations for actual values\n",
4125
+ " annotations = []\n",
4126
+ " for i in range(len(pivot_table)):\n",
4127
+ " for j, col in enumerate(pivot_table.columns):\n",
4128
+ " value = pivot_table.iloc[i, j]\n",
4129
+ " if col == 'Avg Complexity':\n",
4130
+ " text = f\"{value:.1f}\"\n",
4131
+ " else:\n",
4132
+ " text = str(int(value))\n",
4133
+ " \n",
4134
+ " annotations.append(\n",
4135
+ " go.layout.Annotation(\n",
4136
+ " text=text,\n",
4137
+ " x=j,\n",
4138
+ " y=i,\n",
4139
+ " xref=\"x\",\n",
4140
+ " yref=\"y\",\n",
4141
+ " showarrow=False,\n",
4142
+ " font=dict(\n",
4143
+ " size=10,\n",
4144
+ " color=\"black\" if normalized_data.iloc[i, j] < 0.6 else \"white\"\n",
4145
+ " )\n",
4146
+ " )\n",
4147
+ " )\n",
4148
+ " \n",
4149
+ " # Update layout\n",
4150
+ " fig.update_layout(\n",
4151
+ " title=dict(\n",
4152
+ " text=f\"Cyclomatic Complexity Heatmap by Class<br><sub>Top {len(pivot_table)} classes by complexity score</sub>\",\n",
4153
+ " font=dict(size=16)\n",
4154
+ " ),\n",
4155
+ " xaxis=dict(\n",
4156
+ " title=\"Complexity Metrics\",\n",
4157
+ " tickfont=dict(size=12),\n",
4158
+ " showgrid=False,\n",
4159
+ " side=\"bottom\"\n",
4160
+ " ),\n",
4161
+ " yaxis=dict(\n",
4162
+ " title=\"Repository::Class\",\n",
4163
+ " tickfont=dict(size=10),\n",
4164
+ " showgrid=False,\n",
4165
+ " autorange=\"reversed\" # Put highest complexity at top\n",
4166
+ " ),\n",
4167
+ " annotations=annotations,\n",
4168
+ " margin=dict(l=250, r=50, t=100, b=80),\n",
4169
+ " height=max(600, len(pivot_table) * 25 + 200),\n",
4170
+ " plot_bgcolor='white'\n",
4171
+ " )\n",
4172
+ " \n",
4173
+ " # Show the figure\n",
4174
+ " fig.show(render=\"plotly_mimetype\")"
4175
+ ]
4176
+ }
4177
+ ],
4178
+ "metadata": {
4179
+ "kernelspec": {
4180
+ "display_name": ".python",
4181
+ "language": "python",
4182
+ "name": "python3"
4183
+ },
4184
+ "language_info": {
4185
+ "codemirror_mode": {
4186
+ "name": "ipython",
4187
+ "version": 3
4188
+ },
4189
+ "file_extension": ".py",
4190
+ "mimetype": "text/x-python",
4191
+ "name": "python",
4192
+ "nbconvert_exporter": "python",
4193
+ "pygments_lexer": "ipython3",
4194
+ "version": "3.12.8"
4195
+ }
4196
+ },
4197
+ "nbformat": 4,
4198
+ "nbformat_minor": 4
4199
+ }