• Edit
  • Download
  • <!DOCTYPE html>
    <html>
    
    <head>
      <meta charset="utf-8">
      <title>ZingGrid: Blank Grid</title>
      <script nonce="undefined" src="https://cdn.zingchart.com/zingchart.min.js"></script>
      <style>
        html,
        body {
          height: 100%;
          width: 100%;
          margin: 0;
          padding: 0;
        }
    
        .chart--container {
          height: 100%;
          width: 100%;
          min-height: 150px;
        }
    
        .zc-ref {
          display: none;
        }
      </style>
    </head>
    
    <body>
      <!-- CHART CONTAINER -->
      <div id="myChart" class="chart--container">
        <a class="zc-ref" href="https://www.zingchart.com">Powered by ZingChart</a>
      </div>
      <script>
        ZC.LICENSE = ["569d52cefae586f634c54f86dc99e6a9", "b55b025e438fa8a98e32482b5f768ff5"];
    
        function fetchAndRenderPlot(plotIndex) {
          // fetch the remote configurations and render them in
          // succession
          fetch(`https://cdn.zingchart.com/datasets/remote-data-plot${plotIndex}.json`)
            .then(res => {
              return res.json();
            })
            .then(results => {
              // use addplot to instantiate the chart data
              zingchart.exec('myChart', 'addplot', {
                plotindex: plotIndex,
                data: results
              });
            })
            .catch(e => {
              // let the user know there was an error
              zingchart.exec('myChart', 'update', {
                data: {
                  noData: {
                    text: 'Error Fetching remote data, please refresh page.'
                  }
                }
              });
            });
        }
    
        // window:load event for Javascript to run after HTML
        // because this Javascript is injected into the document head
        window.addEventListener('load', () => {
          // Javascript code to execute after DOM content
          const myConfig = {
            type: 'bar',
            title: {
              text: 'Data Basics - Remote Data Async Plots',
              fontSize: 24,
            },
            legend: {
              draggable: true,
            },
            scaleX: {
              // set scale label
              label: {
                text: 'Days'
              },
              // convert text on scale indices
              labels: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']
            },
            scaleY: {
              // scale label with unicode character
              label: {
                text: 'Temperature (°F)'
              }
            },
            scaleY2: {
              // scale label with unicode character
              label: {
                text: 'Temperature (°C)'
              }
            },
            plot: {
              // animation docs here:
              // https://www.zingchart.com/docs/tutorials/design-and-styling/chart-animation/#animation__effect
              animation: {
                effect: 'ANIMATION_EXPAND_BOTTOM',
                method: 'ANIMATION_STRONG_EASE_OUT',
                sequence: 'ANIMATION_BY_NODE',
                speed: 275,
              },
              valueBox: {
                placement: 'top',
              },
            },
            noData: {
              text: 'Fetching remote data...',
              backgroundColor: '#eeeeee',
              fontSize: 18
            },
            // the commented out data is the series (data)
            // objects we are fetching remotely (indvidually)
            series: [
              /*
                {
                  values: [23,20,27,29,25,17,15],
                  text: 'Week 1',
                },
                {
                  values: [35,42,33,49,35,47,35],
                  text: 'Week 2'
                },
                {
                  values: [15,22,13,33,44,27,31],
                  text: 'Week 3'
                }
              */
            ]
          };
    
          // render chart with width and height to
          // fill the parent container CSS dimensions
          zingchart.render({
            id: 'myChart',
            data: myConfig,
            height: '100%',
            width: '100%'
          });
    
          // fetch plots. Use setTimeout to simulate network instability
          fetchAndRenderPlot(1);
          setTimeout(() => {
            fetchAndRenderPlot(2);
          }, 1200);
          setTimeout(() => {
            fetchAndRenderPlot(3);
          }, 3500);
        });
      </script>
    </body>
    
    </html>
    <!DOCTYPE html>
    <html>
    
    <head>
      <meta charset="utf-8">
      <title>ZingGrid: Blank Grid</title>
      <script src="https://cdn.zingchart.com/zingchart.min.js"></script>
    </head>
    
    <body>
      <!-- CHART CONTAINER -->
      <div id="myChart" class="chart--container">
        <a class="zc-ref" href="https://www.zingchart.com">Powered by ZingChart</a>
      </div>
    </body>
    
    </html>
    html,
    body {
      height: 100%;
      width: 100%;
      margin: 0;
      padding: 0;
    }
    
    .chart--container {
      height: 100%;
      width: 100%;
      min-height: 150px;
    }
    
    .zc-ref {
      display: none;
    }
    function fetchAndRenderPlot(plotIndex) {
      // fetch the remote configurations and render them in
      // succession
      fetch(`https://cdn.zingchart.com/datasets/remote-data-plot${plotIndex}.json`)
        .then(res => {
          return res.json();
        })
        .then(results => {
          // use addplot to instantiate the chart data
          zingchart.exec('myChart', 'addplot', {
            plotindex: plotIndex,
            data: results
          });
        })
        .catch(e => {
          // let the user know there was an error
          zingchart.exec('myChart', 'update', {
            data: {
              noData: {
                text: 'Error Fetching remote data, please refresh page.'
              }
            }
          });
        });
    }
    
    // window:load event for Javascript to run after HTML
    // because this Javascript is injected into the document head
    window.addEventListener('load', () => {
      // Javascript code to execute after DOM content
      const myConfig = {
        type: 'bar',
        title: {
          text: 'Data Basics - Remote Data Async Plots',
          fontSize: 24,
        },
        legend: {
          draggable: true,
        },
        scaleX: {
          // set scale label
          label: {
            text: 'Days'
          },
          // convert text on scale indices
          labels: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']
        },
        scaleY: {
          // scale label with unicode character
          label: {
            text: 'Temperature (°F)'
          }
        },
        scaleY2: {
          // scale label with unicode character
          label: {
            text: 'Temperature (°C)'
          }
        },
        plot: {
          // animation docs here:
          // https://www.zingchart.com/docs/tutorials/design-and-styling/chart-animation/#animation__effect
          animation: {
            effect: 'ANIMATION_EXPAND_BOTTOM',
            method: 'ANIMATION_STRONG_EASE_OUT',
            sequence: 'ANIMATION_BY_NODE',
            speed: 275,
          },
          valueBox: {
            placement: 'top',
          },
        },
        noData: {
          text: 'Fetching remote data...',
          backgroundColor: '#eeeeee',
          fontSize: 18
        },
        // the commented out data is the series (data)
        // objects we are fetching remotely (indvidually)
        series: [
          /*
            {
              values: [23,20,27,29,25,17,15],
              text: 'Week 1',
            },
            {
              values: [35,42,33,49,35,47,35],
              text: 'Week 2'
            },
            {
              values: [15,22,13,33,44,27,31],
              text: 'Week 3'
            }
          */
        ]
      };
    
      // render chart with width and height to
      // fill the parent container CSS dimensions
      zingchart.render({
        id: 'myChart',
        data: myConfig,
        height: '100%',
        width: '100%'
      });
    
      // fetch plots. Use setTimeout to simulate network instability
      fetchAndRenderPlot(1);
      setTimeout(() => {
        fetchAndRenderPlot(2);
      }, 1200);
      setTimeout(() => {
        fetchAndRenderPlot(3);
      }, 3500);
    });