vega-extension.vg.json 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197
  1. {
  2. "$schema": "https://vega.github.io/schema/vega/v3.0.json",
  3. "description": "A simple bar chart with embedded data.",
  4. "autosize": "pad",
  5. "padding": 5,
  6. "height": 200,
  7. "style": "cell",
  8. "data": [
  9. {
  10. "name": "source_0",
  11. "values": [
  12. {
  13. "a": "A",
  14. "b": 28
  15. },
  16. {
  17. "a": "B",
  18. "b": 55
  19. },
  20. {
  21. "a": "C",
  22. "b": 43
  23. },
  24. {
  25. "a": "D",
  26. "b": 91
  27. },
  28. {
  29. "a": "E",
  30. "b": 81
  31. },
  32. {
  33. "a": "F",
  34. "b": 53
  35. },
  36. {
  37. "a": "G",
  38. "b": 19
  39. },
  40. {
  41. "a": "H",
  42. "b": 87
  43. },
  44. {
  45. "a": "I",
  46. "b": 52
  47. }
  48. ]
  49. },
  50. {
  51. "name": "data_0",
  52. "source": "source_0",
  53. "transform": [
  54. {
  55. "type": "formula",
  56. "expr": "toNumber(datum[\"b\"])",
  57. "as": "b"
  58. },
  59. {
  60. "type": "filter",
  61. "expr": "datum[\"b\"] !== null && !isNaN(datum[\"b\"])"
  62. }
  63. ]
  64. }
  65. ],
  66. "signals": [
  67. {
  68. "name": "x_step",
  69. "value": 21
  70. },
  71. {
  72. "name": "width",
  73. "update": "bandspace(domain('x').length, 0.1, 0.05) * x_step"
  74. }
  75. ],
  76. "marks": [
  77. {
  78. "name": "marks",
  79. "type": "rect",
  80. "style": ["bar"],
  81. "from": {
  82. "data": "data_0"
  83. },
  84. "encode": {
  85. "update": {
  86. "x": {
  87. "scale": "x",
  88. "field": "a"
  89. },
  90. "width": {
  91. "scale": "x",
  92. "band": true
  93. },
  94. "y": {
  95. "scale": "y",
  96. "field": "b"
  97. },
  98. "y2": {
  99. "scale": "y",
  100. "value": 0
  101. },
  102. "fill": {
  103. "value": "#4c78a8"
  104. }
  105. }
  106. }
  107. }
  108. ],
  109. "scales": [
  110. {
  111. "name": "x",
  112. "type": "band",
  113. "domain": {
  114. "data": "data_0",
  115. "field": "a",
  116. "sort": true
  117. },
  118. "range": {
  119. "step": {
  120. "signal": "x_step"
  121. }
  122. },
  123. "paddingInner": 0.1,
  124. "paddingOuter": 0.05
  125. },
  126. {
  127. "name": "y",
  128. "type": "linear",
  129. "domain": {
  130. "data": "data_0",
  131. "field": "b"
  132. },
  133. "range": [
  134. {
  135. "signal": "height"
  136. },
  137. 0
  138. ],
  139. "nice": true,
  140. "zero": true
  141. }
  142. ],
  143. "axes": [
  144. {
  145. "scale": "x",
  146. "orient": "bottom",
  147. "labelOverlap": true,
  148. "title": "a",
  149. "zindex": 1,
  150. "encode": {
  151. "labels": {
  152. "update": {
  153. "angle": {
  154. "value": 270
  155. },
  156. "align": {
  157. "value": "right"
  158. },
  159. "baseline": {
  160. "value": "middle"
  161. }
  162. }
  163. }
  164. }
  165. },
  166. {
  167. "scale": "y",
  168. "orient": "left",
  169. "labelOverlap": true,
  170. "tickCount": {
  171. "signal": "ceil(height/40)"
  172. },
  173. "title": "b",
  174. "zindex": 1
  175. },
  176. {
  177. "scale": "y",
  178. "orient": "left",
  179. "domain": false,
  180. "grid": true,
  181. "labels": false,
  182. "maxExtent": 0,
  183. "minExtent": 0,
  184. "tickCount": {
  185. "signal": "ceil(height/40)"
  186. },
  187. "ticks": false,
  188. "zindex": 0,
  189. "gridScale": "x"
  190. }
  191. ],
  192. "config": {
  193. "axisY": {
  194. "minExtent": 30
  195. }
  196. }
  197. }