{"id":1400,"date":"2026-07-27T03:43:40","date_gmt":"2026-07-27T03:43:40","guid":{"rendered":"https:\/\/www.vpascode.com\/in\/docs\/uncategorized\/echarts-playbook\/calendar-chart-time-series-heatmaps-and-daily-activity-tracking\/"},"modified":"2026-07-30T01:29:06","modified_gmt":"2026-07-30T01:29:06","slug":"calendar-chart-time-series-heatmaps-and-daily-activity-tracking-guide","status":"publish","type":"ld_docs","link":"https:\/\/www.vpascode.com\/in\/docs\/vpascode-docs\/echarts-playbook\/calendar-chart-time-series-heatmaps-and-daily-activity-tracking-guide\/","title":{"rendered":"Calendar Chart: Time-Series Heatmaps and Daily Activity Tracking"},"content":{"rendered":"<p>When tracking daily habits, website traffic, server activity logs, or sales intensity over full calendar years, the <strong>Calendar Chart<\/strong> provides an effective, grid-based visual layout. Modeled after contribution graphs and seasonal heatmaps, calendar charts map continuous quantitative metrics across specific calendar days, helping users identify high-activity peaks, weekend variations, and multi-month seasonal patterns at a glance.<\/p>\n<h2>The Mechanics of Calendar Charts<\/h2>\n<p>In Apache ECharts, calendar charts use a dedicated <code>calendar<\/code> coordinate system combined with a <code>heatmap<\/code> or <code>scatter<\/code> series type. Instead of standard cartesian X and Y axes, ECharts calculates day and month grid positions automatically using date strings.<\/p>\n<h3>1. Essential Setup<\/h3>\n<p>To create a basic annual calendar heatmap, define a <code>calendar<\/code> component specifying a range (e.g., <code>'2026'<\/code>), attach a <code>visualMap<\/code> to control metric color gradients, and pass daily date-value tuples formatted as <code>['YYYY-MM-DD', value]<\/code>:<\/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:eNqNkk1vozAQhu8r7X+wlINbbajAkDRQ7al73L1sDnuIOEzMpFgyGBmnLV3lv+8YUsX0Q1oLieGdwX79zJjOKdOy7+zv1y+MllNOY\/H6NSqmK1gSLy+KxoMrGJfYOrQ8SDh89okfoPTA7k3TKNezKxGL9TWfqk7nameMdqqbHXQwtgFHWxbscGzl6OuqAwtNfx3W+WXRHW3LpuzNI+gj7uKSfWOczqfXLJGMCSYnQ\/zustVp7upR9UfQv2Duq1FtwcL7N\/DsiYSSGzqixjuFEp9UjyEVYxWRomxN0YtpHWj+XzQ9+PUqUFT7G9qHeXv8kkYborbjC9xjdYj5kvFFvsccNmOYxTJbp2OYxpBkOIYiWWOa8\/JTHBI0thXYD8ZBvJ+HNJSseqjfahK13qoX9Ebh6AyZSNIy\/Gm6HPcDE4JQDputG\/T7i++NrdD+UZWrqUU3IatL+n6iwxdSSh5cNigeEOxP2KOmE1hfmycaQdA9viXSI\/Wyn\/OYOl8juAa60LY0dLxqweF26OkKvslnomFZBQ4Iydz5boQQxQk9npMol6EmSMtWc833d7Mplx9vJKIko4I8\/CmNhB+VNA60VZR4bb36bKPbSNz6kwJHSRyl3mWeB5qIxMo7j4P5OocE9XT3D+U9BbQ=\" \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    title: {\r\n        top: 10,\r\n        left: 'center',\r\n        text: 'Daily Commits (2026)'\r\n    },\r\n    tooltip: {\r\n        formatter: function (params) {\r\n            return params.value[0] + ': ' + params.value[1] + ' commits';\r\n        }\r\n    },\r\n    visualMap: {\r\n        min: 0,\r\n        max: 100,\r\n        type: 'piecewise',\r\n        orient: 'horizontal',\r\n        left: 'center',\r\n        top: 65,\r\n        inRange: {\r\n            color: ['#ebedf0', '#9be9a8', '#40c463', '#30a14e', '#216e39']\r\n        }\r\n    },\r\n    calendar: {\r\n        top: 120,\r\n        left: 30,\r\n        right: 30,\r\n        cellSize: ['auto', 13],\r\n        range: '2026',\r\n        itemStyle: {\r\n            borderWidth: 0.5,\r\n            borderColor: '#ccc'\r\n        },\r\n        yearLabel: { show: false }\r\n    },\r\n    series: {\r\n        type: 'heatmap',\r\n        coordinateSystem: 'calendar',\r\n        data: [\r\n            ['2026-01-01', 12], ['2026-01-02', 45], ['2026-01-03', 88],\r\n            ['2026-02-14', 95], ['2026-03-20', 30], ['2026-05-10', 65],\r\n            ['2026-07-27', 82], ['2026-10-31', 99], ['2026-12-25', 10]\r\n        ]\r\n    }\r\n};<\/code><\/pre>                <\/div>\r\n                <div class=\"vpascode-actions\">\r\n                    <a href=\"https:\/\/www.vpascode.com\/#echarts:eNqNkk1vozAQhu8r7X+wlINbbajAkDRQ7al73L1sDnuIOEzMpFgyGBmnLV3lv+8YUsX0Q1oLieGdwX79zJjOKdOy7+zv1y+MllNOY\/H6NSqmK1gSLy+KxoMrGJfYOrQ8SDh89okfoPTA7k3TKNezKxGL9TWfqk7nameMdqqbHXQwtgFHWxbscGzl6OuqAwtNfx3W+WXRHW3LpuzNI+gj7uKSfWOczqfXLJGMCSYnQ\/zustVp7upR9UfQv2Duq1FtwcL7N\/DsiYSSGzqixjuFEp9UjyEVYxWRomxN0YtpHWj+XzQ9+PUqUFT7G9qHeXv8kkYborbjC9xjdYj5kvFFvsccNmOYxTJbp2OYxpBkOIYiWWOa8\/JTHBI0thXYD8ZBvJ+HNJSseqjfahK13qoX9Ebh6AyZSNIy\/Gm6HPcDE4JQDputG\/T7i++NrdD+UZWrqUU3IatL+n6iwxdSSh5cNigeEOxP2KOmE1hfmycaQdA9viXSI\/Wyn\/OYOl8juAa60LY0dLxqweF26OkKvslnomFZBQ4Iydz5boQQxQk9npMol6EmSMtWc833d7Mplx9vJKIko4I8\/CmNhB+VNA60VZR4bb36bKPbSNz6kwJHSRyl3mWeB5qIxMo7j4P5OocE9XT3D+U9BbQ=\" \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=\"jJApFDb\"><img fetchpriority=\"high\" decoding=\"async\" width=\"2018\" height=\"439\" class=\"alignnone size-full wp-image-1402 \" src=\"https:\/\/www.vpascode.com\/in\/wp-content\/uploads\/sites\/13\/2026\/07\/img_6a66d42a1f090.png\" alt=\"\" srcset=\"https:\/\/www.vpascode.com\/in\/wp-content\/uploads\/sites\/13\/2026\/07\/img_6a66d42a1f090.png 2018w, https:\/\/www.vpascode.com\/in\/wp-content\/uploads\/sites\/13\/2026\/07\/img_6a66d42a1f090-300x65.png 300w, https:\/\/www.vpascode.com\/in\/wp-content\/uploads\/sites\/13\/2026\/07\/img_6a66d42a1f090-1024x223.png 1024w, https:\/\/www.vpascode.com\/in\/wp-content\/uploads\/sites\/13\/2026\/07\/img_6a66d42a1f090-768x167.png 768w, https:\/\/www.vpascode.com\/in\/wp-content\/uploads\/sites\/13\/2026\/07\/img_6a66d42a1f090-1536x334.png 1536w\" sizes=\"(max-width: 2018px) 100vw, 2018px\" \/><\/p>\n<p>&nbsp;<\/p>\n<h2>Advanced Structural Techniques<\/h2>\n<p>Calendar charts can be adapted for vertical scrolling layouts or customized with scatter representations to visualize discrete daily metrics.<\/p>\n<h3>1. Vertical Multi-Month Calendar View<\/h3>\n<p>Change <code>orient: 'vertical'<\/code> on the calendar component to stack months vertically\u2014ideal for tall dashboard widgets or mobile layouts:<\/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:eNqNksFu4yAQhu8r7Tsg9cAlUQEnbepqDyvtsT3s5lj1QPE4QcVg4Ula7yrvvkOdNFCpUpEP8M8w8\/N5Qo82ePaD\/fv+jdFCiw7q0+lNgVesGf8t2U+Ddm9xZHdhw2fnDAdtyjDgESKf9MMxjiE4tD1VPCl7O+y0u9d90aWzvmYiK9rp15otRS7h2EPqEzxavwu7ITcRoqX+FN5DRGu0y4PRbrYUk0W10J9NZ7r1f7TflAzSMsGFWLMHftFCK5obPmO0bYxZ6WlrVs1yUpvrSsiWP54LHEoqZA98o2MJOhm6Ep+C\/fJjJ\/sPXAl1NReSvuRqOlXzSvLHLNuAc2v7N11QYsaUyIMj6Hinn8CRUTZsw0vNWu0GeH9IWo0eTzklsdbGAX\/pkcDP2OUlW6OOyF4AnhmN3H0gAmN5w+sO3iaDg+cZvXwu6O9v3z0VFz5SHoAwDSXjaYS2oLHTfU7NhBAb6zXCehwQusT9+Jd48VjUhKq0naFeEmqZIGaiXJFYLXJR0UfiYlXgzmupuRKUoWR+rZrL1GDxQVSpgbwR2cAdt0TkcPsfUgXnRw==\" \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    title: {\r\n        text: 'Q1 Activity Log',\r\n        left: 'center'\r\n    },\r\n    tooltip: {},\r\n    visualMap: {\r\n        min: 0,\r\n        max: 500,\r\n        type: 'continuous',\r\n        orient: 'vertical',\r\n        right: 10,\r\n        top: 'center',\r\n        inRange: {\r\n            color: ['#fef0d9', '#fdcc8a', '#fc8d59', '#d7301f']\r\n        }\r\n    },\r\n    calendar: {\r\n        top: 60,\r\n        left: 'center',\r\n        orient: 'vertical',\r\n        range: ['2026-01-01', '2026-03-31'],\r\n        cellSize: [20, 20],\r\n        yearLabel: { show: false },\r\n        dayLabel: {\r\n            firstDay: 1, \/\/ Start week on Monday\r\n            nameMap: 'en'\r\n        },\r\n        monthLabel: { nameMap: 'en' }\r\n    },\r\n    series: {\r\n        type: 'heatmap',\r\n        coordinateSystem: 'calendar',\r\n        data: [\r\n            ['2026-01-05', 120], ['2026-01-18', 340], ['2026-02-02', 480],\r\n            ['2026-02-20', 210], ['2026-03-15', 410], ['2026-03-28', 190]\r\n        ]\r\n    }\r\n};<\/code><\/pre>                <\/div>\r\n                <div class=\"vpascode-actions\">\r\n                    <a href=\"https:\/\/www.vpascode.com\/#echarts:eNqNksFu4yAQhu8r7Tsg9cAlUQEnbepqDyvtsT3s5lj1QPE4QcVg4Ula7yrvvkOdNFCpUpEP8M8w8\/N5Qo82ePaD\/fv+jdFCiw7q0+lNgVesGf8t2U+Ddm9xZHdhw2fnDAdtyjDgESKf9MMxjiE4tD1VPCl7O+y0u9d90aWzvmYiK9rp15otRS7h2EPqEzxavwu7ITcRoqX+FN5DRGu0y4PRbrYUk0W10J9NZ7r1f7TflAzSMsGFWLMHftFCK5obPmO0bYxZ6WlrVs1yUpvrSsiWP54LHEoqZA98o2MJOhm6Ep+C\/fJjJ\/sPXAl1NReSvuRqOlXzSvLHLNuAc2v7N11QYsaUyIMj6Hinn8CRUTZsw0vNWu0GeH9IWo0eTzklsdbGAX\/pkcDP2OUlW6OOyF4AnhmN3H0gAmN5w+sO3iaDg+cZvXwu6O9v3z0VFz5SHoAwDSXjaYS2oLHTfU7NhBAb6zXCehwQusT9+Jd48VjUhKq0naFeEmqZIGaiXJFYLXJR0UfiYlXgzmupuRKUoWR+rZrL1GDxQVSpgbwR2cAdt0TkcPsfUgXnRw==\" \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=\"uQfyIDb\"><img decoding=\"async\" width=\"1221\" height=\"889\" class=\"alignnone size-full wp-image-1403 \" src=\"https:\/\/www.vpascode.com\/in\/wp-content\/uploads\/sites\/13\/2026\/07\/img_6a66d43481552.png\" alt=\"\" srcset=\"https:\/\/www.vpascode.com\/in\/wp-content\/uploads\/sites\/13\/2026\/07\/img_6a66d43481552.png 1221w, https:\/\/www.vpascode.com\/in\/wp-content\/uploads\/sites\/13\/2026\/07\/img_6a66d43481552-300x218.png 300w, https:\/\/www.vpascode.com\/in\/wp-content\/uploads\/sites\/13\/2026\/07\/img_6a66d43481552-1024x746.png 1024w, https:\/\/www.vpascode.com\/in\/wp-content\/uploads\/sites\/13\/2026\/07\/img_6a66d43481552-768x559.png 768w\" sizes=\"(max-width: 1221px) 100vw, 1221px\" \/><\/p>\n<p>&nbsp;<\/p>\n<h2>Fine-Tuning Layout and Styling<\/h2>\n<p>Combining calendar coordinate systems with scatter series allows you to scale point sizes based on intensity instead of color blocks alone.<\/p>\n<h3>1. Scatter Bubble Calendar<\/h3>\n<p>Using <code>type: 'scatter'<\/code> on a <code>calendar<\/code> coordinate system creates interactive bubble-style daily indicators:<\/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:eNqVUrFu2zAQ3QP0Hw7owAZ1YoqJU1VGp2TvYCAZDA0UfXIIUKJAUkWUwv\/eo2zDohMP5SLp3bvHu\/dku6BtC7\/g75croBN0MFgcv0YE30IB7ElqM8Bvt0EHz9b0DbLZiWSwjiSFbUDH9vjuUA\/WmqC7RLS2rpGBuAXUfavGGb510snGX0958TgMvWthX739I02Pa17Cd2B0Iz2SQjYWwMY5PVuelHbpUEoabDfSpatamjLnH\/a6n0JOb18\/YLLdkmtMcPFwwxdTZxQas9LvVF0z2QfLZiAW5YSgAzarMJy5PrZaY2lA9rXOa1mrqWo81bjki96E1wKyT4uPRwUUmNecXbTDo9PoUzOGLq7k1ZhTspIlcd3KgKvB0\/Qx+IOdU5ofmsoedj+FTDFdSphKMb85ZHwJ8zmsoqqHqq8qg+BJCKRS491bymofMk3Tt2Gy2P9Ze1flon44t9Z2UukwFMBv88+lNzJIijRtWx9\/gBueUc6Z4OVsCi5i+PcpmInIzHk5u6SV5cS4y9I2Edt+nmGRKH7w8qR0eKW0d8t\/Hf3uXg==\" \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    title: {\r\n        text: 'Daily Order Volume',\r\n        left: 'center'\r\n    },\r\n    tooltip: {\r\n        formatter: function (params) {\r\n            return params.value[0] + ': ' + params.value[1] + ' orders';\r\n        }\r\n    },\r\n    calendar: {\r\n        top: 80,\r\n        left: 40,\r\n        right: 40,\r\n        range: '2026-05',\r\n        cellSize: ['auto', 25],\r\n        itemStyle: {\r\n            color: '#f8fafc',\r\n            borderWidth: 1,\r\n            borderColor: '#e2e8f0'\r\n        }\r\n    },\r\n    series: {\r\n        type: 'scatter',\r\n        coordinateSystem: 'calendar',\r\n        symbolSize: function (val) {\r\n            return val[1] \/ 10; \/\/ Scales bubble size according to order count\r\n        },\r\n        itemStyle: {\r\n            color: '#3b82f6',\r\n            opacity: 0.8\r\n        },\r\n        data: [\r\n            ['2026-05-01', 120], ['2026-05-05', 240], ['2026-05-12', 180],\r\n            ['2026-05-18', 310], ['2026-05-22', 90], ['2026-05-28', 270]\r\n        ]\r\n    }\r\n};<\/code><\/pre>                <\/div>\r\n                <div class=\"vpascode-actions\">\r\n                    <a href=\"https:\/\/www.vpascode.com\/#echarts:eNqVUrFu2zAQ3QP0Hw7owAZ1YoqJU1VGp2TvYCAZDA0UfXIIUKJAUkWUwv\/eo2zDohMP5SLp3bvHu\/dku6BtC7\/g75croBN0MFgcv0YE30IB7ElqM8Bvt0EHz9b0DbLZiWSwjiSFbUDH9vjuUA\/WmqC7RLS2rpGBuAXUfavGGb510snGX0958TgMvWthX739I02Pa17Cd2B0Iz2SQjYWwMY5PVuelHbpUEoabDfSpatamjLnH\/a6n0JOb18\/YLLdkmtMcPFwwxdTZxQas9LvVF0z2QfLZiAW5YSgAzarMJy5PrZaY2lA9rXOa1mrqWo81bjki96E1wKyT4uPRwUUmNecXbTDo9PoUzOGLq7k1ZhTspIlcd3KgKvB0\/Qx+IOdU5ofmsoedj+FTDFdSphKMb85ZHwJ8zmsoqqHqq8qg+BJCKRS491bymofMk3Tt2Gy2P9Ze1flon44t9Z2UukwFMBv88+lNzJIijRtWx9\/gBueUc6Z4OVsCi5i+PcpmInIzHk5u6SV5cS4y9I2Edt+nmGRKH7w8qR0eKW0d8t\/Hf3uXg==\" \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=\"ZxdxCvz\"><img decoding=\"async\" width=\"2015\" height=\"518\" class=\"alignnone size-full wp-image-1404 \" src=\"https:\/\/www.vpascode.com\/in\/wp-content\/uploads\/sites\/13\/2026\/07\/img_6a66d440d2d96.png\" alt=\"\" srcset=\"https:\/\/www.vpascode.com\/in\/wp-content\/uploads\/sites\/13\/2026\/07\/img_6a66d440d2d96.png 2015w, https:\/\/www.vpascode.com\/in\/wp-content\/uploads\/sites\/13\/2026\/07\/img_6a66d440d2d96-300x77.png 300w, https:\/\/www.vpascode.com\/in\/wp-content\/uploads\/sites\/13\/2026\/07\/img_6a66d440d2d96-1024x263.png 1024w, https:\/\/www.vpascode.com\/in\/wp-content\/uploads\/sites\/13\/2026\/07\/img_6a66d440d2d96-768x197.png 768w, https:\/\/www.vpascode.com\/in\/wp-content\/uploads\/sites\/13\/2026\/07\/img_6a66d440d2d96-1536x395.png 1536w\" sizes=\"(max-width: 2015px) 100vw, 2015px\" \/><\/p>\n<p>&nbsp;<\/p>\n<h2>Strategic Best Practices<\/h2>\n<ul>\n<li><strong>Match Dates to ISO Format:<\/strong> Ensure dates inside your series data array follow standard <code>'YYYY-MM-DD'<\/code> string formats so the calendar grid maps records accurately.<\/li>\n<li><strong>Configure <code>firstDay<\/code> for Regional Consistency:<\/strong> Use <code>dayLabel.firstDay<\/code> (set to <code>0<\/code> for Sunday or <code>1<\/code> for Monday) to match your audience&#8217;s local calendar conventions.<\/li>\n<li><strong>Pair Piecewise VisualMap for Contributions:<\/strong> When rendering GitHub-style commit graphs, use a <code>piecewise<\/code> visual map type with discrete color stops rather than continuous gradients for cleaner categorical visual steps.<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>When tracking daily habits, website traffic, server activity logs, or sales intensity over full calendar years, the Calendar Chart provides an effective, grid-based visual layout. Modeled after contribution graphs and seasonal heatmaps, calendar charts map continuous quantitative metrics across specific&#8230;<\/p>\n","protected":false},"author":3,"featured_media":0,"parent":1254,"menu_order":26,"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-1400","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 Calendar Heatmap | VPasCode Text to Diagram Guide<\/title>\n<meta name=\"description\" content=\"Plot year-view daily activity heatmaps using ECharts calendar charts in VPasCode, a free text to diagram 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\/in\/docs\/vpascode-docs\/echarts-playbook\/calendar-chart-time-series-heatmaps-and-daily-activity-tracking-guide\/\" \/>\n<meta property=\"og:locale\" content=\"hi_IN\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"ECharts Calendar Heatmap | VPasCode Text to Diagram Guide\" \/>\n<meta property=\"og:description\" content=\"Plot year-view daily activity heatmaps using ECharts calendar charts in VPasCode, a free text to diagram tool.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.vpascode.com\/in\/docs\/vpascode-docs\/echarts-playbook\/calendar-chart-time-series-heatmaps-and-daily-activity-tracking-guide\/\" \/>\n<meta property=\"og:site_name\" content=\"VPasCode\" \/>\n<meta property=\"article:modified_time\" content=\"2026-07-30T01:29:06+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.vpascode.com\/in\/wp-content\/uploads\/sites\/13\/2026\/07\/img_6a66d42a1f090.png\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"\u0905\u0928\u0941\u092e\u093e\u0928\u093f\u0924 \u092a\u0922\u093c\u0928\u0947 \u0915\u093e \u0938\u092e\u092f\" \/>\n\t<meta name=\"twitter:data1\" content=\"2 \u092e\u093f\u0928\u091f\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.vpascode.com\\\/in\\\/docs\\\/vpascode-docs\\\/echarts-playbook\\\/calendar-chart-time-series-heatmaps-and-daily-activity-tracking-guide\\\/\",\"url\":\"https:\\\/\\\/www.vpascode.com\\\/in\\\/docs\\\/vpascode-docs\\\/echarts-playbook\\\/calendar-chart-time-series-heatmaps-and-daily-activity-tracking-guide\\\/\",\"name\":\"ECharts Calendar Heatmap | VPasCode Text to Diagram Guide\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.vpascode.com\\\/in\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.vpascode.com\\\/in\\\/docs\\\/vpascode-docs\\\/echarts-playbook\\\/calendar-chart-time-series-heatmaps-and-daily-activity-tracking-guide\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.vpascode.com\\\/in\\\/docs\\\/vpascode-docs\\\/echarts-playbook\\\/calendar-chart-time-series-heatmaps-and-daily-activity-tracking-guide\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.vpascode.com\\\/in\\\/wp-content\\\/uploads\\\/sites\\\/13\\\/2026\\\/07\\\/img_6a66d42a1f090.png\",\"datePublished\":\"2026-07-27T03:43:40+00:00\",\"dateModified\":\"2026-07-30T01:29:06+00:00\",\"description\":\"Plot year-view daily activity heatmaps using ECharts calendar charts in VPasCode, a free text to diagram tool.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.vpascode.com\\\/in\\\/docs\\\/vpascode-docs\\\/echarts-playbook\\\/calendar-chart-time-series-heatmaps-and-daily-activity-tracking-guide\\\/#breadcrumb\"},\"inLanguage\":\"hi-IN\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.vpascode.com\\\/in\\\/docs\\\/vpascode-docs\\\/echarts-playbook\\\/calendar-chart-time-series-heatmaps-and-daily-activity-tracking-guide\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"hi-IN\",\"@id\":\"https:\\\/\\\/www.vpascode.com\\\/in\\\/docs\\\/vpascode-docs\\\/echarts-playbook\\\/calendar-chart-time-series-heatmaps-and-daily-activity-tracking-guide\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.vpascode.com\\\/in\\\/wp-content\\\/uploads\\\/sites\\\/13\\\/2026\\\/07\\\/img_6a66d42a1f090.png\",\"contentUrl\":\"https:\\\/\\\/www.vpascode.com\\\/in\\\/wp-content\\\/uploads\\\/sites\\\/13\\\/2026\\\/07\\\/img_6a66d42a1f090.png\",\"width\":2018,\"height\":439},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.vpascode.com\\\/in\\\/docs\\\/vpascode-docs\\\/echarts-playbook\\\/calendar-chart-time-series-heatmaps-and-daily-activity-tracking-guide\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.vpascode.com\\\/in\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Lean Docs\",\"item\":\"https:\\\/\\\/www.vpascode.com\\\/in\\\/docs\\\/%ld_collection%\\\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"ECharts Playbook\",\"item\":\"https:\\\/\\\/www.vpascode.com\\\/in\\\/docs\\\/vpascode-docs\\\/echarts-playbook\\\/\"},{\"@type\":\"ListItem\",\"position\":4,\"name\":\"Calendar Chart: Time-Series Heatmaps and Daily Activity Tracking\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.vpascode.com\\\/in\\\/#website\",\"url\":\"https:\\\/\\\/www.vpascode.com\\\/in\\\/\",\"name\":\"VPasCode\",\"description\":\"by Visual Paradigm\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.vpascode.com\\\/in\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.vpascode.com\\\/in\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"hi-IN\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.vpascode.com\\\/in\\\/#organization\",\"name\":\"VPasCode\",\"url\":\"https:\\\/\\\/www.vpascode.com\\\/in\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"hi-IN\",\"@id\":\"https:\\\/\\\/www.vpascode.com\\\/in\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/www.vpascode.com\\\/in\\\/wp-content\\\/uploads\\\/sites\\\/13\\\/2026\\\/06\\\/cropped-vp-online-logo-v1.png\",\"contentUrl\":\"https:\\\/\\\/www.vpascode.com\\\/in\\\/wp-content\\\/uploads\\\/sites\\\/13\\\/2026\\\/06\\\/cropped-vp-online-logo-v1.png\",\"width\":128,\"height\":138,\"caption\":\"VPasCode\"},\"image\":{\"@id\":\"https:\\\/\\\/www.vpascode.com\\\/in\\\/#\\\/schema\\\/logo\\\/image\\\/\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"ECharts Calendar Heatmap | VPasCode Text to Diagram Guide","description":"Plot year-view daily activity heatmaps using ECharts calendar charts in VPasCode, a free text to diagram 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\/in\/docs\/vpascode-docs\/echarts-playbook\/calendar-chart-time-series-heatmaps-and-daily-activity-tracking-guide\/","og_locale":"hi_IN","og_type":"article","og_title":"ECharts Calendar Heatmap | VPasCode Text to Diagram Guide","og_description":"Plot year-view daily activity heatmaps using ECharts calendar charts in VPasCode, a free text to diagram tool.","og_url":"https:\/\/www.vpascode.com\/in\/docs\/vpascode-docs\/echarts-playbook\/calendar-chart-time-series-heatmaps-and-daily-activity-tracking-guide\/","og_site_name":"VPasCode","article_modified_time":"2026-07-30T01:29:06+00:00","og_image":[{"url":"https:\/\/www.vpascode.com\/in\/wp-content\/uploads\/sites\/13\/2026\/07\/img_6a66d42a1f090.png","type":"","width":"","height":""}],"twitter_card":"summary_large_image","twitter_misc":{"\u0905\u0928\u0941\u092e\u093e\u0928\u093f\u0924 \u092a\u0922\u093c\u0928\u0947 \u0915\u093e \u0938\u092e\u092f":"2 \u092e\u093f\u0928\u091f"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.vpascode.com\/in\/docs\/vpascode-docs\/echarts-playbook\/calendar-chart-time-series-heatmaps-and-daily-activity-tracking-guide\/","url":"https:\/\/www.vpascode.com\/in\/docs\/vpascode-docs\/echarts-playbook\/calendar-chart-time-series-heatmaps-and-daily-activity-tracking-guide\/","name":"ECharts Calendar Heatmap | VPasCode Text to Diagram Guide","isPartOf":{"@id":"https:\/\/www.vpascode.com\/in\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.vpascode.com\/in\/docs\/vpascode-docs\/echarts-playbook\/calendar-chart-time-series-heatmaps-and-daily-activity-tracking-guide\/#primaryimage"},"image":{"@id":"https:\/\/www.vpascode.com\/in\/docs\/vpascode-docs\/echarts-playbook\/calendar-chart-time-series-heatmaps-and-daily-activity-tracking-guide\/#primaryimage"},"thumbnailUrl":"https:\/\/www.vpascode.com\/in\/wp-content\/uploads\/sites\/13\/2026\/07\/img_6a66d42a1f090.png","datePublished":"2026-07-27T03:43:40+00:00","dateModified":"2026-07-30T01:29:06+00:00","description":"Plot year-view daily activity heatmaps using ECharts calendar charts in VPasCode, a free text to diagram tool.","breadcrumb":{"@id":"https:\/\/www.vpascode.com\/in\/docs\/vpascode-docs\/echarts-playbook\/calendar-chart-time-series-heatmaps-and-daily-activity-tracking-guide\/#breadcrumb"},"inLanguage":"hi-IN","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.vpascode.com\/in\/docs\/vpascode-docs\/echarts-playbook\/calendar-chart-time-series-heatmaps-and-daily-activity-tracking-guide\/"]}]},{"@type":"ImageObject","inLanguage":"hi-IN","@id":"https:\/\/www.vpascode.com\/in\/docs\/vpascode-docs\/echarts-playbook\/calendar-chart-time-series-heatmaps-and-daily-activity-tracking-guide\/#primaryimage","url":"https:\/\/www.vpascode.com\/in\/wp-content\/uploads\/sites\/13\/2026\/07\/img_6a66d42a1f090.png","contentUrl":"https:\/\/www.vpascode.com\/in\/wp-content\/uploads\/sites\/13\/2026\/07\/img_6a66d42a1f090.png","width":2018,"height":439},{"@type":"BreadcrumbList","@id":"https:\/\/www.vpascode.com\/in\/docs\/vpascode-docs\/echarts-playbook\/calendar-chart-time-series-heatmaps-and-daily-activity-tracking-guide\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.vpascode.com\/in\/"},{"@type":"ListItem","position":2,"name":"Lean Docs","item":"https:\/\/www.vpascode.com\/in\/docs\/%ld_collection%\/"},{"@type":"ListItem","position":3,"name":"ECharts Playbook","item":"https:\/\/www.vpascode.com\/in\/docs\/vpascode-docs\/echarts-playbook\/"},{"@type":"ListItem","position":4,"name":"Calendar Chart: Time-Series Heatmaps and Daily Activity Tracking"}]},{"@type":"WebSite","@id":"https:\/\/www.vpascode.com\/in\/#website","url":"https:\/\/www.vpascode.com\/in\/","name":"VPasCode","description":"by Visual Paradigm","publisher":{"@id":"https:\/\/www.vpascode.com\/in\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.vpascode.com\/in\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"hi-IN"},{"@type":"Organization","@id":"https:\/\/www.vpascode.com\/in\/#organization","name":"VPasCode","url":"https:\/\/www.vpascode.com\/in\/","logo":{"@type":"ImageObject","inLanguage":"hi-IN","@id":"https:\/\/www.vpascode.com\/in\/#\/schema\/logo\/image\/","url":"https:\/\/www.vpascode.com\/in\/wp-content\/uploads\/sites\/13\/2026\/06\/cropped-vp-online-logo-v1.png","contentUrl":"https:\/\/www.vpascode.com\/in\/wp-content\/uploads\/sites\/13\/2026\/06\/cropped-vp-online-logo-v1.png","width":128,"height":138,"caption":"VPasCode"},"image":{"@id":"https:\/\/www.vpascode.com\/in\/#\/schema\/logo\/image\/"}}]}},"_links":{"self":[{"href":"https:\/\/www.vpascode.com\/in\/wp-json\/wp\/v2\/ld_docs\/1400","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.vpascode.com\/in\/wp-json\/wp\/v2\/ld_docs"}],"about":[{"href":"https:\/\/www.vpascode.com\/in\/wp-json\/wp\/v2\/types\/ld_docs"}],"author":[{"embeddable":true,"href":"https:\/\/www.vpascode.com\/in\/wp-json\/wp\/v2\/users\/3"}],"up":[{"embeddable":true,"href":"https:\/\/www.vpascode.com\/in\/wp-json\/wp\/v2\/ld_docs\/1254"}],"wp:attachment":[{"href":"https:\/\/www.vpascode.com\/in\/wp-json\/wp\/v2\/media?parent=1400"}],"wp:term":[{"taxonomy":"ld_collection","embeddable":true,"href":"https:\/\/www.vpascode.com\/in\/wp-json\/wp\/v2\/ld_collection?post=1400"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}