rubyvis 0.1.0 → 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (443) hide show
  1. data/History.txt +6 -1
  2. data/Manifest.txt +421 -1
  3. data/README.txt +12 -10
  4. data/examples/first.rb +2 -2
  5. data/examples/second.rb +6 -3
  6. data/lib/rubyvis.rb +18 -3
  7. data/lib/rubyvis/mark.rb +101 -83
  8. data/lib/rubyvis/mark/anchor.rb +5 -7
  9. data/lib/rubyvis/mark/area.rb +19 -17
  10. data/lib/rubyvis/mark/bar.rb +3 -10
  11. data/lib/rubyvis/mark/label.rb +3 -4
  12. data/lib/rubyvis/mark/line.rb +20 -4
  13. data/lib/rubyvis/mark/panel.rb +31 -6
  14. data/lib/rubyvis/mark/rule.rb +8 -4
  15. data/lib/rubyvis/property.rb +11 -0
  16. data/lib/rubyvis/scene/svg_label.rb +1 -1
  17. data/lib/rubyvis/scene/svg_scene.rb +2 -1
  18. data/lib/rubyvis/sceneelement.rb +2 -0
  19. data/spec/bar_spec.rb +50 -0
  20. data/spec/label_spec.rb +41 -0
  21. data/spec/mark_spec.rb +16 -0
  22. data/spec/panel_spec.rb +22 -4
  23. data/spec/spec_helper.rb +1 -0
  24. data/vendor/FUTURE +62 -0
  25. data/vendor/Makefile +138 -0
  26. data/vendor/TODO +22 -0
  27. data/vendor/examples/antibiotics/antibiotics-scatter.html +113 -0
  28. data/vendor/examples/antibiotics/antibiotics.html +140 -0
  29. data/vendor/examples/antibiotics/antibiotics.js +20 -0
  30. data/vendor/examples/barley/barley.html +102 -0
  31. data/vendor/examples/barley/barley.js +122 -0
  32. data/vendor/examples/cars/cars.html +90 -0
  33. data/vendor/examples/cars/cars.js +408 -0
  34. data/vendor/examples/clock/clock.html +91 -0
  35. data/vendor/examples/crimea/crimea-grouped-bar.html +65 -0
  36. data/vendor/examples/crimea/crimea-line.html +61 -0
  37. data/vendor/examples/crimea/crimea-stacked-area.html +61 -0
  38. data/vendor/examples/crimea/crimea-stacked-bar.html +60 -0
  39. data/vendor/examples/crimea/crimea.html +100 -0
  40. data/vendor/examples/crimea/crimea.js +33 -0
  41. data/vendor/examples/downloadify/LICENSE.txt +22 -0
  42. data/vendor/examples/downloadify/download.png +0 -0
  43. data/vendor/examples/downloadify/downloadify.html +57 -0
  44. data/vendor/examples/downloadify/downloadify.min.js +3 -0
  45. data/vendor/examples/downloadify/downloadify.swf +0 -0
  46. data/vendor/examples/downloadify/swfobject.js +4 -0
  47. data/vendor/examples/ex.css +17 -0
  48. data/vendor/examples/eyes/eyes.html +53 -0
  49. data/vendor/examples/eyes/matrix.html +44 -0
  50. data/vendor/examples/flowers/flowers.html +109 -0
  51. data/vendor/examples/flowers/flowers.js +154 -0
  52. data/vendor/examples/group-stack/group-stack.html +79 -0
  53. data/vendor/examples/group-stack/headcount.js +23 -0
  54. data/vendor/examples/hotel/hotel.html +76 -0
  55. data/vendor/examples/hotel/hotel.js +245 -0
  56. data/vendor/examples/jobs/jobs.html +71 -0
  57. data/vendor/examples/jobs/jobs.js +1024 -0
  58. data/vendor/examples/jquery-1.4.2.min.js +154 -0
  59. data/vendor/examples/nba/nba.html +83 -0
  60. data/vendor/examples/nba/nba.js +53 -0
  61. data/vendor/examples/nba/nba2.html +82 -0
  62. data/vendor/examples/sankey/gdp2009.js +184 -0
  63. data/vendor/examples/sankey/sankey.html +77 -0
  64. data/vendor/examples/slider/cell.html +112 -0
  65. data/vendor/examples/slider/cell.js +31 -0
  66. data/vendor/examples/slider/horizon.html +85 -0
  67. data/vendor/examples/slider/jquery-ui-1.8rc3.custom.min.js +71 -0
  68. data/vendor/examples/slider/slider.html +50 -0
  69. data/vendor/examples/slider/ui-lightness/images/ui-bg_diagonals-thick_18_b81900_40x40.png +0 -0
  70. data/vendor/examples/slider/ui-lightness/images/ui-bg_diagonals-thick_20_666666_40x40.png +0 -0
  71. data/vendor/examples/slider/ui-lightness/images/ui-bg_flat_10_000000_40x100.png +0 -0
  72. data/vendor/examples/slider/ui-lightness/images/ui-bg_glass_100_f6f6f6_1x400.png +0 -0
  73. data/vendor/examples/slider/ui-lightness/images/ui-bg_glass_100_fdf5ce_1x400.png +0 -0
  74. data/vendor/examples/slider/ui-lightness/images/ui-bg_glass_65_ffffff_1x400.png +0 -0
  75. data/vendor/examples/slider/ui-lightness/images/ui-bg_gloss-wave_35_f6a828_500x100.png +0 -0
  76. data/vendor/examples/slider/ui-lightness/images/ui-bg_highlight-soft_100_eeeeee_1x100.png +0 -0
  77. data/vendor/examples/slider/ui-lightness/images/ui-bg_highlight-soft_75_ffe45c_1x100.png +0 -0
  78. data/vendor/examples/slider/ui-lightness/images/ui-icons_222222_256x240.png +2 -0
  79. data/vendor/examples/slider/ui-lightness/images/ui-icons_228ef1_256x240.png +2 -0
  80. data/vendor/examples/slider/ui-lightness/images/ui-icons_ef8c08_256x240.png +2 -0
  81. data/vendor/examples/slider/ui-lightness/images/ui-icons_ffd27a_256x240.png +2 -0
  82. data/vendor/examples/slider/ui-lightness/images/ui-icons_ffffff_256x240.png +2 -0
  83. data/vendor/examples/slider/ui-lightness/jquery-ui-1.8rc3.custom.css +302 -0
  84. data/vendor/examples/tipsy/jquery.tipsy.js +198 -0
  85. data/vendor/examples/tipsy/tipsy-bar.html +65 -0
  86. data/vendor/examples/tipsy/tipsy-line.html +67 -0
  87. data/vendor/examples/tipsy/tipsy.css +12 -0
  88. data/vendor/examples/tipsy/tipsy.gif +0 -0
  89. data/vendor/examples/tipsy/tipsy.js +66 -0
  90. data/vendor/examples/weather/weather.html +86 -0
  91. data/vendor/examples/weather/weather.js +42 -0
  92. data/vendor/examples/wheat/wheat.html +130 -0
  93. data/vendor/examples/wheat/wheat.js +70 -0
  94. data/vendor/lib/google-compiler/COPYING +202 -0
  95. data/vendor/lib/google-compiler/README +224 -0
  96. data/vendor/lib/google-compiler/compiler-20100201.jar +0 -0
  97. data/vendor/protovis-d3.3.js +15726 -0
  98. data/vendor/protovis-r3.3.js +287 -0
  99. data/vendor/src/behavior/Behavior.js +32 -0
  100. data/vendor/src/behavior/Drag.js +112 -0
  101. data/vendor/src/behavior/Pan.js +110 -0
  102. data/vendor/src/behavior/Point.js +157 -0
  103. data/vendor/src/behavior/Resize.js +104 -0
  104. data/vendor/src/behavior/Select.js +100 -0
  105. data/vendor/src/behavior/Zoom.js +85 -0
  106. data/vendor/src/color/Color.js +598 -0
  107. data/vendor/src/color/Colors.js +135 -0
  108. data/vendor/src/color/Ramp.js +17 -0
  109. data/vendor/src/data/Arrays.js +277 -0
  110. data/vendor/src/data/Dom.js +380 -0
  111. data/vendor/src/data/Flatten.js +146 -0
  112. data/vendor/src/data/Histogram.js +120 -0
  113. data/vendor/src/data/LinearScale.js +54 -0
  114. data/vendor/src/data/LogScale.js +142 -0
  115. data/vendor/src/data/Nest.js +257 -0
  116. data/vendor/src/data/Numbers.js +313 -0
  117. data/vendor/src/data/Objects.js +78 -0
  118. data/vendor/src/data/OrdinalScale.js +267 -0
  119. data/vendor/src/data/QuantileScale.js +180 -0
  120. data/vendor/src/data/QuantitativeScale.js +440 -0
  121. data/vendor/src/data/RootScale.js +55 -0
  122. data/vendor/src/data/Scale.js +86 -0
  123. data/vendor/src/data/Transform.js +109 -0
  124. data/vendor/src/data/Tree.js +124 -0
  125. data/vendor/src/data/Vector.js +118 -0
  126. data/vendor/src/geo/Geo.js +5 -0
  127. data/vendor/src/geo/GeoScale.js +307 -0
  128. data/vendor/src/geo/LatLng.js +23 -0
  129. data/vendor/src/geo/Projection.js +43 -0
  130. data/vendor/src/geo/Projections.js +117 -0
  131. data/vendor/src/lang/Array.js +112 -0
  132. data/vendor/src/lang/init.js +26 -0
  133. data/vendor/src/layout/Arc.js +178 -0
  134. data/vendor/src/layout/Bullet.js +164 -0
  135. data/vendor/src/layout/Cluster.js +205 -0
  136. data/vendor/src/layout/Force.js +309 -0
  137. data/vendor/src/layout/Grid.js +119 -0
  138. data/vendor/src/layout/Hierarchy.js +249 -0
  139. data/vendor/src/layout/Horizon.js +159 -0
  140. data/vendor/src/layout/Indent.js +83 -0
  141. data/vendor/src/layout/Layout.js +56 -0
  142. data/vendor/src/layout/Matrix.js +177 -0
  143. data/vendor/src/layout/Network.js +302 -0
  144. data/vendor/src/layout/Pack.js +323 -0
  145. data/vendor/src/layout/Partition.js +203 -0
  146. data/vendor/src/layout/Rollup.js +203 -0
  147. data/vendor/src/layout/Stack.js +391 -0
  148. data/vendor/src/layout/Tree.js +282 -0
  149. data/vendor/src/layout/Treemap.js +347 -0
  150. data/vendor/src/mark/Anchor.js +81 -0
  151. data/vendor/src/mark/Area.js +268 -0
  152. data/vendor/src/mark/Bar.js +93 -0
  153. data/vendor/src/mark/Dot.js +212 -0
  154. data/vendor/src/mark/Ease.js +150 -0
  155. data/vendor/src/mark/Image.js +154 -0
  156. data/vendor/src/mark/Label.js +155 -0
  157. data/vendor/src/mark/Line.js +195 -0
  158. data/vendor/src/mark/Mark.js +1237 -0
  159. data/vendor/src/mark/Panel.js +273 -0
  160. data/vendor/src/mark/Rule.js +143 -0
  161. data/vendor/src/mark/Transient.js +7 -0
  162. data/vendor/src/mark/Transition.js +195 -0
  163. data/vendor/src/mark/Wedge.js +244 -0
  164. data/vendor/src/physics/BoundConstraint.js +75 -0
  165. data/vendor/src/physics/ChargeForce.js +184 -0
  166. data/vendor/src/physics/CollisionConstraint.js +113 -0
  167. data/vendor/src/physics/Constraint.js +26 -0
  168. data/vendor/src/physics/DragForce.js +49 -0
  169. data/vendor/src/physics/Force.js +25 -0
  170. data/vendor/src/physics/Particle.js +81 -0
  171. data/vendor/src/physics/PositionConstraint.js +72 -0
  172. data/vendor/src/physics/Quadtree.js +195 -0
  173. data/vendor/src/physics/Simulation.js +159 -0
  174. data/vendor/src/physics/SpringForce.js +141 -0
  175. data/vendor/src/pv-internals.js +154 -0
  176. data/vendor/src/pv.js +95 -0
  177. data/vendor/src/scene/SvgArea.js +172 -0
  178. data/vendor/src/scene/SvgBar.js +28 -0
  179. data/vendor/src/scene/SvgCurve.js +354 -0
  180. data/vendor/src/scene/SvgDot.js +81 -0
  181. data/vendor/src/scene/SvgImage.js +45 -0
  182. data/vendor/src/scene/SvgLabel.js +46 -0
  183. data/vendor/src/scene/SvgLine.js +159 -0
  184. data/vendor/src/scene/SvgPanel.js +126 -0
  185. data/vendor/src/scene/SvgRule.js +26 -0
  186. data/vendor/src/scene/SvgScene.js +185 -0
  187. data/vendor/src/scene/SvgWedge.js +66 -0
  188. data/vendor/src/text/DateFormat.js +262 -0
  189. data/vendor/src/text/Format.js +78 -0
  190. data/vendor/src/text/NumberFormat.js +227 -0
  191. data/vendor/src/text/TimeFormat.js +115 -0
  192. data/vendor/test1.html +30 -0
  193. data/vendor/tests/behavior/drag-events.html +47 -0
  194. data/vendor/tests/behavior/drag.html +32 -0
  195. data/vendor/tests/behavior/drag2.html +33 -0
  196. data/vendor/tests/behavior/point-area-stacked.html +73 -0
  197. data/vendor/tests/behavior/point-area-stacked2.html +70 -0
  198. data/vendor/tests/behavior/point-area.html +67 -0
  199. data/vendor/tests/behavior/point-bar.html +62 -0
  200. data/vendor/tests/behavior/point-dot.html +60 -0
  201. data/vendor/tests/behavior/point-line.html +62 -0
  202. data/vendor/tests/behavior/point-lines-grid.html +65 -0
  203. data/vendor/tests/behavior/point-lines.html +61 -0
  204. data/vendor/tests/behavior/point-wedge.html +43 -0
  205. data/vendor/tests/behavior/resize.html +69 -0
  206. data/vendor/tests/behavior/select.html +37 -0
  207. data/vendor/tests/bzr.js +62 -0
  208. data/vendor/tests/center.js +13 -0
  209. data/vendor/tests/data/deviation.html +54 -0
  210. data/vendor/tests/data/histogram-discrete.html +50 -0
  211. data/vendor/tests/data/histogram.html +56 -0
  212. data/vendor/tests/data/log-adjusted.html +48 -0
  213. data/vendor/tests/data/log-ceil.html +48 -0
  214. data/vendor/tests/data/log-floor.html +48 -0
  215. data/vendor/tests/data/log-symmetric.html +48 -0
  216. data/vendor/tests/data/log.html +48 -0
  217. data/vendor/tests/data/max-index.html +36 -0
  218. data/vendor/tests/data/max.html +36 -0
  219. data/vendor/tests/data/min-index.html +36 -0
  220. data/vendor/tests/data/min.html +36 -0
  221. data/vendor/tests/data/ordinal-split-banded.html +45 -0
  222. data/vendor/tests/data/ordinal-split-banded2.html +45 -0
  223. data/vendor/tests/data/ordinal-split-flush.html +51 -0
  224. data/vendor/tests/data/ordinal-split.html +51 -0
  225. data/vendor/tests/data/range.html +105 -0
  226. data/vendor/tests/data/scale-date.html +46 -0
  227. data/vendor/tests/data/scale-date2.html +38 -0
  228. data/vendor/tests/data/scale-date3.html +38 -0
  229. data/vendor/tests/data/scale-date4.html +38 -0
  230. data/vendor/tests/data/scale-degenerate.html +143 -0
  231. data/vendor/tests/data/scale-linear.html +59 -0
  232. data/vendor/tests/data/scale-log.html +60 -0
  233. data/vendor/tests/data/scale-log2.html +60 -0
  234. data/vendor/tests/data/scale-log3.html +60 -0
  235. data/vendor/tests/data/scale-log4.html +60 -0
  236. data/vendor/tests/data/scale-log5.html +60 -0
  237. data/vendor/tests/data/scale-log6.html +60 -0
  238. data/vendor/tests/data/scale-quantile.html +47 -0
  239. data/vendor/tests/data/scale-quantile2.html +50 -0
  240. data/vendor/tests/data/scale-quantile3.html +48 -0
  241. data/vendor/tests/data/scale-root.html +60 -0
  242. data/vendor/tests/data/scale-root2.html +39 -0
  243. data/vendor/tests/data/scale-tick-format.html +54 -0
  244. data/vendor/tests/data/scale-ticks.html +45 -0
  245. data/vendor/tests/data/sum.html +42 -0
  246. data/vendor/tests/data/variance.html +42 -0
  247. data/vendor/tests/diamond.js +40 -0
  248. data/vendor/tests/flare-imports.js +222 -0
  249. data/vendor/tests/flare.js +284 -0
  250. data/vendor/tests/geo/countries-hires.js +257 -0
  251. data/vendor/tests/geo/countries-lores.js +197 -0
  252. data/vendor/tests/geo/population.js +250 -0
  253. data/vendor/tests/geo/scale-aitoff.html +58 -0
  254. data/vendor/tests/geo/scale-gall-peters.html +56 -0
  255. data/vendor/tests/geo/scale-hammer.html +58 -0
  256. data/vendor/tests/geo/scale-identity.html +56 -0
  257. data/vendor/tests/geo/scale-mercator.html +56 -0
  258. data/vendor/tests/geo/scale-sinusoidal.html +57 -0
  259. data/vendor/tests/geo/scale-smart-domain.html +58 -0
  260. data/vendor/tests/geo/scale.html +55 -0
  261. data/vendor/tests/geo/scale2.html +40 -0
  262. data/vendor/tests/geo/us-states.js +61 -0
  263. data/vendor/tests/heatmap.js +63 -0
  264. data/vendor/tests/lang/globals.html +41 -0
  265. data/vendor/tests/lang/init.html +31 -0
  266. data/vendor/tests/layers.js +28 -0
  267. data/vendor/tests/layout/arc-directed.html +33 -0
  268. data/vendor/tests/layout/arc-radial.html +36 -0
  269. data/vendor/tests/layout/arc-undirected.html +32 -0
  270. data/vendor/tests/layout/arc.html +33 -0
  271. data/vendor/tests/layout/arc2.html +32 -0
  272. data/vendor/tests/layout/bullet-multiples.html +60 -0
  273. data/vendor/tests/layout/bullet.html +45 -0
  274. data/vendor/tests/layout/bullets.js +37 -0
  275. data/vendor/tests/layout/cluster-fill-group.html +24 -0
  276. data/vendor/tests/layout/cluster-fill.html +28 -0
  277. data/vendor/tests/layout/cluster-partition-radial-fill.html +43 -0
  278. data/vendor/tests/layout/cluster-radial-fill-radius.html +26 -0
  279. data/vendor/tests/layout/cluster-radial-fill.html +29 -0
  280. data/vendor/tests/layout/cluster-radial-group-fill.html +30 -0
  281. data/vendor/tests/layout/cluster-radial-radius.html +30 -0
  282. data/vendor/tests/layout/cluster-radial.html +28 -0
  283. data/vendor/tests/layout/cluster-radial2.html +33 -0
  284. data/vendor/tests/layout/cluster.html +34 -0
  285. data/vendor/tests/layout/cluster2.html +32 -0
  286. data/vendor/tests/layout/force-toggle.html +46 -0
  287. data/vendor/tests/layout/force.html +45 -0
  288. data/vendor/tests/layout/force2.html +58 -0
  289. data/vendor/tests/layout/force3.html +41 -0
  290. data/vendor/tests/layout/force4.html +45 -0
  291. data/vendor/tests/layout/force5.html +53 -0
  292. data/vendor/tests/layout/grid-cols.html +31 -0
  293. data/vendor/tests/layout/grid-heatmap.html +25 -0
  294. data/vendor/tests/layout/grid-rows.html +31 -0
  295. data/vendor/tests/layout/grid.html +34 -0
  296. data/vendor/tests/layout/horizon-color.html +31 -0
  297. data/vendor/tests/layout/horizon.html +31 -0
  298. data/vendor/tests/layout/indent-toggle.html +62 -0
  299. data/vendor/tests/layout/indent.html +25 -0
  300. data/vendor/tests/layout/indent2.html +33 -0
  301. data/vendor/tests/layout/matrix-sort.html +28 -0
  302. data/vendor/tests/layout/matrix.html +35 -0
  303. data/vendor/tests/layout/network.html +43 -0
  304. data/vendor/tests/layout/pack-bubble.html +45 -0
  305. data/vendor/tests/layout/pack.html +26 -0
  306. data/vendor/tests/layout/pack2.html +32 -0
  307. data/vendor/tests/layout/partition-fill.html +27 -0
  308. data/vendor/tests/layout/partition-fill2.html +22 -0
  309. data/vendor/tests/layout/partition-fill3.html +27 -0
  310. data/vendor/tests/layout/partition-radial-fill-radius.html +25 -0
  311. data/vendor/tests/layout/partition-radial-fill.html +26 -0
  312. data/vendor/tests/layout/partition-radial-fill2.html +23 -0
  313. data/vendor/tests/layout/partition-radial-fill3.html +29 -0
  314. data/vendor/tests/layout/partition-radial-radius.html +29 -0
  315. data/vendor/tests/layout/partition-radial.html +30 -0
  316. data/vendor/tests/layout/partition-radial2.html +33 -0
  317. data/vendor/tests/layout/partition.html +33 -0
  318. data/vendor/tests/layout/partition2.html +32 -0
  319. data/vendor/tests/layout/rollup.html +50 -0
  320. data/vendor/tests/layout/stack-empty.html +27 -0
  321. data/vendor/tests/layout/stack-expand.html +41 -0
  322. data/vendor/tests/layout/stack-reverse.html +42 -0
  323. data/vendor/tests/layout/stack-right.html +42 -0
  324. data/vendor/tests/layout/stack-rule.html +61 -0
  325. data/vendor/tests/layout/stack-visible.html +43 -0
  326. data/vendor/tests/layout/stack.html +53 -0
  327. data/vendor/tests/layout/tree-radial.html +31 -0
  328. data/vendor/tests/layout/tree-radial2.html +34 -0
  329. data/vendor/tests/layout/tree-toggle.html +36 -0
  330. data/vendor/tests/layout/tree.html +31 -0
  331. data/vendor/tests/layout/tree2.html +35 -0
  332. data/vendor/tests/layout/treemap-hierarchy.html +40 -0
  333. data/vendor/tests/layout/treemap-margin.html +26 -0
  334. data/vendor/tests/layout/treemap-round.html +40 -0
  335. data/vendor/tests/layout/treemap-slice.html +34 -0
  336. data/vendor/tests/layout/treemap.html +37 -0
  337. data/vendor/tests/life.js +212 -0
  338. data/vendor/tests/mark/anchor.html +25 -0
  339. data/vendor/tests/mark/area-anchor-chain.html +42 -0
  340. data/vendor/tests/mark/area-anchor-line.html +57 -0
  341. data/vendor/tests/mark/area-anchor-stack.html +35 -0
  342. data/vendor/tests/mark/area-anchor.html +43 -0
  343. data/vendor/tests/mark/area-anchor2.html +33 -0
  344. data/vendor/tests/mark/area-cardinal.html +57 -0
  345. data/vendor/tests/mark/area-monotone.html +57 -0
  346. data/vendor/tests/mark/area-segmented-basis.html +30 -0
  347. data/vendor/tests/mark/area-segmented-cardinal.html +30 -0
  348. data/vendor/tests/mark/area-segmented-monotone.html +30 -0
  349. data/vendor/tests/mark/area-segmented-step.html +44 -0
  350. data/vendor/tests/mark/area-segmented.html +29 -0
  351. data/vendor/tests/mark/area-stacked-cardinal.html +54 -0
  352. data/vendor/tests/mark/area-stacked-monotone.html +54 -0
  353. data/vendor/tests/mark/area-stacked.html +53 -0
  354. data/vendor/tests/mark/area-step.html +43 -0
  355. data/vendor/tests/mark/area-zero.html +32 -0
  356. data/vendor/tests/mark/area.html +57 -0
  357. data/vendor/tests/mark/bar-anchor-stack.html +51 -0
  358. data/vendor/tests/mark/bar-anchor.html +44 -0
  359. data/vendor/tests/mark/bar-column-grouped.html +63 -0
  360. data/vendor/tests/mark/bar-column-stacked.html +56 -0
  361. data/vendor/tests/mark/bar-column.html +54 -0
  362. data/vendor/tests/mark/bar-grouped.html +63 -0
  363. data/vendor/tests/mark/bar-stacked.html +57 -0
  364. data/vendor/tests/mark/bar.html +54 -0
  365. data/vendor/tests/mark/cursor.html +41 -0
  366. data/vendor/tests/mark/def-type.html +23 -0
  367. data/vendor/tests/mark/dot-anchor.html +33 -0
  368. data/vendor/tests/mark/dot-radius.html +22 -0
  369. data/vendor/tests/mark/dot-stroke.html +43 -0
  370. data/vendor/tests/mark/dot.html +52 -0
  371. data/vendor/tests/mark/dot2.html +61 -0
  372. data/vendor/tests/mark/ease.html +90 -0
  373. data/vendor/tests/mark/event-dblclick.html +30 -0
  374. data/vendor/tests/mark/event-prototype.html +45 -0
  375. data/vendor/tests/mark/event-render.html +45 -0
  376. data/vendor/tests/mark/event.html +24 -0
  377. data/vendor/tests/mark/image-color-inherit.html +33 -0
  378. data/vendor/tests/mark/image-color.html +35 -0
  379. data/vendor/tests/mark/image-color2.html +35 -0
  380. data/vendor/tests/mark/image-heatmap.html +29 -0
  381. data/vendor/tests/mark/image.html +32 -0
  382. data/vendor/tests/mark/label-break.html +54 -0
  383. data/vendor/tests/mark/label-decoration.html +22 -0
  384. data/vendor/tests/mark/label-events.html +32 -0
  385. data/vendor/tests/mark/line-anchor.html +42 -0
  386. data/vendor/tests/mark/line-basis.html +54 -0
  387. data/vendor/tests/mark/line-brownian.html +57 -0
  388. data/vendor/tests/mark/line-cardinal.html +77 -0
  389. data/vendor/tests/mark/line-catmull-rom.html +78 -0
  390. data/vendor/tests/mark/line-curve.html +65 -0
  391. data/vendor/tests/mark/line-eccentricity.html +39 -0
  392. data/vendor/tests/mark/line-fill.html +24 -0
  393. data/vendor/tests/mark/line-join.html +51 -0
  394. data/vendor/tests/mark/line-monotone-non-monotone.html +53 -0
  395. data/vendor/tests/mark/line-monotone-two-way.html +61 -0
  396. data/vendor/tests/mark/line-monotone.html +53 -0
  397. data/vendor/tests/mark/line-polar.html +36 -0
  398. data/vendor/tests/mark/line-segmented-basis.html +57 -0
  399. data/vendor/tests/mark/line-segmented-cardinal.html +80 -0
  400. data/vendor/tests/mark/line-segmented-join.html +52 -0
  401. data/vendor/tests/mark/line-segmented-monotone.html +56 -0
  402. data/vendor/tests/mark/line-segmented-polar.html +30 -0
  403. data/vendor/tests/mark/line-segmented-step.html +41 -0
  404. data/vendor/tests/mark/line-segmented-step2.html +32 -0
  405. data/vendor/tests/mark/line-segmented.html +30 -0
  406. data/vendor/tests/mark/line-step.html +39 -0
  407. data/vendor/tests/mark/line-tension.html +59 -0
  408. data/vendor/tests/mark/line.html +51 -0
  409. data/vendor/tests/mark/panel-anchor.html +37 -0
  410. data/vendor/tests/mark/panel-anchor2.html +31 -0
  411. data/vendor/tests/mark/panel-anchor3.html +22 -0
  412. data/vendor/tests/mark/panel-anchor4.html +28 -0
  413. data/vendor/tests/mark/panel-anchor5.html +28 -0
  414. data/vendor/tests/mark/panel-append.html +29 -0
  415. data/vendor/tests/mark/panel-canvas.html +107 -0
  416. data/vendor/tests/mark/panel-fill.html +50 -0
  417. data/vendor/tests/mark/panel-mouse.html +53 -0
  418. data/vendor/tests/mark/panel-transform.html +67 -0
  419. data/vendor/tests/mark/property-cast.html +24 -0
  420. data/vendor/tests/mark/render-partial.html +42 -0
  421. data/vendor/tests/mark/rule-anchor.html +29 -0
  422. data/vendor/tests/mark/title.html +41 -0
  423. data/vendor/tests/mark/transition-anchor.html +47 -0
  424. data/vendor/tests/mark/transition-wedge.html +47 -0
  425. data/vendor/tests/mark/transition.html +106 -0
  426. data/vendor/tests/mark/wedge-donut.html +35 -0
  427. data/vendor/tests/mark/wedge-implied.html +42 -0
  428. data/vendor/tests/mark/wedge-pie.html +37 -0
  429. data/vendor/tests/mark/wedge-ring.html +27 -0
  430. data/vendor/tests/miserables.js +348 -0
  431. data/vendor/tests/physics/dorling.html +70 -0
  432. data/vendor/tests/physics/simulation.html +56 -0
  433. data/vendor/tests/social.js +28 -0
  434. data/vendor/tests/stanford.png +0 -0
  435. data/vendor/tests/style.css +5 -0
  436. data/vendor/tests/testify.css +29 -0
  437. data/vendor/tests/testify.js +16 -0
  438. data/vendor/tests/text/format-number.html +75 -0
  439. data/web/first.svg +1 -0
  440. data/web/index.html +48 -0
  441. metadata +434 -31
  442. data.tar.gz.sig +0 -0
  443. metadata.gz.sig +0 -2
