首頁  >  文章  >  web前端  >  如何在Highcharts中使用燭台圖來展示數據

如何在Highcharts中使用燭台圖來展示數據

WBOY
WBOY原創
2023-12-18 16:42:35943瀏覽

如何在Highcharts中使用燭台圖來展示數據

Highcharts是一款非常受歡迎的JavaScript圖表庫,它可以展示各種形式的資料。燭台圖(Candlestick Chart)是一種專門用來展示股票等金融數據的圖表類型,可以直觀地展現開盤價、收盤價、最高價、最低價等資訊。本文將介紹如何在Highcharts中使用燭台圖來展示數據,並給出特定的程式碼範例。

一、準備工作

在使用Highcharts之前,我們需要先引進Highcharts的JavaScript檔。可以透過CDN或下載本地文件的方式引入,這裡以CDN方式為例:

<script src="https://cdn.jsdelivr.net/npm/highcharts@9.2.2/highcharts.js"></script>

另外,為了方便展示數據,這裡使用了一個開源的JavaScript庫Faker.js,用來產生隨機數據。同樣可以透過CDN方式引入:

<script src="https://cdn.jsdelivr.net/npm/Faker.js"></script>

二、建立容器

要展示Highcharts圖表,首先需要建立一個容器元素,通常是一個div標籤,並指定一個ID,例如:

<div id="chart-container"></div>

這裡我們將圖表容器的ID設定為「chart-container」。

三、設定資料

#在這裡,我們需要產生一些假資料來展示燭台圖。我們可以使用Faker.js庫來產生隨機數據,然後將其格式化為Highcharts所需的資料格式。以下是一個產生100個資料點的範例:

let data = [];
for (let i = 0; i < 100; i++) {
  let open = parseFloat(Faker.Finance.amount(1000, 5000));
  let high = parseFloat(Faker.Finance.amount(open, open * 1.1));
  let low = parseFloat(Faker.Finance.amount(open * 0.9, open));
  let close = parseFloat(Faker.Finance.amount(low, high));
  data.push([i, open, high, low, close]);
}

以上程式碼會產生一個包含100個資料點的數組,每個資料點都是一個包含五個值的數組,分別為資料點的索引、開盤價、最高價、最低價和收盤價。

四、創建燭台圖

有了數據之後,我們就可以創建一個基本的燭台圖了。以下是一個簡單的範例程式碼:

Highcharts.chart('chart-container', {
  chart: {
    type: 'candlestick'
  },
  title: {
    text: '股票数据'
  },
  series: [{
    data: data
  }]
});

以上程式碼將會在「chart-container」容器中建立一個燭台圖,資料採用先前產生的隨機資料。其中:

  • type: 'candlestick'指定了圖表類型為燭台圖。
  • title: { text: '股票資料' }設定了圖表標題為「股票資料」。
  • series: [{ data: data }]指定了資料系列,將先前產生的隨機資料設定為資料系列。

五、自訂樣式

預設的燭台圖樣式可能不符合我們的需求,需求自訂樣式。以下是一個稍微複雜一些的範例程式碼,可以實現更豐富的樣式效果:

Highcharts.chart('chart-container', {
  chart: {
    type: 'candlestick'
  },
  title: {
    text: '股票数据'
  },
  xAxis: {
    labels: {
      formatter: function () {
        return data[this.value][0];
      }
    }
  },
  yAxis: {
    opposite: false,
    labels: {
      formatter: function () {
        return '$' + this.value;
      }
    }
  },
  tooltip: {
    pointFormat: '<span style="font-weight:bold">{series.name}</span><br>' +
        '开盘价: <b>${point.open}</b><br/>' +
        '最高价: <b>${point.high}</b><br/>' +
        '最低价: <b>${point.low}</b><br/>' +
        '收盘价: <b>${point.close}</b><br/>'
  },
  plotOptions: {
    candlestick: {
      color: '#0f0',
      upColor: '#f00',
      lineColor: '#000',
      upLineColor: '#000',
      lineWidth: 1
    }
  },
  series: [{
    name: '股票价格',
    data: data
  }]
});

