BarRenderer.js 2.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. Ext.require('Ext.chart.*');
  2. Ext.require(['Ext.Window', 'Ext.fx.target.Sprite', 'Ext.layout.container.Fit', 'Ext.window.MessageBox']);
  3. Ext.onReady(function () {
  4. var chart = Ext.create('Ext.chart.Chart', {
  5. xtype: 'chart',
  6. animate: true,
  7. style: 'background:#fff',
  8. shadow: false,
  9. store: store1,
  10. axes: [{
  11. type: 'Numeric',
  12. position: 'bottom',
  13. fields: ['data1'],
  14. label: {
  15. renderer: Ext.util.Format.numberRenderer('0,0')
  16. },
  17. title: 'Number of Hits',
  18. minimum: 0
  19. }, {
  20. type: 'Category',
  21. position: 'left',
  22. fields: ['name'],
  23. title: 'Month of the Year'
  24. }],
  25. series: [{
  26. type: 'bar',
  27. axis: 'bottom',
  28. label: {
  29. display: 'insideEnd',
  30. field: 'data1',
  31. renderer: Ext.util.Format.numberRenderer('0'),
  32. orientation: 'horizontal',
  33. color: '#333',
  34. 'text-anchor': 'middle',
  35. contrast: true
  36. },
  37. xField: 'name',
  38. yField: ['data1'],
  39. //color renderer
  40. renderer: function(sprite, record, attr, index, store) {
  41. var fieldValue = Math.random() * 20 + 10;
  42. var value = (record.get('data1') >> 0) % 5;
  43. var color = ['rgb(213, 70, 121)',
  44. 'rgb(44, 153, 201)',
  45. 'rgb(146, 6, 157)',
  46. 'rgb(49, 149, 0)',
  47. 'rgb(249, 153, 0)'][value];
  48. return Ext.apply(attr, {
  49. fill: color
  50. });
  51. }
  52. }]
  53. });
  54. var win = Ext.create('Ext.Window', {
  55. width: 800,
  56. height: 600,
  57. minHeight: 400,
  58. minWidth: 550,
  59. hidden: false,
  60. maximizable: true,
  61. title: 'Bar Renderer',
  62. renderTo: Ext.getBody(),
  63. layout: 'fit',
  64. tbar: [{
  65. text: 'Save Chart',
  66. handler: function() {
  67. Ext.MessageBox.confirm('Confirm Download', 'Would you like to download the chart as an image?', function(choice){
  68. if(choice == 'yes'){
  69. chart.save({
  70. type: 'image/png'
  71. });
  72. }
  73. });
  74. }
  75. }, {
  76. text: 'Reload Data',
  77. handler: function() {
  78. store1.loadData(generateData());
  79. }
  80. }],
  81. items: chart
  82. });
  83. });