{"id":1341,"date":"2026-07-27T02:16:13","date_gmt":"2026-07-27T02:16:13","guid":{"rendered":"https:\/\/www.vpascode.com\/ru\/docs\/uncategorized\/echarts-playbook\/heatmap-chart-grid-based-density-and-pattern-mapping\/"},"modified":"2026-07-29T08:50:46","modified_gmt":"2026-07-29T08:50:46","slug":"heatmap-chart-grid-based-density-and-pattern-mapping-guide","status":"publish","type":"ld_docs","link":"https:\/\/www.vpascode.com\/ru\/docs\/vpascode-docs\/echarts-playbook\/heatmap-chart-grid-based-density-and-pattern-mapping-guide\/","title":{"rendered":"Heatmap Chart: Grid-Based Density and Pattern Mapping"},"content":{"rendered":"<p>When analyzing activity density, continuous trends, or correlations across two discrete dimensions, the <strong>Heatmap Chart<\/strong> provides a powerful visual solution. By mapping data values to a dynamic color scale across a two-dimensional grid, heatmaps allow users to spot <em>peak usage hours, seasonal bottlenecks, or matrix relationships<\/em> instantly\u2014such as server load by hour and day of the week, user activity logs, or cross-category correlation matrices.<\/p>\n<h2>The Mechanics of Heatmaps<\/h2>\n<p>In Apache ECharts, heatmaps use <code>type: 'heatmap'<\/code> on a two-dimensional Cartesian grid. Each data point expects a 3-element array formatted as <code>[xAxisIndex, yAxisIndex, value]<\/code>. A required <code>visualMap<\/code> component maps numerical values to a continuous or piecewise color gradient.<\/p>\n<h3>1. Essential Setup<\/h3>\n<p>To build a basic heatmap chart, declare categorical axes for both horizontal (<code>xAxis<\/code>) and vertical (<code>yAxis<\/code>) scales, pass <code>[xIndex, yIndex, value]<\/code> arrays into your series data, and configure a <code>visualMap<\/code> component:<\/p>\n            <div class=\"vpascode-viewer-container vpascode-fancy-active\">\r\n                                <div class=\"vpascode-header\">\r\n                    <span class=\"vpascode-lang-label\">ECharts<\/span>\r\n                    <a href=\"https:\/\/www.vpascode.com\/#echarts:eNqVlFFr2zAQx98D+Q56Kd4grLYse4nLHrqNwWB7amEPIQ9qosYG2zK20iYr+e67051rxxuDCsP9pTvd\/XyyvLV150RuD20nPol1EEldBQsRsFFkUjJLMlHIVjYUS0aRScksG44Fu7mZz7a+0E6fqM5PW4PGiPuD6Vj+Mrv6dXKfAxPrb22BCvPMZ9fX4qt2WjzattIuE+vj93pnjgtxYvuky4PZDCUhFkrOZwLGOlwIeJLNQqwjLyOU0ssQZTxIRQESdeK1VKhTr+Ml6o9eKx+zpHWffEXxPk9ERSOaUNl0sxiIYClmoohry0HGXkZMhDJhItByyUSgVcJEoJOQiXA9ZCKMlz1R1L9aRGXVmAjKSyaSQ4\/kQCSHHmFAxEQYlDIRaBUxEeolE8m+dyvau+qJYILrRCR9Twai2BN6opjhpJc9UTz0CKViIvSETIQ5VkwEOkmYKO5PcEXJk54o7psdUdlkTKT8KXoixQcovYyYSDGnotWQiVT\/XaS0UTIR6pSJVH+yK9q77IlgsnrtkS8wn9G9sI0rbA2f+gshOmtLVzRZP8fR2K7AqEwEzjYBOc78Tnu4ZRfRuSn2OdywIAmvgsWwDlszvNpXkwTH22PRXWRwp8ZA6FY7s7ftaZwE72VGf57RateUhbttDbheRJfb50y49mDE+bLS6e2V8Nfz9kJPRXfQ5U992caqgA6Go2yVPmYiHa9sdbk9lPqhNJR45LJtYWpsaw7qt62dLse4pXlE5xZiTDt2PFjnbIWdT6ad7wzkhIash+gRLo5aV9ifu1PnTCV+WL0bpx51MDfaVbqZevsmOj1xwDuaMpuW81CvXb30nScZTNXkupucZz8KwL1zJ2zjP7xURu\/s8+fy0GZwxxb\/C\/piSwtRQbt\/0O\/op4zPh+R98Pe284R6mLKEm3e++QMm1JxY\" \r\n                       target=\"_blank\" \r\n                       rel=\"noopener noreferrer\" \r\n                       class=\"vpascode-fancy-btn\">\r\n                        <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"margin-right: 8px;\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg>\r\n                        <span>Edit ECharts in VPasCode<\/span>\r\n                    <\/a>\r\n                <\/div>\r\n                                <div class=\"vpascode-code-wrapper\">\r\n                    <pre class=\"lang-echarts\"><code data-language=\"echarts\" class=\"language-echarts\">const hours = ['12am', '2am', '4am', '6am', '8am', '10am', '12pm', '2pm', '4pm', '6pm', '8pm', '10pm'];\r\nconst days = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday'];\r\n\r\n\/\/ Data format: [xIndex, yIndex, value]\r\nconst data = [\r\n    [0, 0, 5], [1, 0, 1], [2, 0, 0], [3, 0, 0], [4, 0, 12], [5, 0, 24], [6, 0, 38], [7, 0, 42], [8, 0, 35], [9, 0, 20], [10, 0, 10], [11, 0, 6],\r\n    [0, 1, 3], [1, 1, 0], [2, 1, 0], [3, 1, 1], [4, 1, 15], [5, 1, 28], [6, 1, 45], [7, 1, 50], [8, 1, 40], [9, 1, 22], [10, 1, 12], [11, 1, 4],\r\n    [0, 2, 2], [1, 2, 1], [2, 2, 0], [3, 2, 0], [4, 2, 11], [5, 2, 26], [6, 2, 41], [7, 2, 48], [8, 2, 38], [9, 2, 19], [10, 2, 8],  [11, 2, 3],\r\n    [0, 3, 4], [1, 3, 2], [2, 3, 0], [3, 3, 1], [4, 3, 14], [5, 3, 30], [6, 3, 49], [7, 3, 55], [8, 3, 42], [9, 3, 25], [10, 3, 15], [11, 3, 5],\r\n    [0, 4, 6], [1, 4, 3], [2, 4, 1], [3, 4, 2], [4, 4, 10], [5, 4, 20], [6, 4, 32], [7, 4, 36], [8, 4, 28], [9, 4, 18], [10, 4, 9],  [11, 4, 2]\r\n];\r\n\r\noption = {\r\n    tooltip: {\r\n        position: 'top'\r\n    },\r\n    grid: {\r\n        height: '50%',\r\n        top: '10%'\r\n    },\r\n    xAxis: {\r\n        type: 'category',\r\n        data: hours,\r\n        splitArea: { show: true }\r\n    },\r\n    yAxis: {\r\n        type: 'category',\r\n        data: days,\r\n        splitArea: { show: true }\r\n    },\r\n    visualMap: {\r\n        min: 0,\r\n        max: 60,\r\n        calculable: true,\r\n        orient: 'horizontal',\r\n        left: 'center',\r\n        bottom: '15%'\r\n    },\r\n    series: [\r\n        {\r\n            name: 'System Load',\r\n            type: 'heatmap',\r\n            data: data,\r\n            label: {\r\n                show: true\r\n            },\r\n            emphasis: {\r\n                itemStyle: {\r\n                    shadowBlur: 10,\r\n                    shadowColor: 'rgba(0, 0, 0, 0.5)'\r\n                }\r\n            }\r\n        }\r\n    ]\r\n};<\/code><\/pre>                <\/div>\r\n                <div class=\"vpascode-actions\">\r\n                    <a href=\"https:\/\/www.vpascode.com\/#echarts:eNqVlFFr2zAQx98D+Q56Kd4grLYse4nLHrqNwWB7amEPIQ9qosYG2zK20iYr+e67051rxxuDCsP9pTvd\/XyyvLV150RuD20nPol1EEldBQsRsFFkUjJLMlHIVjYUS0aRScksG44Fu7mZz7a+0E6fqM5PW4PGiPuD6Vj+Mrv6dXKfAxPrb22BCvPMZ9fX4qt2WjzattIuE+vj93pnjgtxYvuky4PZDCUhFkrOZwLGOlwIeJLNQqwjLyOU0ssQZTxIRQESdeK1VKhTr+Ml6o9eKx+zpHWffEXxPk9ERSOaUNl0sxiIYClmoohry0HGXkZMhDJhItByyUSgVcJEoJOQiXA9ZCKMlz1R1L9aRGXVmAjKSyaSQ4\/kQCSHHmFAxEQYlDIRaBUxEeolE8m+dyvau+qJYILrRCR9Twai2BN6opjhpJc9UTz0CKViIvSETIQ5VkwEOkmYKO5PcEXJk54o7psdUdlkTKT8KXoixQcovYyYSDGnotWQiVT\/XaS0UTIR6pSJVH+yK9q77IlgsnrtkS8wn9G9sI0rbA2f+gshOmtLVzRZP8fR2K7AqEwEzjYBOc78Tnu4ZRfRuSn2OdywIAmvgsWwDlszvNpXkwTH22PRXWRwp8ZA6FY7s7ftaZwE72VGf57RateUhbttDbheRJfb50y49mDE+bLS6e2V8Nfz9kJPRXfQ5U992caqgA6Go2yVPmYiHa9sdbk9lPqhNJR45LJtYWpsaw7qt62dLse4pXlE5xZiTDt2PFjnbIWdT6ad7wzkhIash+gRLo5aV9ifu1PnTCV+WL0bpx51MDfaVbqZevsmOj1xwDuaMpuW81CvXb30nScZTNXkupucZz8KwL1zJ2zjP7xURu\/s8+fy0GZwxxb\/C\/piSwtRQbt\/0O\/op4zPh+R98Pe284R6mLKEm3e++QMm1JxY\" \r\n                       target=\"_blank\" \r\n                       rel=\"noopener noreferrer\" \r\n                       class=\"vpascode-fancy-btn\">\r\n                        <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"margin-right: 6px;\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg>\r\n                        <span>Edit ECharts in VPasCode<\/span>\r\n                    <\/a>\r\n                <\/div>\r\n            <\/div>\r\n            \n<p id=\"xDvgAUx\"><img fetchpriority=\"high\" decoding=\"async\" width=\"1878\" height=\"1131\" class=\"alignnone size-full wp-image-1342 \" src=\"https:\/\/www.vpascode.com\/ru\/wp-content\/uploads\/sites\/11\/2026\/07\/img_6a66bf9404a54.png\" alt=\"\" srcset=\"https:\/\/www.vpascode.com\/ru\/wp-content\/uploads\/sites\/11\/2026\/07\/img_6a66bf9404a54.png 1878w, https:\/\/www.vpascode.com\/ru\/wp-content\/uploads\/sites\/11\/2026\/07\/img_6a66bf9404a54-300x181.png 300w, https:\/\/www.vpascode.com\/ru\/wp-content\/uploads\/sites\/11\/2026\/07\/img_6a66bf9404a54-1024x617.png 1024w, https:\/\/www.vpascode.com\/ru\/wp-content\/uploads\/sites\/11\/2026\/07\/img_6a66bf9404a54-768x463.png 768w, https:\/\/www.vpascode.com\/ru\/wp-content\/uploads\/sites\/11\/2026\/07\/img_6a66bf9404a54-1536x925.png 1536w\" sizes=\"(max-width: 1878px) 100vw, 1878px\" \/><\/p>\n<p>&nbsp;<\/p>\n<h2>Advanced Structural Techniques<\/h2>\n<p>Heatmaps can be customized with discrete color steps, distinct cell gaps, or combined with calendar coordinates to track activity over a full year.<\/p>\n<h3>1. Piecewise Color Mapping and Custom Cell Spacing<\/h3>\n<p>Instead of a continuous color gradient, use a piecewise <code>visualMap<\/code> to group values into distinct operational bands (e.g., Low, Medium, High):<\/p>\n            <div class=\"vpascode-viewer-container vpascode-fancy-active\">\r\n                                <div class=\"vpascode-header\">\r\n                    <span class=\"vpascode-lang-label\">ECharts<\/span>\r\n                    <a href=\"https:\/\/www.vpascode.com\/#echarts:eNqdkj1v2zAQhvcC+Q8HFIEWDTIlObaKDm6WLCkSdOhgeKClc0RAMgXqnNgV8t971EdEqc5SQhBe3sfD4x11RUof4Ts0N1+AF2ldkKoSaKDStbLOBDzSlQfvfhdy3pxVnQwJbdKlQo5KJeGLNhfPH12ZJJnA1nteeD54z6L9h+0\/8nZd3AC+\/A\/4yejslBJsLHPY\/HA39\/NzXlV9ksWjrK6dVSlM8U3V6B5WKu5C4BrkOYFF4JoKPJCtFY+Exk3eayJdsiu+dc3aKA5lc87qjz6SLFx3Wwd3Yzua7Gq6WlaBD4XcY8H5D+olhyc0B21KeUy5cEh1oQ27vi6WMozkOLsZJmJMe5W79ch71Bka7rjLOcRrDPZXOTY9dNJ\/ImY1bIj4dvx6XEqWiqVYMmWEzEZTI3dleutmemI\/phwllbLyZvX0r2JqtGvLN+VvFe982C5avRZWi1bfrawOuxjW1wGcFw0A\/uK4B7Beih7AOow\/A3CsGACsw6AHWMZQAetI7Kb5c17f6wbqXL8lQOaE\/4xGEZa\/6FJgMm9h9ygNT\/n+Y77t8vzPAn+rjPIExNTvzLGXXPf7t78kb\/0+\" \r\n                       target=\"_blank\" \r\n                       rel=\"noopener noreferrer\" \r\n                       class=\"vpascode-fancy-btn\">\r\n                        <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"margin-right: 8px;\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg>\r\n                        <span>Edit ECharts in VPasCode<\/span>\r\n                    <\/a>\r\n                <\/div>\r\n                                <div class=\"vpascode-code-wrapper\">\r\n                    <pre class=\"lang-echarts\"><code data-language=\"echarts\" class=\"language-echarts\">option = {\r\n    tooltip: { position: 'top' },\r\n    xAxis: {\r\n        type: 'category',\r\n        data: ['Q1', 'Q2', 'Q3', 'Q4']\r\n    },\r\n    yAxis: {\r\n        type: 'category',\r\n        data: ['Product A', 'Product B', 'Product C']\r\n    },\r\n    visualMap: {\r\n        type: 'piecewise',\r\n        min: 0,\r\n        max: 100,\r\n        left: 'center',\r\n        bottom: '5%',\r\n        orient: 'horizontal',\r\n        pieces: [\r\n            { min: 80, label: 'High Performance', color: '#16a34a' },\r\n            { min: 40, max: 79, label: 'Moderate', color: '#f59e0b' },\r\n            { max: 39, label: 'Needs Attention', color: '#dc2626' }\r\n        ]\r\n    },\r\n    series: [\r\n        {\r\n            type: 'heatmap',\r\n            data: [\r\n                [0, 0, 85], [1, 0, 92], [2, 0, 78], [3, 0, 88],\r\n                [0, 1, 45], [1, 1, 55], [2, 1, 62], [3, 1, 35],\r\n                [0, 2, 25], [1, 2, 30], [2, 2, 18], [3, 2, 42]\r\n            ],\r\n            label: { show: true },\r\n            itemStyle: {\r\n                borderColor: '#ffffff',\r\n                borderWidth: 2\r\n            }\r\n        }\r\n    ]\r\n};<\/code><\/pre>                <\/div>\r\n                <div class=\"vpascode-actions\">\r\n                    <a href=\"https:\/\/www.vpascode.com\/#echarts:eNqdkj1v2zAQhvcC+Q8HFIEWDTIlObaKDm6WLCkSdOhgeKClc0RAMgXqnNgV8t971EdEqc5SQhBe3sfD4x11RUof4Ts0N1+AF2ldkKoSaKDStbLOBDzSlQfvfhdy3pxVnQwJbdKlQo5KJeGLNhfPH12ZJJnA1nteeD54z6L9h+0\/8nZd3AC+\/A\/4yejslBJsLHPY\/HA39\/NzXlV9ksWjrK6dVSlM8U3V6B5WKu5C4BrkOYFF4JoKPJCtFY+Exk3eayJdsiu+dc3aKA5lc87qjz6SLFx3Wwd3Yzua7Gq6WlaBD4XcY8H5D+olhyc0B21KeUy5cEh1oQ27vi6WMozkOLsZJmJMe5W79ch71Bka7rjLOcRrDPZXOTY9dNJ\/ImY1bIj4dvx6XEqWiqVYMmWEzEZTI3dleutmemI\/phwllbLyZvX0r2JqtGvLN+VvFe982C5avRZWi1bfrawOuxjW1wGcFw0A\/uK4B7Beih7AOow\/A3CsGACsw6AHWMZQAetI7Kb5c17f6wbqXL8lQOaE\/4xGEZa\/6FJgMm9h9ygNT\/n+Y77t8vzPAn+rjPIExNTvzLGXXPf7t78kb\/0+\" \r\n                       target=\"_blank\" \r\n                       rel=\"noopener noreferrer\" \r\n                       class=\"vpascode-fancy-btn\">\r\n                        <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"margin-right: 6px;\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg>\r\n                        <span>Edit ECharts in VPasCode<\/span>\r\n                    <\/a>\r\n                <\/div>\r\n            <\/div>\r\n            \n<p id=\"ASWysrc\"><img decoding=\"async\" width=\"1854\" height=\"1297\" class=\"alignnone size-full wp-image-1343 \" src=\"https:\/\/www.vpascode.com\/ru\/wp-content\/uploads\/sites\/11\/2026\/07\/img_6a66bfa0c1b8b.png\" alt=\"\" srcset=\"https:\/\/www.vpascode.com\/ru\/wp-content\/uploads\/sites\/11\/2026\/07\/img_6a66bfa0c1b8b.png 1854w, https:\/\/www.vpascode.com\/ru\/wp-content\/uploads\/sites\/11\/2026\/07\/img_6a66bfa0c1b8b-300x210.png 300w, https:\/\/www.vpascode.com\/ru\/wp-content\/uploads\/sites\/11\/2026\/07\/img_6a66bfa0c1b8b-1024x716.png 1024w, https:\/\/www.vpascode.com\/ru\/wp-content\/uploads\/sites\/11\/2026\/07\/img_6a66bfa0c1b8b-768x537.png 768w, https:\/\/www.vpascode.com\/ru\/wp-content\/uploads\/sites\/11\/2026\/07\/img_6a66bfa0c1b8b-1536x1075.png 1536w\" sizes=\"(max-width: 1854px) 100vw, 1854px\" \/><\/p>\n<p>&nbsp;<\/p>\n<h2>Fine-Tuning Layout and Color Gradients<\/h2>\n<p>Choosing legible color stops and enabling split areas makes large matrix grids effortless to scan.<\/p>\n<h3>1. Gradient Customization and Label Alignment<\/h3>\n<p>Configure custom multi-stop color ramps in <code>visualMap.inRange<\/code> to match your platform theme:<\/p>\n            <div class=\"vpascode-viewer-container vpascode-fancy-active\">\r\n                                <div class=\"vpascode-header\">\r\n                    <span class=\"vpascode-lang-label\">ECharts<\/span>\r\n                    <a href=\"https:\/\/www.vpascode.com\/#echarts:eNqdUctOwzAQvCPxDytVKJdIzatNGsSBO3CgF6DKwUmc1sKJI8etWqr+O+s8WqfABcuH8T5mx7OiVkxU8ADH2xvAs5Ysj+EImagUYdUTSSmPQckthZPdlewf96yJhwZ91KGmMVgZUXQt5MGyL6mcKBLDynoROQXXsqFD3hn5ZxRYSdc3DDr8Z9CSyh3LKLxp3uHxbj4+rufsWLMl\/JnUo1klq2JwjAkl2cfgOmYoIzzbcpJy2nlkpIRktFIodoPoS7vJTbmcFjqZYQ2VZiIVSokSU86dGWbVK6nWdKSwVSC4kPrfk8IpFkWhPzpxvCjIwg4WbugRK4HpFJaiUJByXKUS6Jf8hIajk7hzkmuxF+bT2KCG4mdwE6tLxZWMfjEbSlRJalO4sZtxUJ+VY6PF4HqJDSu3xcFMY6\/FYaSx3+IFxn8nwD4\/6AnwzsOeAHG06AkQe\/5fBFg7m\/cE3jDVa3GnzG9xFCXj\/uSHYRg53X8Dfv7BBw==\" \r\n                       target=\"_blank\" \r\n                       rel=\"noopener noreferrer\" \r\n                       class=\"vpascode-fancy-btn\">\r\n                        <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"margin-right: 8px;\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg>\r\n                        <span>Edit ECharts in VPasCode<\/span>\r\n                    <\/a>\r\n                <\/div>\r\n                                <div class=\"vpascode-code-wrapper\">\r\n                    <pre class=\"lang-echarts\"><code data-language=\"echarts\" class=\"language-echarts\">option = {\r\n    grid: { containLabel: true },\r\n    xAxis: {\r\n        type: 'category',\r\n        data: ['Node 1', 'Node 2', 'Node 3', 'Node 4']\r\n    },\r\n    yAxis: {\r\n        type: 'category',\r\n        data: ['Service X', 'Service Y', 'Service Z']\r\n    },\r\n    visualMap: {\r\n        min: 0,\r\n        max: 100,\r\n        calculable: true,\r\n        orient: 'horizontal',\r\n        left: 'center',\r\n        bottom: '0%',\r\n        inRange: {\r\n            color: ['#f0f9ff', '#0284c7', '#0f172a'] \/\/ Soft blue to dark slate gradient\r\n        }\r\n    },\r\n    series: [\r\n        {\r\n            type: 'heatmap',\r\n            data: [\r\n                [0, 0, 12], [1, 0, 45], [2, 0, 78], [3, 0, 95],\r\n                [0, 1, 34], [1, 1, 67], [2, 1, 89], [3, 1, 23],\r\n                [0, 2, 56], [1, 2, 78], [2, 2, 12], [3, 2, 88]\r\n            ]\r\n        }\r\n    ]\r\n};<\/code><\/pre>                <\/div>\r\n                <div class=\"vpascode-actions\">\r\n                    <a href=\"https:\/\/www.vpascode.com\/#echarts:eNqdUctOwzAQvCPxDytVKJdIzatNGsSBO3CgF6DKwUmc1sKJI8etWqr+O+s8WqfABcuH8T5mx7OiVkxU8ADH2xvAs5Ysj+EImagUYdUTSSmPQckthZPdlewf96yJhwZ91KGmMVgZUXQt5MGyL6mcKBLDynoROQXXsqFD3hn5ZxRYSdc3DDr8Z9CSyh3LKLxp3uHxbj4+rufsWLMl\/JnUo1klq2JwjAkl2cfgOmYoIzzbcpJy2nlkpIRktFIodoPoS7vJTbmcFjqZYQ2VZiIVSokSU86dGWbVK6nWdKSwVSC4kPrfk8IpFkWhPzpxvCjIwg4WbugRK4HpFJaiUJByXKUS6Jf8hIajk7hzkmuxF+bT2KCG4mdwE6tLxZWMfjEbSlRJalO4sZtxUJ+VY6PF4HqJDSu3xcFMY6\/FYaSx3+IFxn8nwD4\/6AnwzsOeAHG06AkQe\/5fBFg7m\/cE3jDVa3GnzG9xFCXj\/uSHYRg53X8Dfv7BBw==\" \r\n                       target=\"_blank\" \r\n                       rel=\"noopener noreferrer\" \r\n                       class=\"vpascode-fancy-btn\">\r\n                        <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"margin-right: 6px;\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg>\r\n                        <span>Edit ECharts in VPasCode<\/span>\r\n                    <\/a>\r\n                <\/div>\r\n            <\/div>\r\n            \n<p id=\"kNdsSbc\"><img decoding=\"async\" width=\"1735\" height=\"1371\" class=\"alignnone size-full wp-image-1344 \" src=\"https:\/\/www.vpascode.com\/ru\/wp-content\/uploads\/sites\/11\/2026\/07\/img_6a66bfabedd77.png\" alt=\"\" srcset=\"https:\/\/www.vpascode.com\/ru\/wp-content\/uploads\/sites\/11\/2026\/07\/img_6a66bfabedd77.png 1735w, https:\/\/www.vpascode.com\/ru\/wp-content\/uploads\/sites\/11\/2026\/07\/img_6a66bfabedd77-300x237.png 300w, https:\/\/www.vpascode.com\/ru\/wp-content\/uploads\/sites\/11\/2026\/07\/img_6a66bfabedd77-1024x809.png 1024w, https:\/\/www.vpascode.com\/ru\/wp-content\/uploads\/sites\/11\/2026\/07\/img_6a66bfabedd77-768x607.png 768w, https:\/\/www.vpascode.com\/ru\/wp-content\/uploads\/sites\/11\/2026\/07\/img_6a66bfabedd77-1536x1214.png 1536w\" sizes=\"(max-width: 1735px) 100vw, 1735px\" \/><\/p>\n<p>&nbsp;<\/p>\n<h2>Strategic Best Practices<\/h2>\n<ul>\n<li><strong>Always Include a <code>visualMap<\/code>:<\/strong> A heatmap without a visual legend forces users to guess what colors mean. Always place a continuous or piecewise <code>visualMap<\/code> clearly near the canvas edge.<\/li>\n<li><strong>Use Grid Borders for Separation:<\/strong> Apply thin white borders using <code>itemStyle.borderColor: '#fff'<\/code> and <code>borderWidth: 1<\/code> or <code>2<\/code> to keep individual cells visually distinct in dense matrices.<\/li>\n<li><strong>Ensure High-Contrast Text:<\/strong> If cell numerical labels are active (<code>label.show: true<\/code>), test that text color remains readable against both the lightest and darkest steps in your color gradient.<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>When analyzing activity density, continuous trends, or correlations across two discrete dimensions, the Heatmap Chart provides a powerful visual solution. By mapping data values to a dynamic color scale across a two-dimensional grid, heatmaps allow users to spot peak usage&#8230;<\/p>\n","protected":false},"author":3,"featured_media":0,"parent":1254,"menu_order":15,"template":"","meta":{"inline_featured_image":false,"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"default","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"set","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}}},"ld_collection":[14],"class_list":["post-1341","ld_docs","type-ld_docs","status-publish","hentry","ld_collection-vpascode-docs"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.6 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>ECharts Heatmap Guide | VPasCode Text to Diagram Tool<\/title>\n<meta name=\"description\" content=\"Render matrix activity grids and density maps using ECharts heatmap scripts in VPasCode, a diagram-as-code tool.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.vpascode.com\/ru\/docs\/vpascode-docs\/echarts-playbook\/heatmap-chart-grid-based-density-and-pattern-mapping-guide\/\" \/>\n<meta property=\"og:locale\" content=\"ru_RU\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"ECharts Heatmap Guide | VPasCode Text to Diagram Tool\" \/>\n<meta property=\"og:description\" content=\"Render matrix activity grids and density maps using ECharts heatmap scripts in VPasCode, a diagram-as-code tool.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.vpascode.com\/ru\/docs\/vpascode-docs\/echarts-playbook\/heatmap-chart-grid-based-density-and-pattern-mapping-guide\/\" \/>\n<meta property=\"og:site_name\" content=\"VPasCode\" \/>\n<meta property=\"article:modified_time\" content=\"2026-07-29T08:50:46+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.vpascode.com\/ru\/wp-content\/uploads\/sites\/11\/2026\/07\/img_6a66bf9404a54.png\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"\u041f\u0440\u0438\u043c\u0435\u0440\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f \u0434\u043b\u044f \u0447\u0442\u0435\u043d\u0438\u044f\" \/>\n\t<meta name=\"twitter:data1\" content=\"2 \u043c\u0438\u043d\u0443\u0442\u044b\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.vpascode.com\\\/ru\\\/docs\\\/vpascode-docs\\\/echarts-playbook\\\/heatmap-chart-grid-based-density-and-pattern-mapping-guide\\\/\",\"url\":\"https:\\\/\\\/www.vpascode.com\\\/ru\\\/docs\\\/vpascode-docs\\\/echarts-playbook\\\/heatmap-chart-grid-based-density-and-pattern-mapping-guide\\\/\",\"name\":\"ECharts Heatmap Guide | VPasCode Text to Diagram Tool\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.vpascode.com\\\/ru\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.vpascode.com\\\/ru\\\/docs\\\/vpascode-docs\\\/echarts-playbook\\\/heatmap-chart-grid-based-density-and-pattern-mapping-guide\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.vpascode.com\\\/ru\\\/docs\\\/vpascode-docs\\\/echarts-playbook\\\/heatmap-chart-grid-based-density-and-pattern-mapping-guide\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.vpascode.com\\\/ru\\\/wp-content\\\/uploads\\\/sites\\\/11\\\/2026\\\/07\\\/img_6a66bf9404a54.png\",\"datePublished\":\"2026-07-27T02:16:13+00:00\",\"dateModified\":\"2026-07-29T08:50:46+00:00\",\"description\":\"Render matrix activity grids and density maps using ECharts heatmap scripts in VPasCode, a diagram-as-code tool.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.vpascode.com\\\/ru\\\/docs\\\/vpascode-docs\\\/echarts-playbook\\\/heatmap-chart-grid-based-density-and-pattern-mapping-guide\\\/#breadcrumb\"},\"inLanguage\":\"ru-RU\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.vpascode.com\\\/ru\\\/docs\\\/vpascode-docs\\\/echarts-playbook\\\/heatmap-chart-grid-based-density-and-pattern-mapping-guide\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"ru-RU\",\"@id\":\"https:\\\/\\\/www.vpascode.com\\\/ru\\\/docs\\\/vpascode-docs\\\/echarts-playbook\\\/heatmap-chart-grid-based-density-and-pattern-mapping-guide\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.vpascode.com\\\/ru\\\/wp-content\\\/uploads\\\/sites\\\/11\\\/2026\\\/07\\\/img_6a66bf9404a54.png\",\"contentUrl\":\"https:\\\/\\\/www.vpascode.com\\\/ru\\\/wp-content\\\/uploads\\\/sites\\\/11\\\/2026\\\/07\\\/img_6a66bf9404a54.png\",\"width\":1878,\"height\":1131},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.vpascode.com\\\/ru\\\/docs\\\/vpascode-docs\\\/echarts-playbook\\\/heatmap-chart-grid-based-density-and-pattern-mapping-guide\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.vpascode.com\\\/ru\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Lean Docs\",\"item\":\"https:\\\/\\\/www.vpascode.com\\\/ru\\\/docs\\\/%ld_collection%\\\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"ECharts Playbook\",\"item\":\"https:\\\/\\\/www.vpascode.com\\\/ru\\\/docs\\\/vpascode-docs\\\/echarts-playbook\\\/\"},{\"@type\":\"ListItem\",\"position\":4,\"name\":\"Heatmap Chart: Grid-Based Density and Pattern Mapping\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.vpascode.com\\\/ru\\\/#website\",\"url\":\"https:\\\/\\\/www.vpascode.com\\\/ru\\\/\",\"name\":\"VPasCode\",\"description\":\"by Visual Paradigm\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.vpascode.com\\\/ru\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.vpascode.com\\\/ru\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"ru-RU\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.vpascode.com\\\/ru\\\/#organization\",\"name\":\"VPasCode\",\"url\":\"https:\\\/\\\/www.vpascode.com\\\/ru\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"ru-RU\",\"@id\":\"https:\\\/\\\/www.vpascode.com\\\/ru\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/www.vpascode.com\\\/ru\\\/wp-content\\\/uploads\\\/sites\\\/11\\\/2026\\\/06\\\/cropped-vp-online-logo-v1.png\",\"contentUrl\":\"https:\\\/\\\/www.vpascode.com\\\/ru\\\/wp-content\\\/uploads\\\/sites\\\/11\\\/2026\\\/06\\\/cropped-vp-online-logo-v1.png\",\"width\":128,\"height\":138,\"caption\":\"VPasCode\"},\"image\":{\"@id\":\"https:\\\/\\\/www.vpascode.com\\\/ru\\\/#\\\/schema\\\/logo\\\/image\\\/\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"ECharts Heatmap Guide | VPasCode Text to Diagram Tool","description":"Render matrix activity grids and density maps using ECharts heatmap scripts in VPasCode, a diagram-as-code tool.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.vpascode.com\/ru\/docs\/vpascode-docs\/echarts-playbook\/heatmap-chart-grid-based-density-and-pattern-mapping-guide\/","og_locale":"ru_RU","og_type":"article","og_title":"ECharts Heatmap Guide | VPasCode Text to Diagram Tool","og_description":"Render matrix activity grids and density maps using ECharts heatmap scripts in VPasCode, a diagram-as-code tool.","og_url":"https:\/\/www.vpascode.com\/ru\/docs\/vpascode-docs\/echarts-playbook\/heatmap-chart-grid-based-density-and-pattern-mapping-guide\/","og_site_name":"VPasCode","article_modified_time":"2026-07-29T08:50:46+00:00","og_image":[{"url":"https:\/\/www.vpascode.com\/ru\/wp-content\/uploads\/sites\/11\/2026\/07\/img_6a66bf9404a54.png","type":"","width":"","height":""}],"twitter_card":"summary_large_image","twitter_misc":{"\u041f\u0440\u0438\u043c\u0435\u0440\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f \u0434\u043b\u044f \u0447\u0442\u0435\u043d\u0438\u044f":"2 \u043c\u0438\u043d\u0443\u0442\u044b"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.vpascode.com\/ru\/docs\/vpascode-docs\/echarts-playbook\/heatmap-chart-grid-based-density-and-pattern-mapping-guide\/","url":"https:\/\/www.vpascode.com\/ru\/docs\/vpascode-docs\/echarts-playbook\/heatmap-chart-grid-based-density-and-pattern-mapping-guide\/","name":"ECharts Heatmap Guide | VPasCode Text to Diagram Tool","isPartOf":{"@id":"https:\/\/www.vpascode.com\/ru\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.vpascode.com\/ru\/docs\/vpascode-docs\/echarts-playbook\/heatmap-chart-grid-based-density-and-pattern-mapping-guide\/#primaryimage"},"image":{"@id":"https:\/\/www.vpascode.com\/ru\/docs\/vpascode-docs\/echarts-playbook\/heatmap-chart-grid-based-density-and-pattern-mapping-guide\/#primaryimage"},"thumbnailUrl":"https:\/\/www.vpascode.com\/ru\/wp-content\/uploads\/sites\/11\/2026\/07\/img_6a66bf9404a54.png","datePublished":"2026-07-27T02:16:13+00:00","dateModified":"2026-07-29T08:50:46+00:00","description":"Render matrix activity grids and density maps using ECharts heatmap scripts in VPasCode, a diagram-as-code tool.","breadcrumb":{"@id":"https:\/\/www.vpascode.com\/ru\/docs\/vpascode-docs\/echarts-playbook\/heatmap-chart-grid-based-density-and-pattern-mapping-guide\/#breadcrumb"},"inLanguage":"ru-RU","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.vpascode.com\/ru\/docs\/vpascode-docs\/echarts-playbook\/heatmap-chart-grid-based-density-and-pattern-mapping-guide\/"]}]},{"@type":"ImageObject","inLanguage":"ru-RU","@id":"https:\/\/www.vpascode.com\/ru\/docs\/vpascode-docs\/echarts-playbook\/heatmap-chart-grid-based-density-and-pattern-mapping-guide\/#primaryimage","url":"https:\/\/www.vpascode.com\/ru\/wp-content\/uploads\/sites\/11\/2026\/07\/img_6a66bf9404a54.png","contentUrl":"https:\/\/www.vpascode.com\/ru\/wp-content\/uploads\/sites\/11\/2026\/07\/img_6a66bf9404a54.png","width":1878,"height":1131},{"@type":"BreadcrumbList","@id":"https:\/\/www.vpascode.com\/ru\/docs\/vpascode-docs\/echarts-playbook\/heatmap-chart-grid-based-density-and-pattern-mapping-guide\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.vpascode.com\/ru\/"},{"@type":"ListItem","position":2,"name":"Lean Docs","item":"https:\/\/www.vpascode.com\/ru\/docs\/%ld_collection%\/"},{"@type":"ListItem","position":3,"name":"ECharts Playbook","item":"https:\/\/www.vpascode.com\/ru\/docs\/vpascode-docs\/echarts-playbook\/"},{"@type":"ListItem","position":4,"name":"Heatmap Chart: Grid-Based Density and Pattern Mapping"}]},{"@type":"WebSite","@id":"https:\/\/www.vpascode.com\/ru\/#website","url":"https:\/\/www.vpascode.com\/ru\/","name":"VPasCode","description":"by Visual Paradigm","publisher":{"@id":"https:\/\/www.vpascode.com\/ru\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.vpascode.com\/ru\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"ru-RU"},{"@type":"Organization","@id":"https:\/\/www.vpascode.com\/ru\/#organization","name":"VPasCode","url":"https:\/\/www.vpascode.com\/ru\/","logo":{"@type":"ImageObject","inLanguage":"ru-RU","@id":"https:\/\/www.vpascode.com\/ru\/#\/schema\/logo\/image\/","url":"https:\/\/www.vpascode.com\/ru\/wp-content\/uploads\/sites\/11\/2026\/06\/cropped-vp-online-logo-v1.png","contentUrl":"https:\/\/www.vpascode.com\/ru\/wp-content\/uploads\/sites\/11\/2026\/06\/cropped-vp-online-logo-v1.png","width":128,"height":138,"caption":"VPasCode"},"image":{"@id":"https:\/\/www.vpascode.com\/ru\/#\/schema\/logo\/image\/"}}]}},"_links":{"self":[{"href":"https:\/\/www.vpascode.com\/ru\/wp-json\/wp\/v2\/ld_docs\/1341","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.vpascode.com\/ru\/wp-json\/wp\/v2\/ld_docs"}],"about":[{"href":"https:\/\/www.vpascode.com\/ru\/wp-json\/wp\/v2\/types\/ld_docs"}],"author":[{"embeddable":true,"href":"https:\/\/www.vpascode.com\/ru\/wp-json\/wp\/v2\/users\/3"}],"up":[{"embeddable":true,"href":"https:\/\/www.vpascode.com\/ru\/wp-json\/wp\/v2\/ld_docs\/1254"}],"wp:attachment":[{"href":"https:\/\/www.vpascode.com\/ru\/wp-json\/wp\/v2\/media?parent=1341"}],"wp:term":[{"taxonomy":"ld_collection","embeddable":true,"href":"https:\/\/www.vpascode.com\/ru\/wp-json\/wp\/v2\/ld_collection?post=1341"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}