在上述程式碼中,我們可以看到新增了以下內容:

  • xAxis.labels.formatter屬性將X軸的標籤設定為資料索引。
  • yAxis.labels.formatter屬性將Y軸的標籤設定為美元符號,這裡也可以依照實際需求進行修改。
  • tooltip.pointFormat屬性調整了提示框的格式,包含開盤價、最高價、最低價和收盤價等資訊。
  • plotOptions.candlestick屬性用於設定燭台圖的樣式,這裡我們指定了上漲和下跌的顏色和邊框顏色,並將線寬設為1。

六、總結

使用Highcharts展示燭台圖並不是很複雜。首先我們需要準備好數據,然後建立一個容器元素指定ID,接著需要建立一個Highcharts實例並將容器ID傳入,最後設定資料、樣式、標題等屬性即可。當然,具體樣式的設定還需根據實際情況進行調整。以下是完整的範例程式碼:




  
  
  <script src="https://cdn.jsdelivr.net/npm/highcharts@9.2.2/highcharts.js"></script>
  <script src="https://cdn.jsdelivr.net/npm/Faker.js"></script>
  Highcharts展示烛台图示例


  <div id="chart-container"></div>

  <script>
    let data = [];
    for (let i = 0; i < 100; i++) {
      let open = parseFloat(Faker.Finance.amount(1000, 5000));
      let high = parseFloat(Faker.Finance.amount(open, open * 1.1));
      let low = parseFloat(Faker.Finance.amount(open * 0.9, open));
      let close = parseFloat(Faker.Finance.amount(low, high));
      data.push([i, open, high, low, close]);
    }

    Highcharts.chart('chart-container', {
      chart: {
        type: 'candlestick'
      },
      title: {
        text: '股票数据'
      },
      xAxis: {
        labels: {
          formatter: function () {
            return data[this.value][0];
          }
        }
      },
      yAxis: {
        opposite: false,
        labels: {
          formatter: function () {
            return '$' + this.value;
          }
        }
      },
      tooltip: {
        pointFormat: '<span style="font-weight:bold">{series.name}</span><br>' +
            '开盘价: <b>${point.open}</b><br/>' +
            '最高价: <b>${point.high}</b><br/>' +
            '最低价: <b>${point.low}</b><br/>' +
            '收盘价: <b>${point.close}</b><br/>'
      },
      plotOptions: {
        candlestick: {
          color: '#0f0',
          upColor: '#f00',
          lineColor: '#000',
          upLineColor: '#000',
          lineWidth: 1
        }
      },
      series: [{
        name: '股票价格',
        data: data
      }]
    });
  </script>

以上就是使用Highcharts展示燭台圖的完整過程,透過上面的範例程式碼我們可以學到幾大領域:

  • 匯入Highcharts JavaScript文件。
  • 匯入 Faker.js JavaScript 檔案。
  • 建立帶有 id 的容器元素。
  • 使用 Faker.js 產生隨機資料。
  • 新建 Highcharts 實例,傳入容器元素 ID。
  • 在 Highcharts 實例中定義想要顯示的燭台圖類型。
  • 將產生的資料作為 Data 屬性傳入 Highcharts 實例。
  • 為 X 軸標籤和 Y 軸標籤格式化資料:例如進行美元符號設定等操作。
  • 在 Highcharts 實例中設定燭台圖的樣式相關的屬性:如顏色、線寬等。
  • 在 Highcharts 實例中設定 tooltip 的格式,超詳細設定提示內容。
  • 設定一個標題來描述圖表的內容。

如果你了解 Highcharts 的基礎知識和 JavaScript 的基本語法,上面的程式碼應該要容易理解。對於初學者可以從中初步掌握Highcharts 的相關技巧,對於高級技術工程師來說,通讀這篇文章也是受益匪淺的,前端圖表可視化方面的技術必要性還在不斷上升,相信這篇文章亦能夠為你提供堅實的前進基礎。

以上是如何在Highcharts中使用燭台圖來展示數據的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn