maidr 1.0.0

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.
Files changed (206) hide show
  1. package/.Rbuildignore +1 -0
  2. package/.eslintignore +3 -0
  3. package/.eslintrc.json +6 -0
  4. package/.github/workflows/build.yml +20 -0
  5. package/.prettierignore +3 -0
  6. package/.prettierrc.json +7 -0
  7. package/.vscode/extensions.json +25 -0
  8. package/.vscode/settings.json +30 -0
  9. package/.vscode/tasks.json +57 -0
  10. package/CHANGELOG.md +7 -0
  11. package/CITATION.cff +21 -0
  12. package/CONTRIBUTING.md +87 -0
  13. package/LICENSE.md +595 -0
  14. package/README.md +341 -0
  15. package/dist/maidr.js +8851 -0
  16. package/dist/maidr.min.js +1 -0
  17. package/dist/styles.css +244 -0
  18. package/dist/styles.min.css +1 -0
  19. package/docs/Audio.html +1398 -0
  20. package/docs/Constants.html +256 -0
  21. package/docs/Description.html +582 -0
  22. package/docs/Helper.html +364 -0
  23. package/docs/LogError.html +905 -0
  24. package/docs/Menu.html +665 -0
  25. package/docs/Position.html +174 -0
  26. package/docs/Resources.html +338 -0
  27. package/docs/Review.html +333 -0
  28. package/docs/Tracker.html +965 -0
  29. package/docs/audio.js.html +635 -0
  30. package/docs/constants.js.html +1242 -0
  31. package/docs/display.js.html +1184 -0
  32. package/docs/fonts/OpenSans-Bold-webfont.eot +0 -0
  33. package/docs/fonts/OpenSans-Bold-webfont.svg +1830 -0
  34. package/docs/fonts/OpenSans-Bold-webfont.woff +0 -0
  35. package/docs/fonts/OpenSans-BoldItalic-webfont.eot +0 -0
  36. package/docs/fonts/OpenSans-BoldItalic-webfont.svg +1830 -0
  37. package/docs/fonts/OpenSans-BoldItalic-webfont.woff +0 -0
  38. package/docs/fonts/OpenSans-Italic-webfont.eot +0 -0
  39. package/docs/fonts/OpenSans-Italic-webfont.svg +1830 -0
  40. package/docs/fonts/OpenSans-Italic-webfont.woff +0 -0
  41. package/docs/fonts/OpenSans-Light-webfont.eot +0 -0
  42. package/docs/fonts/OpenSans-Light-webfont.svg +1831 -0
  43. package/docs/fonts/OpenSans-Light-webfont.woff +0 -0
  44. package/docs/fonts/OpenSans-LightItalic-webfont.eot +0 -0
  45. package/docs/fonts/OpenSans-LightItalic-webfont.svg +1835 -0
  46. package/docs/fonts/OpenSans-LightItalic-webfont.woff +0 -0
  47. package/docs/fonts/OpenSans-Regular-webfont.eot +0 -0
  48. package/docs/fonts/OpenSans-Regular-webfont.svg +1831 -0
  49. package/docs/fonts/OpenSans-Regular-webfont.woff +0 -0
  50. package/docs/fonts/OpenSans-Semibold-webfont.eot +0 -0
  51. package/docs/fonts/OpenSans-Semibold-webfont.svg +1830 -0
  52. package/docs/fonts/OpenSans-Semibold-webfont.ttf +0 -0
  53. package/docs/fonts/OpenSans-Semibold-webfont.woff +0 -0
  54. package/docs/fonts/OpenSans-SemiboldItalic-webfont.eot +0 -0
  55. package/docs/fonts/OpenSans-SemiboldItalic-webfont.svg +1830 -0
  56. package/docs/fonts/OpenSans-SemiboldItalic-webfont.ttf +0 -0
  57. package/docs/fonts/OpenSans-SemiboldItalic-webfont.woff +0 -0
  58. package/docs/index.html +66 -0
  59. package/docs/scripts/linenumber.js +25 -0
  60. package/docs/scripts/prettify/Apache-License-2.0.txt +202 -0
  61. package/docs/scripts/prettify/lang-css.js +2 -0
  62. package/docs/scripts/prettify/prettify.js +28 -0
  63. package/docs/styles/jsdoc-default.css +692 -0
  64. package/docs/styles/prettify-jsdoc.css +111 -0
  65. package/docs/styles/prettify-tomorrow.css +132 -0
  66. package/examples/dev_charts/barplot.html +1056 -0
  67. package/examples/dev_charts/boxplot.html +1856 -0
  68. package/examples/dev_charts/boxplot_flipped.svg +727 -0
  69. package/examples/dev_charts/heatmap.html +1217 -0
  70. package/examples/dev_charts/scatterplot/displ.js +18 -0
  71. package/examples/dev_charts/scatterplot/histogram_for_residual.svg +595 -0
  72. package/examples/dev_charts/scatterplot/hwy.js +15 -0
  73. package/examples/dev_charts/scatterplot/layers/point_layer.json +938 -0
  74. package/examples/dev_charts/scatterplot/layers/smooth_layer.json +322 -0
  75. package/examples/dev_charts/scatterplot/point_layer.js +938 -0
  76. package/examples/dev_charts/scatterplot/prediction_array.js +31 -0
  77. package/examples/dev_charts/scatterplot/prediction_array.json +31 -0
  78. package/examples/dev_charts/scatterplot/residual_array.js +29 -0
  79. package/examples/dev_charts/scatterplot/residual_array.json +29 -0
  80. package/examples/dev_charts/scatterplot/scatterplot.svg +1428 -0
  81. package/examples/dev_charts/scatterplot/scatterplot_data.html +2838 -0
  82. package/examples/dev_charts/scatterplot/scatterplot_no_jitter_point_only.svg +1393 -0
  83. package/examples/dev_charts/scatterplot/scatterplot_no_jitter_with_bestfit.svg +1424 -0
  84. package/examples/dev_charts/scatterplot/scatterplot_no_jitter_with_loess_curve.svg +1402 -0
  85. package/examples/dev_charts/scatterplot/smooth_layer.js +322 -0
  86. package/examples/dev_charts/scatterplot.html +4560 -0
  87. package/examples/dodged_bar/dodged_bar.png +0 -0
  88. package/examples/dodged_bar/dodged_bar.svg +198 -0
  89. package/examples/dodged_bar/schema.json +41 -0
  90. package/examples/histogram/histogram_tutorial.svg +482 -0
  91. package/examples/histogram/histogram_tutorial_raw_data.json +362 -0
  92. package/examples/histogram/histogram_user_study.svg +578 -0
  93. package/examples/histogram/histogram_user_study_raw_data.json +362 -0
  94. package/examples/lineplot/lineplot_sample.svg +126 -0
  95. package/examples/lineplot/lineplot_sample_raw_data.json +1 -0
  96. package/examples/lineplot/point+lineplot_sample.svg +700 -0
  97. package/examples/other/audio_oscillator_boxplot.js +95 -0
  98. package/examples/other/barplot_labels.svg +314 -0
  99. package/examples/other/barplot_user_study.svg +313 -0
  100. package/examples/other/boxplot.html +927 -0
  101. package/examples/other/boxplot_data_frame.html +568 -0
  102. package/examples/other/boxplot_label.svg +751 -0
  103. package/examples/other/braille-display_boxplot.js +79 -0
  104. package/examples/other/control_boxplot.js +55 -0
  105. package/examples/other/draft.js +56 -0
  106. package/examples/other/getData.html +400 -0
  107. package/examples/other/getData.js +41 -0
  108. package/examples/other/ggplot_to_svg.R +371 -0
  109. package/examples/other/heatmap.svg +582 -0
  110. package/examples/other/heatmap_label.svg +608 -0
  111. package/examples/other/multiple_barplot.html +2250 -0
  112. package/examples/other/new_scatterplot_user_study_point_layer.json +122 -0
  113. package/examples/other/py_binder_output.html +1167 -0
  114. package/examples/other/scatterplot_label.svg +1429 -0
  115. package/examples/other/seaborn_plot.py +9 -0
  116. package/examples/other/svglite_bar.svg +136 -0
  117. package/examples/other/tutorial_boxplot.svg +727 -0
  118. package/examples/other/tutorial_boxplot_data.json +72 -0
  119. package/examples/other/user_study_boxplot.svg +676 -0
  120. package/examples/stacked_bar/schema.json +41 -0
  121. package/examples/stacked_bar/stack_bar.png +0 -0
  122. package/examples/stacked_bar/stacked_bar.svg +180 -0
  123. package/examples/stacked_normalized_bar/stacked_normalized_bar.png +0 -0
  124. package/examples/stacked_normalized_bar/stacked_normalized_bar.svg +189 -0
  125. package/examples/static/barplot.svg +263 -0
  126. package/examples/static/barplot_diamonds_gridSVG.svg +254 -0
  127. package/examples/static/boxplot.svg +424 -0
  128. package/examples/static/heatmap.svg +373 -0
  129. package/examples/static/heatmap_penguins_table.html +486 -0
  130. package/examples/static/scatterplot.svg +530 -0
  131. package/examples/svglite/task_heatmap.html +802 -0
  132. package/examples/svglite/task_heatmap.svg +111 -0
  133. package/examples/svglite/tutorial_bar.svg +136 -0
  134. package/examples/svglite/tutorial_bar_plot.html +504 -0
  135. package/examples/svglite/tutorial_boxplot.html +1850 -0
  136. package/examples/svglite/tutorial_boxplot.svg +727 -0
  137. package/examples/svglite/tutorial_scatterplot.html +3135 -0
  138. package/examples/svglite/tutorial_scatterplot.svg +311 -0
  139. package/gulpfile.js +49 -0
  140. package/index.html +40 -0
  141. package/jsconfig.json +10 -0
  142. package/jsdoc.json +19 -0
  143. package/package.json +47 -0
  144. package/src/css/styles.css +241 -0
  145. package/src/js/__tests__/audio.test.js +49 -0
  146. package/src/js/__tests__/constants.test.js +622 -0
  147. package/src/js/audio.js +575 -0
  148. package/src/js/barplot.js +254 -0
  149. package/src/js/boxplot.js +682 -0
  150. package/src/js/constants.js +1182 -0
  151. package/src/js/controls.js +3182 -0
  152. package/src/js/display.js +1124 -0
  153. package/src/js/heatmap.js +411 -0
  154. package/src/js/histogram.js +134 -0
  155. package/src/js/init.js +427 -0
  156. package/src/js/lineplot.js +219 -0
  157. package/src/js/scatterplot.js +619 -0
  158. package/src/js/segmented.js +268 -0
  159. package/user_study_pilot/binder_test.html +526 -0
  160. package/user_study_pilot/data/barplot_user_study.svg +492 -0
  161. package/user_study_pilot/data/barplot_user_study_raw_data.json +22 -0
  162. package/user_study_pilot/data/boxplot_tutorial.json +72 -0
  163. package/user_study_pilot/data/boxplot_tutorial_horizontal.svg +727 -0
  164. package/user_study_pilot/data/boxplot_user_study.json +52 -0
  165. package/user_study_pilot/data/boxplot_user_study_vertical.svg +675 -0
  166. package/user_study_pilot/data/boxplot_user_study_vertical_horizontal.svg +676 -0
  167. package/user_study_pilot/data/heatmap_user_study.svg +719 -0
  168. package/user_study_pilot/data/heatmap_user_study_raw_data.json +127 -0
  169. package/user_study_pilot/data/new_barplot_user_study.svg +269 -0
  170. package/user_study_pilot/data/new_heatmap_user_study.svg +367 -0
  171. package/user_study_pilot/data/new_scatterplot_user_study.svg +603 -0
  172. package/user_study_pilot/data/new_scatterplot_user_study_point_layer.json +122 -0
  173. package/user_study_pilot/data/scatterplot_user_study (1).svg +321 -0
  174. package/user_study_pilot/data/scatterplot_user_study.svg +603 -0
  175. package/user_study_pilot/data/scatterplot_user_study_point_layer.json +122 -0
  176. package/user_study_pilot/data/scatterplot_user_study_smooth_layer.json +322 -0
  177. package/user_study_pilot/intro.html +215 -0
  178. package/user_study_pilot/jaws_settings/Chrome.JDF +10 -0
  179. package/user_study_pilot/jaws_settings/Firefox.JDF +10 -0
  180. package/user_study_pilot/jaws_settings/backup_utf8/Chrome.JDF +10 -0
  181. package/user_study_pilot/jaws_settings/backup_utf8/Firefox.JDF +10 -0
  182. package/user_study_pilot/jaws_settings/backup_utf8/msedge.JDF +10 -0
  183. package/user_study_pilot/jaws_settings/msedge.JDF +10 -0
  184. package/user_study_pilot/nvda_settings/chrome.dic +10 -0
  185. package/user_study_pilot/nvda_settings/default.dic +10 -0
  186. package/user_study_pilot/nvda_settings/firefox.dic +10 -0
  187. package/user_study_pilot/nvda_settings/msedge.dic +10 -0
  188. package/user_study_pilot/scatterplot.html +4560 -0
  189. package/user_study_pilot/seaborn_test.html +1059 -0
  190. package/user_study_pilot/svglite_test.html +534 -0
  191. package/user_study_pilot/task1_bar_plot.html +1111 -0
  192. package/user_study_pilot/task2_heatmap.html +1661 -0
  193. package/user_study_pilot/task3_boxplot_horizontal.html +1690 -0
  194. package/user_study_pilot/task3_boxplot_vertical.html +1689 -0
  195. package/user_study_pilot/task4_scatterplot.html +2091 -0
  196. package/user_study_pilot/tutorial1_bar_plot.html +1159 -0
  197. package/user_study_pilot/tutorial2_heatmap.html +1276 -0
  198. package/user_study_pilot/tutorial3_boxplot_horizontal.html +1861 -0
  199. package/user_study_pilot/tutorial3_boxplot_vertical.html +1807 -0
  200. package/user_study_pilot/tutorial4_scatterplot.html +5893 -0
  201. package/user_study_pilot/tutorial5_histogram.html +1553 -0
  202. package/user_study_pilot/tutorial6_lineplot.html +1011 -0
  203. package/user_study_pilot/tutorial7_stacked.html +763 -0
  204. package/user_study_pilot/tutorial8_stacked_normalized.html +796 -0
  205. package/user_study_pilot/tutorial9_dodged_bar.html +831 -0
  206. package/user_study_pilot/voiceover_settings/user_study_VoiceOver Archive.voprefs +573 -0
