rubyvis 0.1.1 → 0.1.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (461) hide show
  1. data.tar.gz.sig +0 -0
  2. data/History.txt +8 -1
  3. data/Manifest.txt +100 -416
  4. data/README.txt +5 -2
  5. data/examples/barley/barley.rb +79 -0
  6. data/examples/crimea/crimea.rb +37 -0
  7. data/examples/crimea/crimea_line.rb +47 -0
  8. data/examples/second.rb +2 -2
  9. data/examples/third.rb +16 -0
  10. data/lib/rubyvis.rb +2 -1
  11. data/lib/rubyvis/color/color.rb +170 -169
  12. data/lib/rubyvis/color/colors.rb +4 -4
  13. data/lib/rubyvis/color/ramp.rb +1 -0
  14. data/lib/rubyvis/format.rb +2 -2
  15. data/lib/rubyvis/format/date.rb +9 -2
  16. data/lib/rubyvis/format/number.rb +3 -3
  17. data/lib/rubyvis/internals.rb +13 -13
  18. data/lib/rubyvis/javascript_behaviour.rb +3 -3
  19. data/lib/rubyvis/label.rb +1 -0
  20. data/lib/rubyvis/mark.rb +178 -169
  21. data/lib/rubyvis/mark/anchor.rb +4 -4
  22. data/lib/rubyvis/mark/area.rb +93 -5
  23. data/lib/rubyvis/mark/bar.rb +1 -1
  24. data/lib/rubyvis/mark/label.rb +2 -2
  25. data/lib/rubyvis/mark/line.rb +11 -5
  26. data/lib/rubyvis/mark/panel.rb +13 -11
  27. data/lib/rubyvis/mark/rule.rb +2 -2
  28. data/lib/rubyvis/property.rb +3 -2
  29. data/lib/rubyvis/scale.rb +4 -4
  30. data/lib/rubyvis/scale/linear.rb +2 -2
  31. data/lib/rubyvis/scale/ordinal.rb +41 -41
  32. data/lib/rubyvis/scale/quantitative.rb +212 -200
  33. data/lib/rubyvis/scene/svg_bar.rb +21 -21
  34. data/lib/rubyvis/scene/svg_label.rb +34 -34
  35. data/lib/rubyvis/scene/svg_line.rb +185 -0
  36. data/lib/rubyvis/scene/svg_panel.rb +36 -30
  37. data/lib/rubyvis/scene/svg_rule.rb +18 -19
  38. data/lib/rubyvis/scene/svg_scene.rb +33 -30
  39. data/lib/rubyvis/sceneelement.rb +5 -1
  40. data/lib/rubyvis/transform.rb +2 -2
  41. data/spec/mark_spec.rb +6 -6
  42. data/spec/scale_linear_datetime_spec.rb +52 -0
  43. data/spec/scale_linear_spec.rb +0 -10
  44. data/vendor/{protovis-r3.3.js → protovis/protovis-r3.3.js} +0 -0
  45. data/vendor/{src → protovis/src}/behavior/Behavior.js +0 -0
  46. data/vendor/{src → protovis/src}/behavior/Drag.js +0 -0
  47. data/vendor/{src → protovis/src}/behavior/Pan.js +0 -0
  48. data/vendor/{src → protovis/src}/behavior/Point.js +0 -0
  49. data/vendor/{src → protovis/src}/behavior/Resize.js +0 -0
  50. data/vendor/{src → protovis/src}/behavior/Select.js +0 -0
  51. data/vendor/{src → protovis/src}/behavior/Zoom.js +0 -0
  52. data/vendor/{src → protovis/src}/color/Color.js +0 -0
  53. data/vendor/{src → protovis/src}/color/Colors.js +0 -0
  54. data/vendor/{src → protovis/src}/color/Ramp.js +0 -0
  55. data/vendor/{src → protovis/src}/data/Arrays.js +0 -0
  56. data/vendor/{src → protovis/src}/data/Dom.js +0 -0
  57. data/vendor/{src → protovis/src}/data/Flatten.js +0 -0
  58. data/vendor/{src → protovis/src}/data/Histogram.js +0 -0
  59. data/vendor/{src → protovis/src}/data/LinearScale.js +0 -0
  60. data/vendor/{src → protovis/src}/data/LogScale.js +0 -0
  61. data/vendor/{src → protovis/src}/data/Nest.js +0 -0
  62. data/vendor/{src → protovis/src}/data/Numbers.js +0 -0
  63. data/vendor/{src → protovis/src}/data/Objects.js +0 -0
  64. data/vendor/{src → protovis/src}/data/OrdinalScale.js +0 -0
  65. data/vendor/{src → protovis/src}/data/QuantileScale.js +0 -0
  66. data/vendor/{src → protovis/src}/data/QuantitativeScale.js +0 -0
  67. data/vendor/{src → protovis/src}/data/RootScale.js +0 -0
  68. data/vendor/{src → protovis/src}/data/Scale.js +0 -0
  69. data/vendor/{src → protovis/src}/data/Transform.js +0 -0
  70. data/vendor/{src → protovis/src}/data/Tree.js +0 -0
  71. data/vendor/{src → protovis/src}/data/Vector.js +0 -0
  72. data/vendor/{src → protovis/src}/geo/Geo.js +0 -0
  73. data/vendor/{src → protovis/src}/geo/GeoScale.js +0 -0
  74. data/vendor/{src → protovis/src}/geo/LatLng.js +0 -0
  75. data/vendor/{src → protovis/src}/geo/Projection.js +0 -0
  76. data/vendor/{src → protovis/src}/geo/Projections.js +0 -0
  77. data/vendor/{src → protovis/src}/lang/Array.js +0 -0
  78. data/vendor/{src → protovis/src}/lang/init.js +0 -0
  79. data/vendor/{src → protovis/src}/layout/Arc.js +0 -0
  80. data/vendor/{src → protovis/src}/layout/Bullet.js +0 -0
  81. data/vendor/{src → protovis/src}/layout/Cluster.js +0 -0
  82. data/vendor/{src → protovis/src}/layout/Force.js +0 -0
  83. data/vendor/{src → protovis/src}/layout/Grid.js +0 -0
  84. data/vendor/{src → protovis/src}/layout/Hierarchy.js +0 -0
  85. data/vendor/{src → protovis/src}/layout/Horizon.js +0 -0
  86. data/vendor/{src → protovis/src}/layout/Indent.js +0 -0
  87. data/vendor/{src → protovis/src}/layout/Layout.js +0 -0
  88. data/vendor/{src → protovis/src}/layout/Matrix.js +0 -0
  89. data/vendor/{src → protovis/src}/layout/Network.js +0 -0
  90. data/vendor/{src → protovis/src}/layout/Pack.js +0 -0
  91. data/vendor/{src → protovis/src}/layout/Partition.js +0 -0
  92. data/vendor/{src → protovis/src}/layout/Rollup.js +0 -0
  93. data/vendor/{src → protovis/src}/layout/Stack.js +0 -0
  94. data/vendor/{src → protovis/src}/layout/Tree.js +0 -0
  95. data/vendor/{src → protovis/src}/layout/Treemap.js +0 -0
  96. data/vendor/{src → protovis/src}/mark/Anchor.js +0 -0
  97. data/vendor/{src → protovis/src}/mark/Area.js +0 -0
  98. data/vendor/{src → protovis/src}/mark/Bar.js +0 -0
  99. data/vendor/{src → protovis/src}/mark/Dot.js +0 -0
  100. data/vendor/{src → protovis/src}/mark/Ease.js +0 -0
  101. data/vendor/{src → protovis/src}/mark/Image.js +0 -0
  102. data/vendor/{src → protovis/src}/mark/Label.js +0 -0
  103. data/vendor/{src → protovis/src}/mark/Line.js +0 -0
  104. data/vendor/{src → protovis/src}/mark/Mark.js +0 -0
  105. data/vendor/{src → protovis/src}/mark/Panel.js +0 -0
  106. data/vendor/{src → protovis/src}/mark/Rule.js +0 -0
  107. data/vendor/{src → protovis/src}/mark/Transient.js +0 -0
  108. data/vendor/{src → protovis/src}/mark/Transition.js +0 -0
  109. data/vendor/{src → protovis/src}/mark/Wedge.js +0 -0
  110. data/vendor/{src → protovis/src}/physics/BoundConstraint.js +0 -0
  111. data/vendor/{src → protovis/src}/physics/ChargeForce.js +0 -0
  112. data/vendor/{src → protovis/src}/physics/CollisionConstraint.js +0 -0
  113. data/vendor/{src → protovis/src}/physics/Constraint.js +0 -0
  114. data/vendor/{src → protovis/src}/physics/DragForce.js +0 -0
  115. data/vendor/{src → protovis/src}/physics/Force.js +0 -0
  116. data/vendor/{src → protovis/src}/physics/Particle.js +0 -0
  117. data/vendor/{src → protovis/src}/physics/PositionConstraint.js +0 -0
  118. data/vendor/{src → protovis/src}/physics/Quadtree.js +0 -0
  119. data/vendor/{src → protovis/src}/physics/Simulation.js +0 -0
  120. data/vendor/{src → protovis/src}/physics/SpringForce.js +0 -0
  121. data/vendor/{src → protovis/src}/pv-internals.js +0 -0
  122. data/vendor/{src → protovis/src}/pv.js +0 -0
  123. data/vendor/{src → protovis/src}/scene/SvgArea.js +0 -0
  124. data/vendor/{src → protovis/src}/scene/SvgBar.js +0 -0
  125. data/vendor/{src → protovis/src}/scene/SvgCurve.js +0 -0
  126. data/vendor/{src → protovis/src}/scene/SvgDot.js +0 -0
  127. data/vendor/{src → protovis/src}/scene/SvgImage.js +0 -0
  128. data/vendor/{src → protovis/src}/scene/SvgLabel.js +0 -0
  129. data/vendor/{src → protovis/src}/scene/SvgLine.js +0 -0
  130. data/vendor/{src → protovis/src}/scene/SvgPanel.js +0 -0
  131. data/vendor/{src → protovis/src}/scene/SvgRule.js +0 -0
  132. data/vendor/{src → protovis/src}/scene/SvgScene.js +0 -0
  133. data/vendor/{src → protovis/src}/scene/SvgWedge.js +0 -0
  134. data/vendor/{src → protovis/src}/text/DateFormat.js +0 -0
  135. data/vendor/{src → protovis/src}/text/Format.js +0 -0
  136. data/vendor/{src → protovis/src}/text/NumberFormat.js +0 -0
  137. data/vendor/{src → protovis/src}/text/TimeFormat.js +0 -0
  138. metadata +132 -426
  139. metadata.gz.sig +2 -0
  140. data/examples/crimea-line.rb +0 -64
  141. data/vendor/FUTURE +0 -62
  142. data/vendor/Makefile +0 -138
  143. data/vendor/TODO +0 -22
  144. data/vendor/examples/antibiotics/antibiotics-scatter.html +0 -113
  145. data/vendor/examples/antibiotics/antibiotics.html +0 -140
  146. data/vendor/examples/antibiotics/antibiotics.js +0 -20
  147. data/vendor/examples/barley/barley.html +0 -102
  148. data/vendor/examples/barley/barley.js +0 -122
  149. data/vendor/examples/cars/cars.html +0 -90
  150. data/vendor/examples/cars/cars.js +0 -408
  151. data/vendor/examples/clock/clock.html +0 -91
  152. data/vendor/examples/crimea/crimea-grouped-bar.html +0 -65
  153. data/vendor/examples/crimea/crimea-line.html +0 -61
  154. data/vendor/examples/crimea/crimea-stacked-area.html +0 -61
  155. data/vendor/examples/crimea/crimea-stacked-bar.html +0 -60
  156. data/vendor/examples/crimea/crimea.html +0 -100
  157. data/vendor/examples/crimea/crimea.js +0 -33
  158. data/vendor/examples/downloadify/LICENSE.txt +0 -22
  159. data/vendor/examples/downloadify/download.png +0 -0
  160. data/vendor/examples/downloadify/downloadify.html +0 -57
  161. data/vendor/examples/downloadify/downloadify.min.js +0 -3
  162. data/vendor/examples/downloadify/downloadify.swf +0 -0
  163. data/vendor/examples/downloadify/swfobject.js +0 -4
  164. data/vendor/examples/ex.css +0 -17
  165. data/vendor/examples/eyes/eyes.html +0 -53
  166. data/vendor/examples/eyes/matrix.html +0 -44
  167. data/vendor/examples/flowers/flowers.html +0 -109
  168. data/vendor/examples/flowers/flowers.js +0 -154
  169. data/vendor/examples/group-stack/group-stack.html +0 -79
  170. data/vendor/examples/group-stack/headcount.js +0 -23
  171. data/vendor/examples/hotel/hotel.html +0 -76
  172. data/vendor/examples/hotel/hotel.js +0 -245
  173. data/vendor/examples/jobs/jobs.html +0 -71
  174. data/vendor/examples/jobs/jobs.js +0 -1024
  175. data/vendor/examples/jquery-1.4.2.min.js +0 -154
  176. data/vendor/examples/nba/nba.html +0 -83
  177. data/vendor/examples/nba/nba.js +0 -53
  178. data/vendor/examples/nba/nba2.html +0 -82
  179. data/vendor/examples/sankey/gdp2009.js +0 -184
  180. data/vendor/examples/sankey/sankey.html +0 -77
  181. data/vendor/examples/slider/cell.html +0 -112
  182. data/vendor/examples/slider/cell.js +0 -31
  183. data/vendor/examples/slider/horizon.html +0 -85
  184. data/vendor/examples/slider/jquery-ui-1.8rc3.custom.min.js +0 -71
  185. data/vendor/examples/slider/slider.html +0 -50
  186. data/vendor/examples/slider/ui-lightness/images/ui-bg_diagonals-thick_18_b81900_40x40.png +0 -0
  187. data/vendor/examples/slider/ui-lightness/images/ui-bg_diagonals-thick_20_666666_40x40.png +0 -0
  188. data/vendor/examples/slider/ui-lightness/images/ui-bg_flat_10_000000_40x100.png +0 -0
  189. data/vendor/examples/slider/ui-lightness/images/ui-bg_glass_100_f6f6f6_1x400.png +0 -0
  190. data/vendor/examples/slider/ui-lightness/images/ui-bg_glass_100_fdf5ce_1x400.png +0 -0
  191. data/vendor/examples/slider/ui-lightness/images/ui-bg_glass_65_ffffff_1x400.png +0 -0
  192. data/vendor/examples/slider/ui-lightness/images/ui-bg_gloss-wave_35_f6a828_500x100.png +0 -0
  193. data/vendor/examples/slider/ui-lightness/images/ui-bg_highlight-soft_100_eeeeee_1x100.png +0 -0
  194. data/vendor/examples/slider/ui-lightness/images/ui-bg_highlight-soft_75_ffe45c_1x100.png +0 -0
  195. data/vendor/examples/slider/ui-lightness/images/ui-icons_222222_256x240.png +0 -2
  196. data/vendor/examples/slider/ui-lightness/images/ui-icons_228ef1_256x240.png +0 -2
  197. data/vendor/examples/slider/ui-lightness/images/ui-icons_ef8c08_256x240.png +0 -2
  198. data/vendor/examples/slider/ui-lightness/images/ui-icons_ffd27a_256x240.png +0 -2
  199. data/vendor/examples/slider/ui-lightness/images/ui-icons_ffffff_256x240.png +0 -2
  200. data/vendor/examples/slider/ui-lightness/jquery-ui-1.8rc3.custom.css +0 -302
  201. data/vendor/examples/tipsy/jquery.tipsy.js +0 -198
  202. data/vendor/examples/tipsy/tipsy-bar.html +0 -65
  203. data/vendor/examples/tipsy/tipsy-line.html +0 -67
  204. data/vendor/examples/tipsy/tipsy.css +0 -12
  205. data/vendor/examples/tipsy/tipsy.gif +0 -0
  206. data/vendor/examples/tipsy/tipsy.js +0 -66
  207. data/vendor/examples/weather/weather.html +0 -86
  208. data/vendor/examples/weather/weather.js +0 -42
  209. data/vendor/examples/wheat/wheat.html +0 -130
  210. data/vendor/examples/wheat/wheat.js +0 -70
  211. data/vendor/lib/google-compiler/COPYING +0 -202
  212. data/vendor/lib/google-compiler/README +0 -224
  213. data/vendor/lib/google-compiler/compiler-20100201.jar +0 -0
  214. data/vendor/protovis-d3.3.js +0 -15726
  215. data/vendor/test1.html +0 -30
  216. data/vendor/tests/behavior/drag-events.html +0 -47
  217. data/vendor/tests/behavior/drag.html +0 -32
  218. data/vendor/tests/behavior/drag2.html +0 -33
  219. data/vendor/tests/behavior/point-area-stacked.html +0 -73
  220. data/vendor/tests/behavior/point-area-stacked2.html +0 -70
  221. data/vendor/tests/behavior/point-area.html +0 -67
  222. data/vendor/tests/behavior/point-bar.html +0 -62
  223. data/vendor/tests/behavior/point-dot.html +0 -60
  224. data/vendor/tests/behavior/point-line.html +0 -62
  225. data/vendor/tests/behavior/point-lines-grid.html +0 -65
  226. data/vendor/tests/behavior/point-lines.html +0 -61
  227. data/vendor/tests/behavior/point-wedge.html +0 -43
  228. data/vendor/tests/behavior/resize.html +0 -69
  229. data/vendor/tests/behavior/select.html +0 -37
  230. data/vendor/tests/bzr.js +0 -62
  231. data/vendor/tests/center.js +0 -13
  232. data/vendor/tests/data/deviation.html +0 -54
  233. data/vendor/tests/data/histogram-discrete.html +0 -50
  234. data/vendor/tests/data/histogram.html +0 -56
  235. data/vendor/tests/data/log-adjusted.html +0 -48
  236. data/vendor/tests/data/log-ceil.html +0 -48
  237. data/vendor/tests/data/log-floor.html +0 -48
  238. data/vendor/tests/data/log-symmetric.html +0 -48
  239. data/vendor/tests/data/log.html +0 -48
  240. data/vendor/tests/data/max-index.html +0 -36
  241. data/vendor/tests/data/max.html +0 -36
  242. data/vendor/tests/data/min-index.html +0 -36
  243. data/vendor/tests/data/min.html +0 -36
  244. data/vendor/tests/data/ordinal-split-banded.html +0 -45
  245. data/vendor/tests/data/ordinal-split-banded2.html +0 -45
  246. data/vendor/tests/data/ordinal-split-flush.html +0 -51
  247. data/vendor/tests/data/ordinal-split.html +0 -51
  248. data/vendor/tests/data/range.html +0 -105
  249. data/vendor/tests/data/scale-date.html +0 -46
  250. data/vendor/tests/data/scale-date2.html +0 -38
  251. data/vendor/tests/data/scale-date3.html +0 -38
  252. data/vendor/tests/data/scale-date4.html +0 -38
  253. data/vendor/tests/data/scale-degenerate.html +0 -143
  254. data/vendor/tests/data/scale-linear.html +0 -59
  255. data/vendor/tests/data/scale-log.html +0 -60
  256. data/vendor/tests/data/scale-log2.html +0 -60
  257. data/vendor/tests/data/scale-log3.html +0 -60
  258. data/vendor/tests/data/scale-log4.html +0 -60
  259. data/vendor/tests/data/scale-log5.html +0 -60
  260. data/vendor/tests/data/scale-log6.html +0 -60
  261. data/vendor/tests/data/scale-quantile.html +0 -47
  262. data/vendor/tests/data/scale-quantile2.html +0 -50
  263. data/vendor/tests/data/scale-quantile3.html +0 -48
  264. data/vendor/tests/data/scale-root.html +0 -60
  265. data/vendor/tests/data/scale-root2.html +0 -39
  266. data/vendor/tests/data/scale-tick-format.html +0 -54
  267. data/vendor/tests/data/scale-ticks.html +0 -45
  268. data/vendor/tests/data/sum.html +0 -42
  269. data/vendor/tests/data/variance.html +0 -42
  270. data/vendor/tests/diamond.js +0 -40
  271. data/vendor/tests/flare-imports.js +0 -222
  272. data/vendor/tests/flare.js +0 -284
  273. data/vendor/tests/geo/countries-hires.js +0 -257
  274. data/vendor/tests/geo/countries-lores.js +0 -197
  275. data/vendor/tests/geo/population.js +0 -250
  276. data/vendor/tests/geo/scale-aitoff.html +0 -58
  277. data/vendor/tests/geo/scale-gall-peters.html +0 -56
  278. data/vendor/tests/geo/scale-hammer.html +0 -58
  279. data/vendor/tests/geo/scale-identity.html +0 -56
  280. data/vendor/tests/geo/scale-mercator.html +0 -56
  281. data/vendor/tests/geo/scale-sinusoidal.html +0 -57
  282. data/vendor/tests/geo/scale-smart-domain.html +0 -58
  283. data/vendor/tests/geo/scale.html +0 -55
  284. data/vendor/tests/geo/scale2.html +0 -40
  285. data/vendor/tests/geo/us-states.js +0 -61
  286. data/vendor/tests/heatmap.js +0 -63
  287. data/vendor/tests/lang/globals.html +0 -41
  288. data/vendor/tests/lang/init.html +0 -31
  289. data/vendor/tests/layers.js +0 -28
  290. data/vendor/tests/layout/arc-directed.html +0 -33
  291. data/vendor/tests/layout/arc-radial.html +0 -36
  292. data/vendor/tests/layout/arc-undirected.html +0 -32
  293. data/vendor/tests/layout/arc.html +0 -33
  294. data/vendor/tests/layout/arc2.html +0 -32
  295. data/vendor/tests/layout/bullet-multiples.html +0 -60
  296. data/vendor/tests/layout/bullet.html +0 -45
  297. data/vendor/tests/layout/bullets.js +0 -37
  298. data/vendor/tests/layout/cluster-fill-group.html +0 -24
  299. data/vendor/tests/layout/cluster-fill.html +0 -28
  300. data/vendor/tests/layout/cluster-partition-radial-fill.html +0 -43
  301. data/vendor/tests/layout/cluster-radial-fill-radius.html +0 -26
  302. data/vendor/tests/layout/cluster-radial-fill.html +0 -29
  303. data/vendor/tests/layout/cluster-radial-group-fill.html +0 -30
  304. data/vendor/tests/layout/cluster-radial-radius.html +0 -30
  305. data/vendor/tests/layout/cluster-radial.html +0 -28
  306. data/vendor/tests/layout/cluster-radial2.html +0 -33
  307. data/vendor/tests/layout/cluster.html +0 -34
  308. data/vendor/tests/layout/cluster2.html +0 -32
  309. data/vendor/tests/layout/force-toggle.html +0 -46
  310. data/vendor/tests/layout/force.html +0 -45
  311. data/vendor/tests/layout/force2.html +0 -58
  312. data/vendor/tests/layout/force3.html +0 -41
  313. data/vendor/tests/layout/force4.html +0 -45
  314. data/vendor/tests/layout/force5.html +0 -53
  315. data/vendor/tests/layout/grid-cols.html +0 -31
  316. data/vendor/tests/layout/grid-heatmap.html +0 -25
  317. data/vendor/tests/layout/grid-rows.html +0 -31
  318. data/vendor/tests/layout/grid.html +0 -34
  319. data/vendor/tests/layout/horizon-color.html +0 -31
  320. data/vendor/tests/layout/horizon.html +0 -31
  321. data/vendor/tests/layout/indent-toggle.html +0 -62
  322. data/vendor/tests/layout/indent.html +0 -25
  323. data/vendor/tests/layout/indent2.html +0 -33
  324. data/vendor/tests/layout/matrix-sort.html +0 -28
  325. data/vendor/tests/layout/matrix.html +0 -35
  326. data/vendor/tests/layout/network.html +0 -43
  327. data/vendor/tests/layout/pack-bubble.html +0 -45
  328. data/vendor/tests/layout/pack.html +0 -26
  329. data/vendor/tests/layout/pack2.html +0 -32
  330. data/vendor/tests/layout/partition-fill.html +0 -27
  331. data/vendor/tests/layout/partition-fill2.html +0 -22
  332. data/vendor/tests/layout/partition-fill3.html +0 -27
  333. data/vendor/tests/layout/partition-radial-fill-radius.html +0 -25
  334. data/vendor/tests/layout/partition-radial-fill.html +0 -26
  335. data/vendor/tests/layout/partition-radial-fill2.html +0 -23
  336. data/vendor/tests/layout/partition-radial-fill3.html +0 -29
  337. data/vendor/tests/layout/partition-radial-radius.html +0 -29
  338. data/vendor/tests/layout/partition-radial.html +0 -30
  339. data/vendor/tests/layout/partition-radial2.html +0 -33
  340. data/vendor/tests/layout/partition.html +0 -33
  341. data/vendor/tests/layout/partition2.html +0 -32
  342. data/vendor/tests/layout/rollup.html +0 -50
  343. data/vendor/tests/layout/stack-empty.html +0 -27
  344. data/vendor/tests/layout/stack-expand.html +0 -41
  345. data/vendor/tests/layout/stack-reverse.html +0 -42
  346. data/vendor/tests/layout/stack-right.html +0 -42
  347. data/vendor/tests/layout/stack-rule.html +0 -61
  348. data/vendor/tests/layout/stack-visible.html +0 -43
  349. data/vendor/tests/layout/stack.html +0 -53
  350. data/vendor/tests/layout/tree-radial.html +0 -31
  351. data/vendor/tests/layout/tree-radial2.html +0 -34
  352. data/vendor/tests/layout/tree-toggle.html +0 -36
  353. data/vendor/tests/layout/tree.html +0 -31
  354. data/vendor/tests/layout/tree2.html +0 -35
  355. data/vendor/tests/layout/treemap-hierarchy.html +0 -40
  356. data/vendor/tests/layout/treemap-margin.html +0 -26
  357. data/vendor/tests/layout/treemap-round.html +0 -40
  358. data/vendor/tests/layout/treemap-slice.html +0 -34
  359. data/vendor/tests/layout/treemap.html +0 -37
  360. data/vendor/tests/life.js +0 -212
  361. data/vendor/tests/mark/anchor.html +0 -25
  362. data/vendor/tests/mark/area-anchor-chain.html +0 -42
  363. data/vendor/tests/mark/area-anchor-line.html +0 -57
  364. data/vendor/tests/mark/area-anchor-stack.html +0 -35
  365. data/vendor/tests/mark/area-anchor.html +0 -43
  366. data/vendor/tests/mark/area-anchor2.html +0 -33
  367. data/vendor/tests/mark/area-cardinal.html +0 -57
  368. data/vendor/tests/mark/area-monotone.html +0 -57
  369. data/vendor/tests/mark/area-segmented-basis.html +0 -30
  370. data/vendor/tests/mark/area-segmented-cardinal.html +0 -30
  371. data/vendor/tests/mark/area-segmented-monotone.html +0 -30
  372. data/vendor/tests/mark/area-segmented-step.html +0 -44
  373. data/vendor/tests/mark/area-segmented.html +0 -29
  374. data/vendor/tests/mark/area-stacked-cardinal.html +0 -54
  375. data/vendor/tests/mark/area-stacked-monotone.html +0 -54
  376. data/vendor/tests/mark/area-stacked.html +0 -53
  377. data/vendor/tests/mark/area-step.html +0 -43
  378. data/vendor/tests/mark/area-zero.html +0 -32
  379. data/vendor/tests/mark/area.html +0 -57
  380. data/vendor/tests/mark/bar-anchor-stack.html +0 -51
  381. data/vendor/tests/mark/bar-anchor.html +0 -44
  382. data/vendor/tests/mark/bar-column-grouped.html +0 -63
  383. data/vendor/tests/mark/bar-column-stacked.html +0 -56
  384. data/vendor/tests/mark/bar-column.html +0 -54
  385. data/vendor/tests/mark/bar-grouped.html +0 -63
  386. data/vendor/tests/mark/bar-stacked.html +0 -57
  387. data/vendor/tests/mark/bar.html +0 -54
  388. data/vendor/tests/mark/cursor.html +0 -41
  389. data/vendor/tests/mark/def-type.html +0 -23
  390. data/vendor/tests/mark/dot-anchor.html +0 -33
  391. data/vendor/tests/mark/dot-radius.html +0 -22
  392. data/vendor/tests/mark/dot-stroke.html +0 -43
  393. data/vendor/tests/mark/dot.html +0 -52
  394. data/vendor/tests/mark/dot2.html +0 -61
  395. data/vendor/tests/mark/ease.html +0 -90
  396. data/vendor/tests/mark/event-dblclick.html +0 -30
  397. data/vendor/tests/mark/event-prototype.html +0 -45
  398. data/vendor/tests/mark/event-render.html +0 -45
  399. data/vendor/tests/mark/event.html +0 -24
  400. data/vendor/tests/mark/image-color-inherit.html +0 -33
  401. data/vendor/tests/mark/image-color.html +0 -35
  402. data/vendor/tests/mark/image-color2.html +0 -35
  403. data/vendor/tests/mark/image-heatmap.html +0 -29
  404. data/vendor/tests/mark/image.html +0 -32
  405. data/vendor/tests/mark/label-break.html +0 -54
  406. data/vendor/tests/mark/label-decoration.html +0 -22
  407. data/vendor/tests/mark/label-events.html +0 -32
  408. data/vendor/tests/mark/line-anchor.html +0 -42
  409. data/vendor/tests/mark/line-basis.html +0 -54
  410. data/vendor/tests/mark/line-brownian.html +0 -57
  411. data/vendor/tests/mark/line-cardinal.html +0 -77
  412. data/vendor/tests/mark/line-catmull-rom.html +0 -78
  413. data/vendor/tests/mark/line-curve.html +0 -65
  414. data/vendor/tests/mark/line-eccentricity.html +0 -39
  415. data/vendor/tests/mark/line-fill.html +0 -24
  416. data/vendor/tests/mark/line-join.html +0 -51
  417. data/vendor/tests/mark/line-monotone-non-monotone.html +0 -53
  418. data/vendor/tests/mark/line-monotone-two-way.html +0 -61
  419. data/vendor/tests/mark/line-monotone.html +0 -53
  420. data/vendor/tests/mark/line-polar.html +0 -36
  421. data/vendor/tests/mark/line-segmented-basis.html +0 -57
  422. data/vendor/tests/mark/line-segmented-cardinal.html +0 -80
  423. data/vendor/tests/mark/line-segmented-join.html +0 -52
  424. data/vendor/tests/mark/line-segmented-monotone.html +0 -56
  425. data/vendor/tests/mark/line-segmented-polar.html +0 -30
  426. data/vendor/tests/mark/line-segmented-step.html +0 -41
  427. data/vendor/tests/mark/line-segmented-step2.html +0 -32
  428. data/vendor/tests/mark/line-segmented.html +0 -30
  429. data/vendor/tests/mark/line-step.html +0 -39
  430. data/vendor/tests/mark/line-tension.html +0 -59
  431. data/vendor/tests/mark/line.html +0 -51
  432. data/vendor/tests/mark/panel-anchor.html +0 -37
  433. data/vendor/tests/mark/panel-anchor2.html +0 -31
  434. data/vendor/tests/mark/panel-anchor3.html +0 -22
  435. data/vendor/tests/mark/panel-anchor4.html +0 -28
  436. data/vendor/tests/mark/panel-anchor5.html +0 -28
  437. data/vendor/tests/mark/panel-append.html +0 -29
  438. data/vendor/tests/mark/panel-canvas.html +0 -107
  439. data/vendor/tests/mark/panel-fill.html +0 -50
  440. data/vendor/tests/mark/panel-mouse.html +0 -53
  441. data/vendor/tests/mark/panel-transform.html +0 -67
  442. data/vendor/tests/mark/property-cast.html +0 -24
  443. data/vendor/tests/mark/render-partial.html +0 -42
  444. data/vendor/tests/mark/rule-anchor.html +0 -29
  445. data/vendor/tests/mark/title.html +0 -41
  446. data/vendor/tests/mark/transition-anchor.html +0 -47
  447. data/vendor/tests/mark/transition-wedge.html +0 -47
  448. data/vendor/tests/mark/transition.html +0 -106
  449. data/vendor/tests/mark/wedge-donut.html +0 -35
  450. data/vendor/tests/mark/wedge-implied.html +0 -42
  451. data/vendor/tests/mark/wedge-pie.html +0 -37
  452. data/vendor/tests/mark/wedge-ring.html +0 -27
  453. data/vendor/tests/miserables.js +0 -348
  454. data/vendor/tests/physics/dorling.html +0 -70
  455. data/vendor/tests/physics/simulation.html +0 -56
  456. data/vendor/tests/social.js +0 -28
  457. data/vendor/tests/stanford.png +0 -0
  458. data/vendor/tests/style.css +0 -5
  459. data/vendor/tests/testify.css +0 -29
  460. data/vendor/tests/testify.js +0 -16
  461. data/vendor/tests/text/format-number.html +0 -75