data/vendor/TODO ADDED
@@ -0,0 +1,22 @@
1
+ layout/Layout.js
2
+ - standardize which attributes are populated
3
+ - add support for sort() functions as appropriate (e.g., arc)
4
+
5
+ mark/Mark.js
6
+ - partial redraw for newly-added marks
7
+
8
+ mark/Panel.js
9
+ - remove()
10
+ - query the visible region (avoid transform invert in panel-transform.html)?
11
+
12
+ mark/Anchor.js
13
+ - {min,max}:name "singleton" anchors for center labeling on area and line?
14
+
15
+ geo/GeoScale.js
16
+ - determine center point of projection from domain
17
+ - standardize on GeoJSON representation
18
+ - include shapefile -> GeoJSON convertors or link to them
19
+
20
+ *
21
+ - documentation
22
+ - port examples
@@ -0,0 +1,113 @@
1
+ <html>
2
+ <head>
3
+ <title>Antibiotic Effectiveness</title>
4
+ <link type="text/css" href="../ex.css" rel="stylesheet"/>
5
+ <script type="text/javascript" src="../../protovis-r3.3.js"></script>
6
+ <script type="text/javascript" src="antibiotics.js"></script>
7
+ <style type="text/css">
8
+
9
+ #fig {
10
+ height: 638px;
11
+ width: 608px;
12
+ }
13
+
14
+ </style>
15
+ </head>
16
+ <body><div id="center"><div id="fig">
17
+ <script type="text/javascript+protovis">
18
+
19
+ var s = 180,
20
+ p = 20,
21
+ z = pv.Scale.log(0.001, 1000).range(0, s),
22
+ color = pv.colors("darkred", "darkblue").by(function(d) d.gram),
23
+ ticks = pv.range(-2, 3).map(function(e) Math.pow(10, e));
24
+
25
+ /* Root panel. */
26
+ var vis = new pv.Panel()
27
+ .height(s * antibiotics.length + p * (antibiotics.length - 1))
28
+ .width(function() this.height())
29
+ .top(14.5)
30
+ .left(14.5)
31
+ .bottom(44)
32
+ .right(14);
33
+
34
+ /* Cell for each antibiotic pair. */
35
+ var cell = vis.add(pv.Panel)
36
+ .data(antibiotics)
37
+ .width(s)
38
+ .left(function() (s + p) * this.index)
39
+ .add(pv.Panel)
40
+ .data(antibiotics)
41
+ .height(s)
42
+ .top(function() (s + p) * this.index);
43
+
44
+ /* Label. */
45
+ cell.anchor("center").add(pv.Label)
46
+ .visible(function(d, y, x) x == y)
47
+ .font("bold 14px sans-serif")
48
+ .text(function(d, y, x) x);
49
+
50
+ /* Dot plot and frame. */
51
+ var plot = cell.add(pv.Panel)
52
+ .data(function(y, x) [x])
53
+ .visible(function(x, y) x != y)
54
+ .strokeStyle("#aaa");
55
+
56
+ /* Ticks. */
57
+ var tick = new pv.Rule()
58
+ .visible(function(d, x, y) x != y)
59
+ .data(ticks)
60
+ .strokeStyle("#ddd");
61
+
62
+ /* X-axis ticks. */
63
+ var xtick = plot.add(pv.Rule)
64
+ .extend(tick)
65
+ .left(z);
66
+
67
+ /* Bottom and top labels. */
68
+ xtick.anchor("bottom").add(pv.Label)
69
+ .visible(function() cell.index == antibiotics.length - 1);
70
+ xtick.anchor("top").add(pv.Label)
71
+ .visible(function() cell.index == 0);
72
+
73
+ /* Y-axis ticks. */
74
+ var ytick = plot.add(pv.Rule)
75
+ .extend(tick)
76
+ .bottom(z);
77
+
78
+ /* Bottom and top labels. */
79
+ ytick.anchor("right").add(pv.Label)
80
+ .visible(function() cell.parent.index == antibiotics.length - 1)
81
+ .textAngle(Math.PI / 2)
82
+ .textBaseline("bottom")
83
+ .textAlign("center");
84
+ ytick.anchor("left").add(pv.Label)
85
+ .visible(function() cell.parent.index == 0)
86
+ .textAngle(-Math.PI / 2)
87
+ .textBaseline("bottom")
88
+ .textAlign("center");
89
+
90
+ /* Dot plot. */
91
+ var dot = plot.add(pv.Dot)
92
+ .data(bacteria)
93
+ .strokeStyle(color)
94
+ .fillStyle(function() this.strokeStyle().alpha(.2))
95
+ .left(function(d, x, y) z(d[x]))
96
+ .bottom(function(d, x, y) z(d[y]))
97
+ .title(function(d) d.name);
98
+
99
+ /* Legend. */
100
+ vis.add(pv.Dot)
101
+ .extend(dot)
102
+ .data([{gram:"positive"}, {gram:"negative"}])
103
+ .bottom(-30)
104
+ .left(function() this.index * 100)
105
+ .title(null)
106
+ .anchor("right").add(pv.Label)
107
+ .text(function(d) "Gram-" + d.gram);
108
+
109
+ vis.render();
110
+
111
+ </script>
112
+ </div></div></body>
113
+ </html>
@@ -0,0 +1,140 @@
1
+ <html>
2
+ <head>
3
+ <title>Antibiotic Effectiveness</title>
4
+ <link type="text/css" href="../ex.css" rel="stylesheet"/>
5
+ <script type="text/javascript" src="../../protovis-r3.3.js"></script>
6
+ <script type="text/javascript" src="antibiotics.js"></script>
7
+ <style type="text/css">
8
+
9
+ body {
10
+ background: rgb(240, 225, 210);
11
+ }
12
+
13
+ #fig {
14
+ height: 800px;
15
+ width: 700px;
16
+ }
17
+
18
+ </style>
19
+ </head>
20
+ <body><div id="center"><div id="fig">
21
+ <script type="text/javascript+protovis">
22
+
23
+ /* Basic dimensions. */
24
+ var width = 700,
25
+ height = 700,
26
+ innerRadius = 90,
27
+ outerRadius = 300 - 10;
28
+
29
+ /* Colors. */
30
+ var drugColor = {
31
+ Penicillin: "rgb(10, 50, 100)",
32
+ Streptomycin: "rgb(200, 70, 50)",
33
+ Neomycin: "black"
34
+ }, gramColor = {
35
+ positive: "rgba(174, 174, 184, .8)",
36
+ negative: "rgba(230, 130, 110, .8)"
37
+ };
38
+
39
+ /* Burtin's radius encoding is, as far as I can tell, sqrt(log(mic)). */
40
+ var min = Math.sqrt(Math.log(.001 * 1E4)),
41
+ max = Math.sqrt(Math.log(1000 * 1E4)),
42
+ a = (outerRadius - innerRadius) / (min - max),
43
+ b = innerRadius - a * max,
44
+ radius = function(mic) a * Math.sqrt(Math.log(mic * 1E4)) + b;
45
+
46
+ /*
47
+ * The pie is split into equal sections for each bacteria, with a blank
48
+ * section at the top for the grid labels. Each wedge is further
49
+ * subdivided to make room for the three antibiotics, equispaced.
50
+ */
51
+ var bigAngle = 2.0 * Math.PI / (bacteria.length + 1),
52
+ smallAngle = bigAngle / 7;
53
+
54
+ /* The root panel. */
55
+ var vis = new pv.Panel()
56
+ .width(width)
57
+ .height(height)
58
+ .bottom(100);
59
+
60
+ /* Background wedges to indicate gram staining color. */
61
+ var bg = vis.add(pv.Wedge)
62
+ .data(bacteria) // assumes Burtin's order
63
+ .left(width / 2)
64
+ .top(height / 2)
65
+ .innerRadius(innerRadius)
66
+ .outerRadius(outerRadius)
67
+ .angle(bigAngle)
68
+ .startAngle(function(d) this.index * bigAngle + bigAngle / 2 - Math.PI / 2)
69
+ .fillStyle(function(d) gramColor[d.gram]);
70
+
71
+ /* Antibiotics. */
72
+ bg.add(pv.Wedge)
73
+ .angle(smallAngle)
74
+ .startAngle(function(d) bg.startAngle() + smallAngle)
75
+ .outerRadius(function(d) radius(d.penicillin))
76
+ .fillStyle(drugColor.Penicillin)
77
+ .add(pv.Wedge)
78
+ .startAngle(function(d) this.proto.startAngle() + 2 * smallAngle)
79
+ .outerRadius(function(d) radius(d.streptomycin))
80
+ .fillStyle(drugColor.Streptomycin)
81
+ .add(pv.Wedge)
82
+ .outerRadius(function(d) radius(d.neomycin))
83
+ .fillStyle(drugColor.Neomycin);
84
+
85
+ /* Circular grid lines. */
86
+ bg.add(pv.Dot)
87
+ .data(pv.range(-3, 4))
88
+ .fillStyle(null)
89
+ .strokeStyle("#eee")
90
+ .lineWidth(1)
91
+ .shapeSize(function(i) Math.pow(radius(Math.pow(10, i)), 2))
92
+ .anchor("top").add(pv.Label)
93
+ .visible(function(i) i < 3)
94
+ .textBaseline("middle")
95
+ .text(function(i) Math.pow(10, i).toFixed((i > 0) ? 0 : -i));
96
+
97
+ /* Radial grid lines. */
98
+ bg.add(pv.Wedge)
99
+ .data(pv.range(bacteria.length + 1))
100
+ .innerRadius(innerRadius - 10)
101
+ .outerRadius(outerRadius + 10)
102
+ .fillStyle(null)
103
+ .strokeStyle("black")
104
+ .angle(0);
105
+
106
+ /* Labels. */
107
+ bg.anchor("outer").add(pv.Label)
108
+ .textAlign("center")
109
+ .text(function(d) d.bacteria);
110
+
111
+ /* Antibiotic legend. */
112
+ vis.add(pv.Bar)
113
+ .data(pv.keys(drugColor))
114
+ .right(width / 2 + 3)
115
+ .top(function() height / 2 - 28 + this.index * 18)
116
+ .fillStyle(function(d) drugColor[d])
117
+ .width(36)
118
+ .height(12)
119
+ .anchor("right").add(pv.Label)
120
+ .textMargin(6)
121
+ .textAlign("left");
122
+
123
+ /* Gram-stain legend. */
124
+ vis.add(pv.Dot)
125
+ .data(pv.keys(gramColor))
126
+ .left(width / 2 - 20)
127
+ .bottom(function() -60 + this.index * 18)
128
+ .fillStyle(function(d) gramColor[d])
129
+ .strokeStyle(null)
130
+ .shapeSize(30)
131
+ .anchor("right").add(pv.Label)
132
+ .textMargin(6)
133
+ .textAlign("left")
134
+ .text(function(d) "Gram-" + d);
135
+
136
+ vis.render();
137
+
138
+ </script>
139
+ </center></body>
140
+ </html>
@@ -0,0 +1,20 @@
1
+ var antibiotics = ["penicillin", "streptomycin", "neomycin"];
2
+
3
+ var bacteria = [
4
+ {name: "Mycobacterium tuberculosis", penicillin: 800, streptomycin: 5, neomycin: 2, gram: "negative"},
5
+ {name: "Salmonella schottmuelleri", penicillin: 10, streptomycin: 0.8, neomycin: 0.09, gram: "negative"},
6
+ {name: "Proteus vulgaris", penicillin: 3, streptomycin: 0.1, neomycin: 0.1, gram: "negative"},
7
+ {name: "Klebsiella pneumoniae", penicillin: 850, streptomycin: 1.2, neomycin: 1, gram: "negative"},
8
+ {name: "Brucella abortus", penicillin: 1, streptomycin: 2, neomycin: 0.02, gram: "negative"},
9
+ {name: "Pseudomonas aeruginosa", penicillin: 850, streptomycin: 2, neomycin: 0.4, gram: "negative"},
10
+ {name: "Escherichia coli", penicillin: 100, streptomycin: 0.4, neomycin: 0.1, gram: "negative"},
11
+ {name: "Salmonella (Eberthella) typhosa", penicillin: 1, streptomycin: 0.4, neomycin: 0.008, gram: "negative"},
12
+ {name: "Aerobacter aerogenes", penicillin: 870, streptomycin: 1, neomycin: 1.6, gram: "negative"},
13
+ {name: "Brucella antracis", penicillin: 0.001, streptomycin: 0.01, neomycin: 0.007, gram: "positive"},
14
+ {name: "Streptococcus fecalis", penicillin: 1, streptomycin: 1, neomycin: 0.1, gram: "positive"},
15
+ {name: "Staphylococcus aureus", penicillin: 0.03, streptomycin: 0.03, neomycin: 0.001, gram: "positive"},
16
+ {name: "Staphylococcus albus", penicillin: 0.007, streptomycin: 0.1, neomycin: 0.001, gram: "positive"},
17
+ {name: "Streptococcus hemolyticus", penicillin: 0.001, streptomycin: 14, neomycin: 10, gram: "positive"},
18
+ {name: "Streptococcus viridans", penicillin: 0.005, streptomycin: 10, neomycin: 40, gram: "positive"},
19
+ {name: "Diplococcus pneumoniae", penicillin: 0.005, streptomycin: 11, neomycin: 10, gram: "positive"}
20
+ ];
@@ -0,0 +1,102 @@
1
+ <html>
2
+ <head>
3
+ <title>Barley Yields</title>
4
+ <link type="text/css" href="../ex.css" rel="stylesheet"/>
5
+ <script type="text/javascript" src="../../protovis-r3.3.js"></script>
6
+ <script type="text/javascript" src="barley.js"></script>
7
+ <style type="text/css">
8
+
9
+ #fig {
10
+ width: 334px;
11
+ height: 833px;
12
+ }
13
+
14
+ </style>
15
+ </head>
16
+ <body><div id="center"><div id="fig">
17
+ <script type="text/javascript+protovis">
18
+
19
+ /* Compute yield medians by site and by variety. */
20
+ function median(data) pv.median(data, function(d) d.yield);
21
+ var site = pv.nest(barley).key(function(d) d.site).rollup(median);
22
+ var variety = pv.nest(barley).key(function(d) d.variety).rollup(median);
23
+
24
+ /* Nest yields data by site then year. */
25
+ barley = pv.nest(barley)
26
+ .key(function(d) d.site)
27
+ .sortKeys(function(a, b) site[b] - site[a])
28
+ .key(function(d) d.year)
29
+ .sortValues(function(a, b) variety[b.variety] - variety[a.variety])
30
+ .entries();
31
+
32
+ /* Sizing and scales. */
33
+ var w = 332,
34
+ h = 132,
35
+ x = pv.Scale.linear(10, 90).range(0, w),
36
+ c = pv.Colors.category10();
37
+
38
+ /* The root panel. */
39
+ var vis = new pv.Panel()
40
+ .width(w)
41
+ .height(h * pv.keys(site).length)
42
+ .top(15.5)
43
+ .left(.5)
44
+ .right(.5)
45
+ .bottom(25);
46
+
47
+ /* A panel per site-year. */
48
+ var cell = vis.add(pv.Panel)
49
+ .data(barley)
50
+ .height(h)
51
+ .left(90)
52
+ .top(function() this.index * h)
53
+ .strokeStyle("#999");
54
+
55
+ /* Title bar. */
56
+ cell.add(pv.Bar)
57
+ .height(14)
58
+ .fillStyle("bisque")
59
+ .anchor("center").add(pv.Label)
60
+ .text(function(site) site.key);
61
+
62
+ /* A dot showing the yield. */
63
+ var dot = cell.add(pv.Panel)
64
+ .data(function(site) site.values)
65
+ .top(23)
66
+ .add(pv.Dot)
67
+ .data(function(year) year.values)
68
+ .left(function(d) x(d.yield))
69
+ .top(function() this.index * 11)
70
+ .shapeSize(10)
71
+ .lineWidth(2)
72
+ .strokeStyle(function(d) c(d.year));
73
+
74
+ /* A label showing the variety. */
75
+ dot.anchor("left").add(pv.Label)
76
+ .visible(function() !this.parent.index)
77
+ .left(-2)
78
+ .text(function(d) d.variety);
79
+
80
+ /* X-ticks. */
81
+ vis.add(pv.Rule)
82
+ .data(x.ticks())
83
+ .left(function(d) 90 + x(d))
84
+ .bottom(-5)
85
+ .height(5)
86
+ .strokeStyle("#999")
87
+ .anchor("bottom").add(pv.Label);
88
+
89
+ /* A legend showing the year. */
90
+ vis.add(pv.Dot)
91
+ .extend(dot)
92
+ .data([{year:1931}, {year:1932}])
93
+ .left(function(d) 260 + this.index * 40)
94
+ .top(-8)
95
+ .anchor("right").add(pv.Label)
96
+ .text(function(d) d.year);
97
+
98
+ vis.render();
99
+
100
+ </script>
101
+ </div></div></body>
102
+ </html>
@@ -0,0 +1,122 @@
1
+ var barley = [
2
+ { yield: 27.00000, variety: "Manchuria", year: 1931, site: "University Farm" },
3
+ { yield: 48.86667, variety: "Manchuria", year: 1931, site: "Waseca" },
4
+ { yield: 27.43334, variety: "Manchuria", year: 1931, site: "Morris" },
5
+ { yield: 39.93333, variety: "Manchuria", year: 1931, site: "Crookston" },
6
+ { yield: 32.96667, variety: "Manchuria", year: 1931, site: "Grand Rapids" },
7
+ { yield: 28.96667, variety: "Manchuria", year: 1931, site: "Duluth" },
8
+ { yield: 43.06666, variety: "Glabron", year: 1931, site: "University Farm" },
9
+ { yield: 55.20000, variety: "Glabron", year: 1931, site: "Waseca" },
10
+ { yield: 28.76667, variety: "Glabron", year: 1931, site: "Morris" },
11
+ { yield: 38.13333, variety: "Glabron", year: 1931, site: "Crookston" },
12
+ { yield: 29.13333, variety: "Glabron", year: 1931, site: "Grand Rapids" },
13
+ { yield: 29.66667, variety: "Glabron", year: 1931, site: "Duluth" },
14
+ { yield: 35.13333, variety: "Svansota", year: 1931, site: "University Farm" },
15
+ { yield: 47.33333, variety: "Svansota", year: 1931, site: "Waseca" },
16
+ { yield: 25.76667, variety: "Svansota", year: 1931, site: "Morris" },
17
+ { yield: 40.46667, variety: "Svansota", year: 1931, site: "Crookston" },
18
+ { yield: 29.66667, variety: "Svansota", year: 1931, site: "Grand Rapids" },
19
+ { yield: 25.70000, variety: "Svansota", year: 1931, site: "Duluth" },
20
+ { yield: 39.90000, variety: "Velvet", year: 1931, site: "University Farm" },
21
+ { yield: 50.23333, variety: "Velvet", year: 1931, site: "Waseca" },
22
+ { yield: 26.13333, variety: "Velvet", year: 1931, site: "Morris" },
23
+ { yield: 41.33333, variety: "Velvet", year: 1931, site: "Crookston" },
24
+ { yield: 23.03333, variety: "Velvet", year: 1931, site: "Grand Rapids" },
25
+ { yield: 26.30000, variety: "Velvet", year: 1931, site: "Duluth" },
26
+ { yield: 36.56666, variety: "Trebi", year: 1931, site: "University Farm" },
27
+ { yield: 63.83330, variety: "Trebi", year: 1931, site: "Waseca" },
28
+ { yield: 43.76667, variety: "Trebi", year: 1931, site: "Morris" },
29
+ { yield: 46.93333, variety: "Trebi", year: 1931, site: "Crookston" },
30
+ { yield: 29.76667, variety: "Trebi", year: 1931, site: "Grand Rapids" },
31
+ { yield: 33.93333, variety: "Trebi", year: 1931, site: "Duluth" },
32
+ { yield: 43.26667, variety: "No. 457", year: 1931, site: "University Farm" },
33
+ { yield: 58.10000, variety: "No. 457", year: 1931, site: "Waseca" },
34
+ { yield: 28.70000, variety: "No. 457", year: 1931, site: "Morris" },
35
+ { yield: 45.66667, variety: "No. 457", year: 1931, site: "Crookston" },
36
+ { yield: 32.16667, variety: "No. 457", year: 1931, site: "Grand Rapids" },
37
+ { yield: 33.60000, variety: "No. 457", year: 1931, site: "Duluth" },
38
+ { yield: 36.60000, variety: "No. 462", year: 1931, site: "University Farm" },
39
+ { yield: 65.76670, variety: "No. 462", year: 1931, site: "Waseca" },
40
+ { yield: 30.36667, variety: "No. 462", year: 1931, site: "Morris" },
41
+ { yield: 48.56666, variety: "No. 462", year: 1931, site: "Crookston" },
42
+ { yield: 24.93334, variety: "No. 462", year: 1931, site: "Grand Rapids" },
43
+ { yield: 28.10000, variety: "No. 462", year: 1931, site: "Duluth" },
44
+ { yield: 32.76667, variety: "Peatland", year: 1931, site: "University Farm" },
45
+ { yield: 48.56666, variety: "Peatland", year: 1931, site: "Waseca" },
46
+ { yield: 29.86667, variety: "Peatland", year: 1931, site: "Morris" },
47
+ { yield: 41.60000, variety: "Peatland", year: 1931, site: "Crookston" },
48
+ { yield: 34.70000, variety: "Peatland", year: 1931, site: "Grand Rapids" },
49
+ { yield: 32.00000, variety: "Peatland", year: 1931, site: "Duluth" },
50
+ { yield: 24.66667, variety: "No. 475", year: 1931, site: "University Farm" },
51
+ { yield: 46.76667, variety: "No. 475", year: 1931, site: "Waseca" },
52
+ { yield: 22.60000, variety: "No. 475", year: 1931, site: "Morris" },
53
+ { yield: 44.10000, variety: "No. 475", year: 1931, site: "Crookston" },
54
+ { yield: 19.70000, variety: "No. 475", year: 1931, site: "Grand Rapids" },
55
+ { yield: 33.06666, variety: "No. 475", year: 1931, site: "Duluth" },
56
+ { yield: 39.30000, variety: "Wisconsin No. 38", year: 1931, site: "University Farm" },
57
+ { yield: 58.80000, variety: "Wisconsin No. 38", year: 1931, site: "Waseca" },
58
+ { yield: 29.46667, variety: "Wisconsin No. 38", year: 1931, site: "Morris" },
59
+ { yield: 49.86667, variety: "Wisconsin No. 38", year: 1931, site: "Crookston" },
60
+ { yield: 34.46667, variety: "Wisconsin No. 38", year: 1931, site: "Grand Rapids" },
61
+ { yield: 31.60000, variety: "Wisconsin No. 38", year: 1931, site: "Duluth" },
62
+ { yield: 26.90000, variety: "Manchuria", year: 1932, site: "University Farm" },
63
+ { yield: 33.46667, variety: "Manchuria", year: 1932, site: "Waseca" },
64
+ { yield: 34.36666, variety: "Manchuria", year: 1932, site: "Morris" },
65
+ { yield: 32.96667, variety: "Manchuria", year: 1932, site: "Crookston" },
66
+ { yield: 22.13333, variety: "Manchuria", year: 1932, site: "Grand Rapids" },
67
+ { yield: 22.56667, variety: "Manchuria", year: 1932, site: "Duluth" },
68
+ { yield: 36.80000, variety: "Glabron", year: 1932, site: "University Farm" },
69
+ { yield: 37.73333, variety: "Glabron", year: 1932, site: "Waseca" },
70
+ { yield: 35.13333, variety: "Glabron", year: 1932, site: "Morris" },
71
+ { yield: 26.16667, variety: "Glabron", year: 1932, site: "Crookston" },
72
+ { yield: 14.43333, variety: "Glabron", year: 1932, site: "Grand Rapids" },
73
+ { yield: 25.86667, variety: "Glabron", year: 1932, site: "Duluth" },
74
+ { yield: 27.43334, variety: "Svansota", year: 1932, site: "University Farm" },
75
+ { yield: 38.50000, variety: "Svansota", year: 1932, site: "Waseca" },
76
+ { yield: 35.03333, variety: "Svansota", year: 1932, site: "Morris" },
77
+ { yield: 20.63333, variety: "Svansota", year: 1932, site: "Crookston" },
78
+ { yield: 16.63333, variety: "Svansota", year: 1932, site: "Grand Rapids" },
79
+ { yield: 22.23333, variety: "Svansota", year: 1932, site: "Duluth" },
80
+ { yield: 26.80000, variety: "Velvet", year: 1932, site: "University Farm" },
81
+ { yield: 37.40000, variety: "Velvet", year: 1932, site: "Waseca" },
82
+ { yield: 38.83333, variety: "Velvet", year: 1932, site: "Morris" },
83
+ { yield: 32.06666, variety: "Velvet", year: 1932, site: "Crookston" },
84
+ { yield: 32.23333, variety: "Velvet", year: 1932, site: "Grand Rapids" },
85
+ { yield: 22.46667, variety: "Velvet", year: 1932, site: "Duluth" },
86
+ { yield: 29.06667, variety: "Trebi", year: 1932, site: "University Farm" },
87
+ { yield: 49.23330, variety: "Trebi", year: 1932, site: "Waseca" },
88
+ { yield: 46.63333, variety: "Trebi", year: 1932, site: "Morris" },
89
+ { yield: 41.83333, variety: "Trebi", year: 1932, site: "Crookston" },
90
+ { yield: 20.63333, variety: "Trebi", year: 1932, site: "Grand Rapids" },
91
+ { yield: 30.60000, variety: "Trebi", year: 1932, site: "Duluth" },
92
+ { yield: 26.43334, variety: "No. 457", year: 1932, site: "University Farm" },
93
+ { yield: 42.20000, variety: "No. 457", year: 1932, site: "Waseca" },
94
+ { yield: 43.53334, variety: "No. 457", year: 1932, site: "Morris" },
95
+ { yield: 34.33333, variety: "No. 457", year: 1932, site: "Crookston" },
96
+ { yield: 19.46667, variety: "No. 457", year: 1932, site: "Grand Rapids" },
97
+ { yield: 22.70000, variety: "No. 457", year: 1932, site: "Duluth" },
98
+ { yield: 25.56667, variety: "No. 462", year: 1932, site: "University Farm" },
99
+ { yield: 44.70000, variety: "No. 462", year: 1932, site: "Waseca" },
100
+ { yield: 47.00000, variety: "No. 462", year: 1932, site: "Morris" },
101
+ { yield: 30.53333, variety: "No. 462", year: 1932, site: "Crookston" },
102
+ { yield: 19.90000, variety: "No. 462", year: 1932, site: "Grand Rapids" },
103
+ { yield: 22.50000, variety: "No. 462", year: 1932, site: "Duluth" },
104
+ { yield: 28.06667, variety: "Peatland", year: 1932, site: "University Farm" },
105
+ { yield: 36.03333, variety: "Peatland", year: 1932, site: "Waseca" },
106
+ { yield: 43.20000, variety: "Peatland", year: 1932, site: "Morris" },
107
+ { yield: 25.23333, variety: "Peatland", year: 1932, site: "Crookston" },
108
+ { yield: 26.76667, variety: "Peatland", year: 1932, site: "Grand Rapids" },
109
+ { yield: 31.36667, variety: "Peatland", year: 1932, site: "Duluth" },
110
+ { yield: 30.00000, variety: "No. 475", year: 1932, site: "University Farm" },
111
+ { yield: 41.26667, variety: "No. 475", year: 1932, site: "Waseca" },
112
+ { yield: 44.23333, variety: "No. 475", year: 1932, site: "Morris" },
113
+ { yield: 32.13333, variety: "No. 475", year: 1932, site: "Crookston" },
114
+ { yield: 15.23333, variety: "No. 475", year: 1932, site: "Grand Rapids" },
115
+ { yield: 27.36667, variety: "No. 475", year: 1932, site: "Duluth" },
116
+ { yield: 38.00000, variety: "Wisconsin No. 38", year: 1932, site: "University Farm" },
117
+ { yield: 58.16667, variety: "Wisconsin No. 38", year: 1932, site: "Waseca" },
118
+ { yield: 47.16667, variety: "Wisconsin No. 38", year: 1932, site: "Morris" },
119
+ { yield: 35.90000, variety: "Wisconsin No. 38", year: 1932, site: "Crookston" },
120
+ { yield: 20.66667, variety: "Wisconsin No. 38", year: 1932, site: "Grand Rapids" },
121
+ { yield: 29.33333, variety: "Wisconsin No. 38", year: 1932, site: "Duluth" }
122
+ ];