@@ -0,0 +1,482 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="604px"
2
+ height="438px" viewBox="0 0 604 438" version="1.1">
3
+ <metadata xmlns:gridsvg="http://www.stat.auckland.ac.nz/~paul/R/gridSVG/">
4
+ <gridsvg:generator name="gridSVG" version="1.7-5" time="2023-04-21 07:03:26" />
5
+ <gridsvg:argument name="name" value="histogram_tutorial.svg" />
6
+ <gridsvg:argument name="exportCoords" value="none" />
7
+ <gridsvg:argument name="exportMappings" value="none" />
8
+ <gridsvg:argument name="exportJS" value="none" />
9
+ <gridsvg:argument name="res" value="72" />
10
+ <gridsvg:argument name="prefix" value="" />
11
+ <gridsvg:argument name="addClasses" value="FALSE" />
12
+ <gridsvg:argument name="indent" value="TRUE" />
13
+ <gridsvg:argument name="htmlWrapper" value="FALSE" />
14
+ <gridsvg:argument name="usePaths" value="vpPaths" />
15
+ <gridsvg:argument name="uniqueNames" value="TRUE" />
16
+ <gridsvg:separator name="id.sep" value="." />
17
+ <gridsvg:separator name="gPath.sep" value="::" />
18
+ <gridsvg:separator name="vpPath.sep" value="::" />
19
+ </metadata>
20
+ <g transform="translate(0, 438) scale(1, -1)">
21
+ <g id="gridSVG" fill="rgb(255,255,255)" stroke="rgb(0,0,0)" stroke-dasharray="none"
22
+ stroke-width="0.75" font-size="12"
23
+ font-family="Helvetica, Arial, FreeSans, Liberation Sans, Nimbus Sans L, sans-serif"
24
+ opacity="1" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10"
25
+ stroke-opacity="1" fill-opacity="1" font-weight="normal" font-style="normal">
26
+ <g id="layout.1">
27
+ <g id="layout.2">
28
+ <defs>
29
+ <clipPath id="layout::background.1-9-12-1.1.clipPath">
30
+ <rect x="0" y="0" width="604" height="438" fill="none" stroke="none" />
31
+ </clipPath>
32
+ </defs>
33
+ <g id="layout::background.1-9-12-1.1"
34
+ clip-path="url(#layout::background.1-9-12-1.1.clipPath)">
35
+ <g id="background.1-9-12-1.1">
36
+ <g id="plot.background..rect.166.1">
37
+ <rect id="plot.background..rect.166.1.1" x="0" y="0" width="604" height="438"
38
+ transform="" stroke-width="1.07" stroke="rgb(255,255,255)" fill="rgb(255,255,255)"
39
+ stroke-dasharray="none" stroke-opacity="1" fill-opacity="1" />
40
+ </g>
41
+ </g>
42
+ </g>
43
+ <defs>
44
+ <clipPath id="layout::panel.7-5-7-5.1.clipPath">
45
+ <rect x="33.14" y="31.5" width="565.38" height="383.33" fill="none" stroke="none" />
46
+ </clipPath>
47
+ </defs>
48
+ <g id="layout::panel.7-5-7-5.1" clip-path="url(#layout::panel.7-5-7-5.1.clipPath)">
49
+ <g id="panel.7-5-7-5.1">
50
+ <g id="panel-1.gTree.144.1">
51
+ <g id="grill.gTree.142.1">
52
+ <g id="panel.background..rect.133.1">
53
+ <rect id="panel.background..rect.133.1.1" x="33.14" y="31.5" width="565.38"
54
+ height="383.33" transform="" stroke-width="1.07" stroke="none"
55
+ fill="rgb(235,235,235)" stroke-dasharray="none" stroke-opacity="0"
56
+ fill-opacity="1" />
57
+ </g>
58
+ <g id="panel.grid.minor.y..polyline.135.1">
59
+ <polyline id="panel.grid.minor.y..polyline.135.1.1"
60
+ points="33.14,111.15 598.52,111.15" stroke="rgb(255,255,255)" fill="none"
61
+ stroke-width="0.53" stroke-dasharray="none" stroke-linecap="butt"
62
+ stroke-opacity="1" fill-opacity="1" />
63
+ <polyline id="panel.grid.minor.y..polyline.135.1.2"
64
+ points="33.14,235.61 598.52,235.61" stroke="rgb(255,255,255)" fill="none"
65
+ stroke-width="0.53" stroke-dasharray="none" stroke-linecap="butt"
66
+ stroke-opacity="1" fill-opacity="1" />
67
+ <polyline id="panel.grid.minor.y..polyline.135.1.3"
68
+ points="33.14,360.06 598.52,360.06" stroke="rgb(255,255,255)" fill="none"
69
+ stroke-width="0.53" stroke-dasharray="none" stroke-linecap="butt"
70
+ stroke-opacity="1" fill-opacity="1" />
71
+ </g>
72
+ <g id="panel.grid.minor.x..polyline.137.1">
73
+ <polyline id="panel.grid.minor.x..polyline.137.1.1"
74
+ points="188.76,31.5 188.76,414.82" stroke="rgb(255,255,255)" fill="none"
75
+ stroke-width="0.53" stroke-dasharray="none" stroke-linecap="butt"
76
+ stroke-opacity="1" fill-opacity="1" />
77
+ <polyline id="panel.grid.minor.x..polyline.137.1.2"
78
+ points="369.61,31.5 369.61,414.82" stroke="rgb(255,255,255)" fill="none"
79
+ stroke-width="0.53" stroke-dasharray="none" stroke-linecap="butt"
80
+ stroke-opacity="1" fill-opacity="1" />
81
+ <polyline id="panel.grid.minor.x..polyline.137.1.3"
82
+ points="550.45,31.5 550.45,414.82" stroke="rgb(255,255,255)" fill="none"
83
+ stroke-width="0.53" stroke-dasharray="none" stroke-linecap="butt"
84
+ stroke-opacity="1" fill-opacity="1" />
85
+ </g>
86
+ <g id="panel.grid.major.y..polyline.139.1">
87
+ <polyline id="panel.grid.major.y..polyline.139.1.1"
88
+ points="33.14,48.92 598.52,48.92" stroke="rgb(255,255,255)" fill="none"
89
+ stroke-width="1.07" stroke-dasharray="none" stroke-linecap="butt"
90
+ stroke-opacity="1" fill-opacity="1" />
91
+ <polyline id="panel.grid.major.y..polyline.139.1.2"
92
+ points="33.14,173.38 598.52,173.38" stroke="rgb(255,255,255)" fill="none"
93
+ stroke-width="1.07" stroke-dasharray="none" stroke-linecap="butt"
94
+ stroke-opacity="1" fill-opacity="1" />
95
+ <polyline id="panel.grid.major.y..polyline.139.1.3"
96
+ points="33.14,297.83 598.52,297.83" stroke="rgb(255,255,255)" fill="none"
97
+ stroke-width="1.07" stroke-dasharray="none" stroke-linecap="butt"
98
+ stroke-opacity="1" fill-opacity="1" />
99
+ </g>
100
+ <g id="panel.grid.major.x..polyline.141.1">
101
+ <polyline id="panel.grid.major.x..polyline.141.1.2"
102
+ points="98.34,31.5 98.34,414.82" stroke="rgb(255,255,255)" fill="none"
103
+ stroke-width="1.07" stroke-dasharray="none" stroke-linecap="butt"
104
+ stroke-opacity="1" fill-opacity="1" />
105
+ <polyline id="panel.grid.major.x..polyline.141.1.3"
106
+ points="279.18,31.5 279.18,414.82" stroke="rgb(255,255,255)" fill="none"
107
+ stroke-width="1.07" stroke-dasharray="none" stroke-linecap="butt"
108
+ stroke-opacity="1" fill-opacity="1" />
109
+ <polyline id="panel.grid.major.x..polyline.141.1.4"
110
+ points="460.03,31.5 460.03,414.82" stroke="rgb(255,255,255)" fill="none"
111
+ stroke-width="1.07" stroke-dasharray="none" stroke-linecap="butt"
112
+ stroke-opacity="1" fill-opacity="1" />
113
+ </g>
114
+ </g>
115
+ <g id="geom_rect.rect.129.1">
116
+ <rect id="geom_rect.rect.129.1.1" x="58.84" y="48.92" width="25.7" height="236.47"
117
+ transform="" stroke="none" fill="rgb(89,89,89)" stroke-width="1.07"
118
+ stroke-dasharray="none" stroke-linejoin="miter" stroke-linecap="butt"
119
+ stroke-opacity="0" fill-opacity="1" />
120
+ <rect id="geom_rect.rect.129.1.2" x="84.54" y="48.92" width="25.7" height="298.7"
121
+ transform="" stroke="none" fill="rgb(89,89,89)" stroke-width="1.07"
122
+ stroke-dasharray="none" stroke-linejoin="miter" stroke-linecap="butt"
123
+ stroke-opacity="0" fill-opacity="1" />
124
+ <rect id="geom_rect.rect.129.1.3" x="110.24" y="48.92" width="25.7"
125
+ height="236.47" transform="" stroke="none" fill="rgb(89,89,89)"
126
+ stroke-width="1.07" stroke-dasharray="none" stroke-linejoin="miter"
127
+ stroke-linecap="butt" stroke-opacity="0" fill-opacity="1" />
128
+ <rect id="geom_rect.rect.129.1.4" x="135.93" y="48.92" width="25.7"
129
+ height="348.48" transform="" stroke="none" fill="rgb(89,89,89)"
130
+ stroke-width="1.07" stroke-dasharray="none" stroke-linejoin="miter"
131
+ stroke-linecap="butt" stroke-opacity="0" fill-opacity="1" />
132
+ <rect id="geom_rect.rect.129.1.5" x="161.63" y="48.92" width="25.7"
133
+ height="124.46" transform="" stroke="none" fill="rgb(89,89,89)"
134
+ stroke-width="1.07" stroke-dasharray="none" stroke-linejoin="miter"
135
+ stroke-linecap="butt" stroke-opacity="0" fill-opacity="1" />
136
+ <rect id="geom_rect.rect.129.1.6" x="187.33" y="48.92" width="25.7"
137
+ height="174.24" transform="" stroke="none" fill="rgb(89,89,89)"
138
+ stroke-width="1.07" stroke-dasharray="none" stroke-linejoin="miter"
139
+ stroke-linecap="butt" stroke-opacity="0" fill-opacity="1" />
140
+ <rect id="geom_rect.rect.129.1.7" x="213.03" y="48.92" width="25.7"
141
+ height="224.02" transform="" stroke="none" fill="rgb(89,89,89)"
142
+ stroke-width="1.07" stroke-dasharray="none" stroke-linejoin="miter"
143
+ stroke-linecap="butt" stroke-opacity="0" fill-opacity="1" />
144
+ <rect id="geom_rect.rect.129.1.8" x="238.73" y="48.92" width="25.7"
145
+ height="161.79" transform="" stroke="none" fill="rgb(89,89,89)"
146
+ stroke-width="1.07" stroke-dasharray="none" stroke-linejoin="miter"
147
+ stroke-linecap="butt" stroke-opacity="0" fill-opacity="1" />
148
+ <rect id="geom_rect.rect.129.1.9" x="264.43" y="48.92" width="25.7"
149
+ height="224.02" transform="" stroke="none" fill="rgb(89,89,89)"
150
+ stroke-width="1.07" stroke-dasharray="none" stroke-linejoin="miter"
151
+ stroke-linecap="butt" stroke-opacity="0" fill-opacity="1" />
152
+ <rect id="geom_rect.rect.129.1.10" x="290.13" y="48.92" width="25.7"
153
+ height="62.23" transform="" stroke="none" fill="rgb(89,89,89)"
154
+ stroke-width="1.07" stroke-dasharray="none" stroke-linejoin="miter"
155
+ stroke-linecap="butt" stroke-opacity="0" fill-opacity="1" />
156
+ <rect id="geom_rect.rect.129.1.11" x="315.83" y="48.92" width="25.7"
157
+ height="136.9" transform="" stroke="none" fill="rgb(89,89,89)"
158
+ stroke-width="1.07" stroke-dasharray="none" stroke-linejoin="miter"
159
+ stroke-linecap="butt" stroke-opacity="0" fill-opacity="1" />
160
+ <rect id="geom_rect.rect.129.1.12" x="341.53" y="48.92" width="25.7"
161
+ height="211.58" transform="" stroke="none" fill="rgb(89,89,89)"
162
+ stroke-width="1.07" stroke-dasharray="none" stroke-linejoin="miter"
163
+ stroke-linecap="butt" stroke-opacity="0" fill-opacity="1" />
164
+ <rect id="geom_rect.rect.129.1.13" x="367.23" y="48.92" width="25.7"
165
+ height="87.12" transform="" stroke="none" fill="rgb(89,89,89)"
166
+ stroke-width="1.07" stroke-dasharray="none" stroke-linejoin="miter"
167
+ stroke-linecap="butt" stroke-opacity="0" fill-opacity="1" />
168
+ <rect id="geom_rect.rect.129.1.14" x="392.93" y="48.92" width="25.7"
169
+ height="174.24" transform="" stroke="none" fill="rgb(89,89,89)"
170
+ stroke-width="1.07" stroke-dasharray="none" stroke-linejoin="miter"
171
+ stroke-linecap="butt" stroke-opacity="0" fill-opacity="1" />
172
+ <rect id="geom_rect.rect.129.1.15" x="418.63" y="48.92" width="25.7"
173
+ height="112.01" transform="" stroke="none" fill="rgb(89,89,89)"
174
+ stroke-width="1.07" stroke-dasharray="none" stroke-linejoin="miter"
175
+ stroke-linecap="butt" stroke-opacity="0" fill-opacity="1" />
176
+ <rect id="geom_rect.rect.129.1.16" x="444.33" y="48.92" width="25.7"
177
+ height="49.78" transform="" stroke="none" fill="rgb(89,89,89)"
178
+ stroke-width="1.07" stroke-dasharray="none" stroke-linejoin="miter"
179
+ stroke-linecap="butt" stroke-opacity="0" fill-opacity="1" />
180
+ <rect id="geom_rect.rect.129.1.17" x="470.02" y="48.92" width="25.7"
181
+ height="24.89" transform="" stroke="none" fill="rgb(89,89,89)"
182
+ stroke-width="1.07" stroke-dasharray="none" stroke-linejoin="miter"
183
+ stroke-linecap="butt" stroke-opacity="0" fill-opacity="1" />
184
+ <rect id="geom_rect.rect.129.1.18" x="495.72" y="48.92" width="25.7"
185
+ height="12.45" transform="" stroke="none" fill="rgb(89,89,89)"
186
+ stroke-width="1.07" stroke-dasharray="none" stroke-linejoin="miter"
187
+ stroke-linecap="butt" stroke-opacity="0" fill-opacity="1" />
188
+ <rect id="geom_rect.rect.129.1.19" x="521.42" y="48.92" width="25.7" height="0"
189
+ transform="" stroke="none" fill="rgb(89,89,89)" stroke-width="1.07"
190
+ stroke-dasharray="none" stroke-linejoin="miter" stroke-linecap="butt"
191
+ stroke-opacity="0" fill-opacity="1" />
192
+ <rect id="geom_rect.rect.129.1.20" x="547.12" y="48.92" width="25.7"
193
+ height="12.45" transform="" stroke="none" fill="rgb(89,89,89)"
194
+ stroke-width="1.07" stroke-dasharray="none" stroke-linejoin="miter"
195
+ stroke-linecap="butt" stroke-opacity="0" fill-opacity="1" />
196
+ </g>
197
+ </g>
198
+ </g>
199
+ </g>
200
+ <g id="layout::spacer.8-6-8-6.1">
201
+ <g id="spacer.8-6-8-6.1" />
202
+ </g>
203
+ <g id="layout::spacer.8-4-8-4.1">
204
+ <g id="spacer.8-4-8-4.1" />
205
+ </g>
206
+ <g id="layout::spacer.6-6-6-6.1">
207
+ <g id="spacer.6-6-6-6.1" />
208
+ </g>
209
+ <g id="layout::spacer.6-4-6-4.1">
210
+ <g id="spacer.6-4-6-4.1" />
211
+ </g>
212
+ <g id="layout::axis-t.6-5-6-5.1">
213
+ <g id="axis-t.6-5-6-5.1" />
214
+ </g>
215
+ <g id="layout::axis-l.7-4-7-4.1">
216
+ <g id="axis-l.7-4-7-4.1">
217
+ <g id="layout::axis-l.7-4-7-4::GRID.VP.30.1">
218
+ <g id="GRID.absoluteGrob.152.1">
219
+ <g id="layout::axis-l.7-4-7-4::GRID.VP.30::axis.1">
220
+ <g id="axis.1">
221
+ <g id="layout::axis-l.7-4-7-4::GRID.VP.30::axis::axis.1-1-1-1.1">
222
+ <g id="axis.1-1-1-1.1">
223
+ <g
224
+ id="layout::axis-l.7-4-7-4::GRID.VP.30::axis::axis.1-1-1-1::GRID.VP.28.1"
225
+ font-size="8.8" stroke="rgb(77,77,77)"
226
+ font-family="Helvetica, Arial, FreeSans, Liberation Sans, Nimbus Sans L, sans-serif"
227
+ stroke-opacity="1" font-weight="normal" font-style="normal">
228
+ <g
229
+ id="layout::axis-l.7-4-7-4::GRID.VP.30::axis::axis.1-1-1-1::GRID.VP.28::GRID.VP.29.1">
230
+ <g id="GRID.titleGrob.150.1">
231
+ <g id="GRID.text.149.1">
232
+ <g id="GRID.text.149.1.1" transform="translate(28.21, 48.92)"
233
+ stroke-width="0.1">
234
+ <g id="GRID.text.149.1.1.scale" transform="scale(1, -1)">
235
+ <text x="0" y="0" id="GRID.text.149.1.1.text"
236
+ text-anchor="end" font-size="8.8" stroke="rgb(77,77,77)"
237
+ font-family="Helvetica, Arial, FreeSans, Liberation Sans, Nimbus Sans L, sans-serif"
238
+ fill="rgb(77,77,77)" stroke-opacity="1" fill-opacity="1"
239
+ font-weight="normal" font-style="normal">
240
+ <tspan id="GRID.text.149.1.1.tspan.1" dy="3.15" x="0">0</tspan>
241
+ </text>
242
+ </g>
243
+ </g>
244
+ <g id="GRID.text.149.1.2" transform="translate(28.21, 173.38)"
245
+ stroke-width="0.1">
246
+ <g id="GRID.text.149.1.2.scale" transform="scale(1, -1)">
247
+ <text x="0" y="0" id="GRID.text.149.1.2.text"
248
+ text-anchor="end" font-size="8.8" stroke="rgb(77,77,77)"
249
+ font-family="Helvetica, Arial, FreeSans, Liberation Sans, Nimbus Sans L, sans-serif"
250
+ fill="rgb(77,77,77)" stroke-opacity="1" fill-opacity="1"
251
+ font-weight="normal" font-style="normal">
252
+ <tspan id="GRID.text.149.1.2.tspan.1" dy="3.15" x="0">10</tspan>
253
+ </text>
254
+ </g>
255
+ </g>
256
+ <g id="GRID.text.149.1.3" transform="translate(28.21, 297.83)"
257
+ stroke-width="0.1">
258
+ <g id="GRID.text.149.1.3.scale" transform="scale(1, -1)">
259
+ <text x="0" y="0" id="GRID.text.149.1.3.text"
260
+ text-anchor="end" font-size="8.8" stroke="rgb(77,77,77)"
261
+ font-family="Helvetica, Arial, FreeSans, Liberation Sans, Nimbus Sans L, sans-serif"
262
+ fill="rgb(77,77,77)" stroke-opacity="1" fill-opacity="1"
263
+ font-weight="normal" font-style="normal">
264
+ <tspan id="GRID.text.149.1.3.tspan.1" dy="3.15" x="0">20</tspan>
265
+ </text>
266
+ </g>
267
+ </g>
268
+ </g>
269
+ </g>
270
+ </g>
271
+ </g>
272
+ </g>
273
+ </g>
274
+ <g id="layout::axis-l.7-4-7-4::GRID.VP.30::axis::axis.1-2-1-2.1">
275
+ <g id="axis.1-2-1-2.1">
276
+ <g id="GRID.polyline.151.1">
277
+ <polyline id="GRID.polyline.151.1.1" points="30.4,48.92 33.14,48.92"
278
+ stroke="rgb(51,51,51)" fill="none" stroke-width="1.07"
279
+ stroke-dasharray="none" stroke-linecap="butt" stroke-opacity="1"
280
+ fill-opacity="1" />
281
+ <polyline id="GRID.polyline.151.1.2" points="30.4,173.38 33.14,173.38"
282
+ stroke="rgb(51,51,51)" fill="none" stroke-width="1.07"
283
+ stroke-dasharray="none" stroke-linecap="butt" stroke-opacity="1"
284
+ fill-opacity="1" />
285
+ <polyline id="GRID.polyline.151.1.3" points="30.4,297.83 33.14,297.83"
286
+ stroke="rgb(51,51,51)" fill="none" stroke-width="1.07"
287
+ stroke-dasharray="none" stroke-linecap="butt" stroke-opacity="1"
288
+ fill-opacity="1" />
289
+ </g>
290
+ </g>
291
+ </g>
292
+ </g>
293
+ </g>
294
+ </g>
295
+ </g>
296
+ </g>
297
+ </g>
298
+ <g id="layout::axis-r.7-6-7-6.1">
299
+ <g id="axis-r.7-6-7-6.1" />
300
+ </g>
301
+ <g id="layout::axis-b.8-5-8-5.1">
302
+ <g id="axis-b.8-5-8-5.1">
303
+ <g id="layout::axis-b.8-5-8-5::GRID.VP.27.1">
304
+ <g id="GRID.absoluteGrob.148.1">
305
+ <g id="layout::axis-b.8-5-8-5::GRID.VP.27::axis.1">
306
+ <g id="axis.2">
307
+ <g id="layout::axis-b.8-5-8-5::GRID.VP.27::axis::axis.1-1-1-1.1">
308
+ <g id="axis.1-1-1-1.2">
309
+ <g id="GRID.polyline.147.1">
310
+ <polyline id="GRID.polyline.147.1.1" points="98.34,28.76 98.34,31.5"
311
+ stroke="rgb(51,51,51)" fill="none" stroke-width="1.07"
312
+ stroke-dasharray="none" stroke-linecap="butt" stroke-opacity="1"
313
+ fill-opacity="1" />
314
+ <polyline id="GRID.polyline.147.1.2" points="279.18,28.76 279.18,31.5"
315
+ stroke="rgb(51,51,51)" fill="none" stroke-width="1.07"
316
+ stroke-dasharray="none" stroke-linecap="butt" stroke-opacity="1"
317
+ fill-opacity="1" />
318
+ <polyline id="GRID.polyline.147.1.3" points="460.03,28.76 460.03,31.5"
319
+ stroke="rgb(51,51,51)" fill="none" stroke-width="1.07"
320
+ stroke-dasharray="none" stroke-linecap="butt" stroke-opacity="1"
321
+ fill-opacity="1" />
322
+ </g>
323
+ </g>
324
+ </g>
325
+ <g id="layout::axis-b.8-5-8-5::GRID.VP.27::axis::axis.2-1-2-1.1">
326
+ <g id="axis.2-1-2-1.1">
327
+ <g
328
+ id="layout::axis-b.8-5-8-5::GRID.VP.27::axis::axis.2-1-2-1::GRID.VP.25.1"
329
+ font-size="8.8" stroke="rgb(77,77,77)"
330
+ font-family="Helvetica, Arial, FreeSans, Liberation Sans, Nimbus Sans L, sans-serif"
331
+ stroke-opacity="1" font-weight="normal" font-style="normal">
332
+ <g
333
+ id="layout::axis-b.8-5-8-5::GRID.VP.27::axis::axis.2-1-2-1::GRID.VP.25::GRID.VP.26.1">
334
+ <g id="GRID.titleGrob.146.1">
335
+ <g id="GRID.text.145.1">
336
+ <g id="GRID.text.145.1.1" transform="translate(98.34, 26.56)"
337
+ stroke-width="0.1">
338
+ <g id="GRID.text.145.1.1.scale" transform="scale(1, -1)">
339
+ <text x="0" y="0" id="GRID.text.145.1.1.text"
340
+ text-anchor="middle" font-size="8.8" stroke="rgb(77,77,77)"
341
+ font-family="Helvetica, Arial, FreeSans, Liberation Sans, Nimbus Sans L, sans-serif"
342
+ fill="rgb(77,77,77)" stroke-opacity="1" fill-opacity="1"
343
+ font-weight="normal" font-style="normal">
344
+ <tspan id="GRID.text.145.1.1.tspan.1" dy="6.3" x="0">2</tspan>
345
+ </text>
346
+ </g>
347
+ </g>
348
+ <g id="GRID.text.145.1.2" transform="translate(279.18, 26.56)"
349
+ stroke-width="0.1">
350
+ <g id="GRID.text.145.1.2.scale" transform="scale(1, -1)">
351
+ <text x="0" y="0" id="GRID.text.145.1.2.text"
352
+ text-anchor="middle" font-size="8.8" stroke="rgb(77,77,77)"
353
+ font-family="Helvetica, Arial, FreeSans, Liberation Sans, Nimbus Sans L, sans-serif"
354
+ fill="rgb(77,77,77)" stroke-opacity="1" fill-opacity="1"
355
+ font-weight="normal" font-style="normal">
356
+ <tspan id="GRID.text.145.1.2.tspan.1" dy="6.3" x="0">4</tspan>
357
+ </text>
358
+ </g>
359
+ </g>
360
+ <g id="GRID.text.145.1.3" transform="translate(460.03, 26.56)"
361
+ stroke-width="0.1">
362
+ <g id="GRID.text.145.1.3.scale" transform="scale(1, -1)">
363
+ <text x="0" y="0" id="GRID.text.145.1.3.text"
364
+ text-anchor="middle" font-size="8.8" stroke="rgb(77,77,77)"
365
+ font-family="Helvetica, Arial, FreeSans, Liberation Sans, Nimbus Sans L, sans-serif"
366
+ fill="rgb(77,77,77)" stroke-opacity="1" fill-opacity="1"
367
+ font-weight="normal" font-style="normal">
368
+ <tspan id="GRID.text.145.1.3.tspan.1" dy="6.3" x="0">6</tspan>
369
+ </text>
370
+ </g>
371
+ </g>
372
+ </g>
373
+ </g>
374
+ </g>
375
+ </g>
376
+ </g>
377
+ </g>
378
+ </g>
379
+ </g>
380
+ </g>
381
+ </g>
382
+ </g>
383
+ </g>
384
+ <g id="layout::xlab-t.5-5-5-5.1">
385
+ <g id="xlab-t.5-5-5-5.1" />
386
+ </g>
387
+ <g id="layout::xlab-b.9-5-9-5.1">
388
+ <g id="xlab-b.9-5-9-5.1">
389
+ <g id="layout::xlab-b.9-5-9-5::GRID.VP.31.1" font-size="11" stroke="rgb(0,0,0)"
390
+ font-family="Helvetica, Arial, FreeSans, Liberation Sans, Nimbus Sans L, sans-serif"
391
+ stroke-opacity="1" font-weight="normal" font-style="normal">
392
+ <g id="layout::xlab-b.9-5-9-5::GRID.VP.31::GRID.VP.32.1">
393
+ <g id="axis.title.x.bottom..titleGrob.155.1">
394
+ <g id="GRID.text.153.1">
395
+ <g id="GRID.text.153.1.1" transform="translate(315.83, 15.67)"
396
+ stroke-width="0.1">
397
+ <g id="GRID.text.153.1.1.scale" transform="scale(1, -1)">
398
+ <text x="0" y="0" id="GRID.text.153.1.1.text" text-anchor="middle"
399
+ font-size="11" stroke="rgb(0,0,0)"
400
+ font-family="Helvetica, Arial, FreeSans, Liberation Sans, Nimbus Sans L, sans-serif"
401
+ fill="rgb(0,0,0)" stroke-opacity="1" fill-opacity="1"
402
+ font-weight="normal" font-style="normal">
403
+ <tspan id="GRID.text.153.1.1.tspan.1" dy="7.88" x="0">Displacement</tspan>
404
+ </text>
405
+ </g>
406
+ </g>
407
+ </g>
408
+ </g>
409
+ </g>
410
+ </g>
411
+ </g>
412
+ </g>
413
+ <g id="layout::ylab-l.7-3-7-3.1">
414
+ <g id="ylab-l.7-3-7-3.1">
415
+ <g id="layout::ylab-l.7-3-7-3::GRID.VP.33.1" font-size="11" stroke="rgb(0,0,0)"
416
+ font-family="Helvetica, Arial, FreeSans, Liberation Sans, Nimbus Sans L, sans-serif"
417
+ stroke-opacity="1" font-weight="normal" font-style="normal">
418
+ <g id="layout::ylab-l.7-3-7-3::GRID.VP.33::GRID.VP.34.1">
419
+ <g id="axis.title.y.left..titleGrob.158.1">
420
+ <g id="GRID.text.156.1">
421
+ <g id="GRID.text.156.1.1" transform="translate(5.48, 223.16)"
422
+ stroke-width="0.1">
423
+ <g id="GRID.text.156.1.1.scale" transform="scale(1, -1)">
424
+ <text x="0" y="0" id="GRID.text.156.1.1.text" transform="rotate(-90)"
425
+ text-anchor="middle" font-size="11" stroke="rgb(0,0,0)"
426
+ font-family="Helvetica, Arial, FreeSans, Liberation Sans, Nimbus Sans L, sans-serif"
427
+ fill="rgb(0,0,0)" stroke-opacity="1" fill-opacity="1"
428
+ font-weight="normal" font-style="normal">
429
+ <tspan id="GRID.text.156.1.1.tspan.1" dy="7.88" x="0">Count</tspan>
430
+ </text>
431
+ </g>
432
+ </g>
433
+ </g>
434
+ </g>
435
+ </g>
436
+ </g>
437
+ </g>
438
+ </g>
439
+ <g id="layout::ylab-r.7-7-7-7.1">
440
+ <g id="ylab-r.7-7-7-7.1" />
441
+ </g>
442
+ <g id="layout::subtitle.4-5-4-5.1">
443
+ <g id="subtitle.4-5-4-5.1" />
444
+ </g>
445
+ <g id="layout::title.3-5-3-5.1">
446
+ <g id="title.3-5-3-5.1">
447
+ <g id="layout::title.3-5-3-5::GRID.VP.35.1" font-size="13.2" stroke="rgb(0,0,0)"
448
+ font-family="Helvetica, Arial, FreeSans, Liberation Sans, Nimbus Sans L, sans-serif"
449
+ stroke-opacity="1" font-weight="normal" font-style="normal">
450
+ <g id="layout::title.3-5-3-5::GRID.VP.35::GRID.VP.36.1">
451
+ <g id="plot.title..titleGrob.161.1">
452
+ <g id="GRID.text.159.1">
453
+ <g id="GRID.text.159.1.1" transform="translate(33.14, 432.52)"
454
+ stroke-width="0.1">
455
+ <g id="GRID.text.159.1.1.scale" transform="scale(1, -1)">
456
+ <text x="0" y="0" id="GRID.text.159.1.1.text" text-anchor="start"
457
+ font-size="13.2" stroke="rgb(0,0,0)"
458
+ font-family="Helvetica, Arial, FreeSans, Liberation Sans, Nimbus Sans L, sans-serif"
459
+ fill="rgb(0,0,0)" stroke-opacity="1" fill-opacity="1"
460
+ font-weight="normal" font-style="normal">
461
+ <tspan id="GRID.text.159.1.1.tspan.1" dy="9.45" x="0">Distribution of
462
+ Engine Displacement</tspan>
463
+ </text>
464
+ </g>
465
+ </g>
466
+ </g>
467
+ </g>
468
+ </g>
469
+ </g>
470
+ </g>
471
+ </g>
472
+ <g id="layout::caption.10-5-10-5.1">
473
+ <g id="caption.10-5-10-5.1" />
474
+ </g>
475
+ <g id="layout::tag.2-2-2-2.1">
476
+ <g id="tag.2-2-2-2.1" />
477
+ </g>
478
+ </g>
479
+ </g>
480
+ </g>
481
+ </g>
482
+ </svg>