metadata.gz.sig ADDED
@@ -0,0 +1,2 @@
1
+ "�H�v��Xj���=d��|���.�|��(��/�X{�s���~�d%�:��y$��"/^�:��8)q��dp��É@<�M
2
+ b(S&���UKe
@@ -1,64 +0,0 @@
1
- $:.unshift(File.dirname(__FILE__)+"/../lib")
2
- require 'rubyvis'
3
- causes = ["wounds", "other", "disease"];
4
-
5
- crimea = [
6
- { date: "4/1854", wounds: 0, other: 110, disease: 110 },
7
- { date: "5/1854", wounds: 0, other: 95, disease: 105 },
8
- { date: "6/1854", wounds: 0, other: 40, disease: 95 },
9
- { date: "7/1854", wounds: 0, other: 140, disease: 520 },
10
- { date: "8/1854", wounds: 20, other: 150, disease: 800 },
11
- { date: "9/1854", wounds: 220, other: 230, disease: 740 },
12
- { date: "10/1854", wounds: 305, other: 310, disease: 600 },
13
- { date: "11/1854", wounds: 480, other: 290, disease: 820 },
14
- { date: "12/1854", wounds: 295, other: 310, disease: 1100 },
15
- { date: "1/1855", wounds: 230, other: 460, disease: 1440 },
16
- { date: "2/1855", wounds: 180, other: 520, disease: 1270 },
17
- { date: "3/1855", wounds: 155, other: 350, disease: 935 },
18
- { date: "4/1855", wounds: 195, other: 195, disease: 560 },
19
- { date: "5/1855", wounds: 180, other: 155, disease: 550 },
20
- { date: "6/1855", wounds: 330, other: 130, disease: 650 },
21
- { date: "7/1855", wounds: 260, other: 130, disease: 430 },
22
- { date: "8/1855", wounds: 290, other: 110, disease: 490 },
23
- { date: "9/1855", wounds: 355, other: 100, disease: 290 },
24
- { date: "10/1855", wounds: 135, other: 95, disease: 245 },
25
- { date: "11/1855", wounds: 100, other: 140, disease: 325 },
26
- { date: "12/1855", wounds: 40, other: 120, disease: 215 },
27
- { date: "1/1856", wounds: 0, other: 160, disease: 160 },
28
- { date: "2/1856", wounds: 0, other: 100, disease: 100 },
29
- { date: "3/1856", wounds: 0, other: 125, disease: 90 }
30
- ];
31
- format = pv.Format.date("%m/%y");
32
- crimea=crimea.map {|d| d[:date] = format.parse(d[:date]); d}
33
-
34
-
35
-
36
-
37
- w = 545
38
- h = 280
39
- x = pv.Scale.linear(crimea, lambda {|d| d[:date]}).range(0, w)
40
- y = pv.Scale.linear(0, 1500).range(0, h)
41
-
42
- fill = pv.colors("lightpink", "darkgray", "lightblue")
43
- format = pv.Format.date("%b")
44
-
45
- vis = pv.Panel.new()
46
- .width(w)
47
- .height(h)
48
- .margin(19.5)
49
- .right(40);
50
-
51
- vis.add(pv.Panel)
52
- .data(causes)
53
- .add(pv.Line)
54
- .data(crimea)
55
- .left(lambda {|d| x.scale(d.date)})
56
- .bottom(lambda {|d,t| y.scale(d[t])})
57
- .strokeStyle(fill.by(pv.parent))
58
- .lineWidth(3);
59
-
60
- vis.add(pv.Label).data(x.ticks()).left(x).bottom(0).text_baseline("top").text_margin(5).text(pv.Format.date("%b"));
61
-
62
- vis.add(pv.Rule).data(y.ticks()).bottom(y).stroke_style(lambda {|i| i ? "#ccc" : "black"}).anchor("right").add(pv.Label).visible(lambda {!(self.index & 1)}).textMargin(6);
63
-
64
- vis.render()
data/vendor/FUTURE DELETED
@@ -1,62 +0,0 @@
1
- *
2
- - use === and !== instead of == and !=
3
- - force type conversion of input arguments in public API?
4
- - use array push rather than string concatentation to improve performance?
5
- - use Object.create instead of pv.extend, if available
6
-
7
- data/?
8
- - AJAX helper? or refer to jQuery
9
-
10
- data/Scale.js
11
- - allow customization of data ticks (e.g., "3 months", "5 minutes")
12
- - greedily convert range to the expected type (for colors?)
13
- - ignore undefined values when computing min/max for domains
14
-
15
- mark/Mark.js
16
- - event handlers should be inherited?
17
- - antialias doesn't always work as expected; requires pixel rounding?
18
- - allow mixin rather than single inheritance?
19
- - linear and radial gradient fills
20
- - pattern fills
21
- - drop shadows, blurring, other graphical effects?
22
- - animation
23
- - faster incremental rendering (detect properties)
24
- - remove first, last, cousin, sibling methods?
25
- - dot-dash strokes using stroke-dasharray
26
-
27
- mark/Bar.js
28
- - rounded corners
29
-
30
- mark/Line.js
31
- - support fillStyle on segmented lines
32
- - spline interpolation
33
- - arrows (markers)?
34
-
35
- mark/Label.js
36
- - text metrics API for smart label placement
37
-
38
- mark/Area.js
39
- - spline interpolation
40
-
41
- mark/Area.Radial.js
42
- mark/Line.Radial.js
43
- mark/Bar.Radial.js
44
-
45
- mark/Image.js
46
- - scale / tile / center / fill / preserveAspectRatio
47
-
48
- physics/LinkConstraint.js
49
- - should support an alpha parameter, like pv.Constraint.position
50
-
51
- layout/Tree.js
52
- - allow depth and breadth offset to be computed automatically
53
-
54
- layout/Force.js
55
- - smarter default rest length / charge force constant
56
-
57
- behavior/Pan.js
58
- - custom bounds
59
- - lock one axis
60
-
61
- behavior/Point.js
62
- - compute true distance from mouse to perimeter (e.g., wedge)
data/vendor/Makefile DELETED
@@ -1,138 +0,0 @@
1
- JS_LANG_FILES = \
2
- src/lang/Array.js
3
-
4
- JS_CORE_FILES = \
5
- src/pv.js \
6
- src/pv-internals.js \
7
- src/lang/init.js \
8
- src/text/Format.js \
9
- src/text/DateFormat.js \
10
- src/text/TimeFormat.js \
11
- src/text/NumberFormat.js \
12
- src/data/Arrays.js \
13
- src/data/Numbers.js \
14
- src/data/Objects.js \
15
- src/data/Dom.js \
16
- src/data/Tree.js \
17
- src/data/Nest.js \
18
- src/data/Flatten.js \
19
- src/data/Vector.js \
20
- src/data/Transform.js \
21
- src/data/Scale.js \
22
- src/data/QuantitativeScale.js \
23
- src/data/LinearScale.js \
24
- src/data/LogScale.js \
25
- src/data/RootScale.js \
26
- src/data/OrdinalScale.js \
27
- src/data/QuantileScale.js \
28
- src/data/Histogram.js \
29
- src/color/Color.js \
30
- src/color/Colors.js \
31
- src/color/Ramp.js \
32
- src/scene/SvgScene.js \
33
- src/scene/SvgCurve.js \
34
- src/scene/SvgArea.js \
35
- src/scene/SvgBar.js \
36
- src/scene/SvgDot.js \
37
- src/scene/SvgImage.js \
38
- src/scene/SvgLabel.js \
39
- src/scene/SvgLine.js \
40
- src/scene/SvgPanel.js \
41
- src/scene/SvgRule.js \
42
- src/scene/SvgWedge.js \
43
- src/mark/Mark.js \
44
- src/mark/Anchor.js \
45
- src/mark/Area.js \
46
- src/mark/Bar.js \
47
- src/mark/Dot.js \
48
- src/mark/Label.js \
49
- src/mark/Line.js \
50
- src/mark/Rule.js \
51
- src/mark/Panel.js \
52
- src/mark/Image.js \
53
- src/mark/Wedge.js \
54
- src/mark/Ease.js \
55
- src/mark/Transition.js \
56
- src/mark/Transient.js
57
-
58
- JS_LAYOUT_FILES = \
59
- src/physics/Particle.js \
60
- src/physics/Simulation.js \
61
- src/physics/Quadtree.js \
62
- src/physics/Force.js \
63
- src/physics/ChargeForce.js \
64
- src/physics/DragForce.js \
65
- src/physics/SpringForce.js \
66
- src/physics/Constraint.js \
67
- src/physics/CollisionConstraint.js \
68
- src/physics/PositionConstraint.js \
69
- src/physics/BoundConstraint.js \
70
- src/layout/Layout.js \
71
- src/layout/Network.js \
72
- src/layout/Hierarchy.js \
73
- src/layout/Grid.js \
74
- src/layout/Stack.js \
75
- src/layout/Treemap.js \
76
- src/layout/Tree.js \
77
- src/layout/Indent.js \
78
- src/layout/Pack.js \
79
- src/layout/Force.js \
80
- src/layout/Cluster.js \
81
- src/layout/Partition.js \
82
- src/layout/Arc.js \
83
- src/layout/Horizon.js \
84
- src/layout/Rollup.js \
85
- src/layout/Matrix.js \
86
- src/layout/Bullet.js \
87
- src/behavior/Behavior.js \
88
- src/behavior/Drag.js \
89
- src/behavior/Point.js \
90
- src/behavior/Select.js \
91
- src/behavior/Resize.js \
92
- src/behavior/Pan.js \
93
- src/behavior/Zoom.js
94
-
95
- JS_GEO_FILES = \
96
- src/geo/Geo.js \
97
- src/geo/LatLng.js \
98
- src/geo/Projection.js \
99
- src/geo/Projections.js \
100
- src/geo/GeoScale.js
101
-
102
- JS_FILES = \
103
- $(JS_LANG_FILES) \
104
- $(JS_CORE_FILES) \
105
- $(JS_LAYOUT_FILES) \
106
- $(JS_GEO_FILES)
107
-
108
- JS_COMPILER = \
109
- java -jar lib/google-compiler/compiler-20100201.jar \
110
- --charset UTF-8 \
111
- --warning_level=QUIET
112
-
113
- JSDOC_HOME = /Library/jsdoc-toolkit
114
- JSDOC = java -jar $(JSDOC_HOME)/jsrun.jar $(JSDOC_HOME)/app/run.js
115
-
116
- all: protovis-d3.3.js protovis-r3.3.js
117
- protovis-d3.3.js: $(JS_FILES)
118
- protovis-r3.3.js: $(JS_FILES)
119
-
120
- %-d3.3.js: Makefile
121
- grep ' ' -Hn $(filter %.js,$^) && echo "ERROR: tab" && exit 1 || true
122
- grep '
123
- grep ' $$' -Hn $(filter %.js,$^) && echo "ERROR: trailing space" && exit 1 || true
124
- rm -f $@
125
- echo "// $(shell git rev-parse HEAD)" >> $@
126
- cat $(filter %.js,$^) >> $@
127
-
128
- %-r3.3.js:: Makefile
129
- rm -f $@
130
- echo "// $(shell git rev-parse --short HEAD)" >> $@
131
- cat $(filter %.js,$^) | $(JS_COMPILER) >> $@
132
-
133
- jsdoc: $(JS_FILES) Makefile
134
- rm -rf jsdoc
135
- $(JSDOC) -a -t=$(JSDOC_HOME)/templates/jsdoc -d=$@ -E="^pv-" $(JS_FILES)
136
-
137
- clean:
138
- rm -rf protovis-d3.3.js protovis-r3.3.js jsdoc
data/vendor/TODO DELETED
@@ -1,22 +0,0 @@
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
@@ -1,113 +0,0 @@
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>
@@ -1,140 +0,0 @@
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>