• Chart.js 2.9.4 创建堆积条形图


    这是一个使用 Chart.js 创建堆积条形图(有时称为堆积柱形图)的简单示例。

    Chart.js 为设计人员和开发人员提供简单而灵活的 JavaScript 图表。

    它允许您在 HTML 中创建所有类型的条形图、折线图、区域图和其他图表。它使用画布标准。虽然我更喜欢在 Web 上处理数据可视化时使用SVG,但 Chart.js 是一个流行的选项,因此值得一试。

    从一个基本的开始index.html

    1. <!DOCTYPE html>
    2. <html lang="en">
    3. <head>
    4. <meta charset="utf-8">
    5. <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
    6. <title>My Stacked Bar Chart</title>
    7. </head>
    8. <body>
    9. </body>
    10. </html>

    在正文中,我们需要一个&lt;canvas&gt;要绑定的元素。这是图表将出现的地方。

    <canvas id="chart"></canvas>
    

    我们将引入 Chart.js 库。

    <script src="[https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.3.0/Chart.min.js](https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.3.0/Chart.min.js)"></script>
    

    图表的其余部分将使用 JavaScript 编码。所以另一个&lt;script&gt;标签是必要的。

    1. <script>
    2. // Chart code will go here.
    3. </script>

    我们首先需要一个对&lt;canvas&gt;我们之前编写的元素的引用。

    var ctx = document.getElementById('chart');
    

    我们将在这个元素上实例化一个新图表。第一个参数是绑定元素,第二个是我们图表的定义。该定义将具有三个属性:类型、数据和选项。

    1. var myChart = new Chart(ctx, {
    2. type: 'bar',
    3. data: {},
    4. options: {}
    5. });

    请注意,我们已经告诉 Chart.js 这将是一个bar类型图表。

    data属性中,我们将定义数据集及其标签。在我的示例中,我有三个数据集——都具有相同的标签。

    1. data: {
    2. labels: ['Risk Level'],
    3. datasets: [
    4. { /* dataset one */ },
    5. { /* dataset two */ },
    6. { /* dataset three */ }
    7. ]
    8. }

    每个数据集都有一个标签、数据数组和背景颜色。在堆积条形图中,每个数据集将只有一个数据点。

    1. datasets: [
    2. {
    3. label: 'Low',
    4. data: [67.8],
    5. backgroundColor: '#D6E9C6' // green
    6. },
    7. {
    8. label: 'Moderate',
    9. data: [20.7],
    10. backgroundColor: '#FAEBCC' // yellow
    11. },
    12. {
    13. label: 'High',
    14. data: [11.4],
    15. backgroundColor: '#EBCCD1' // red
    16. }
    17. ]

    我们已经告诉 Chart.js 我们想要一个条形图,我们已经告诉它我们的数据,最后一步是告诉它这是应该堆叠的图表。我们在options物业中这样做。

    1. options: {
    2. scales: {
    3. xAxes: [{ stacked: true }],
    4. yAxes: [{ stacked: true }]
    5. }
    6. }

    最终结果是堆积条形图。

    这是

     

    完整的代码: 

    1. <!DOCTYPE html>
    2. <html lang="en">
    3. <head>
    4. <meta charset="utf-8">
    5. <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
    6. <title>My Stacked Bar Chart</title>
    7. <script src="Chart.min.js"></script>
    8. </head>
    9. <body>
    10. <canvas id="chart"></canvas>
    11. <canvas id="canvas18"></canvas>
    12. <script>
    13. var ctx = document.getElementById('chart');
    14. var myChart = new Chart(ctx, {
    15. type: 'bar',
    16. data: {
    17. labels: ['张三', '李四'],
    18. datasets: [
    19. {
    20. label: '语文',
    21. data: [94.5, 89.6],
    22. backgroundColor: '#D6E9C6',
    23. },
    24. {
    25. label: '数学',
    26. data: [84.2, 93.5],
    27. backgroundColor: '#FAEBCC',
    28. },
    29. {
    30. label: '英语',
    31. data: [88.4, 87.8],
    32. backgroundColor: '#EBCCD1',
    33. }
    34. ]
    35. },
    36. options: {
    37. scales: {
    38. xAxes: [{stacked: true}],
    39. yAxes: [{stacked: true}]
    40. }
    41. }
    42. });
    43. var ctx18 = document.getElementById('canvas18').getContext('2d');
    44. window.myBar = new Chart(ctx18, {
    45. type: 'bar',
    46. data: {
    47. labels: ["2021-07", "2021-08", "2021-09", "2021-10", "2021-11", "2021-12", "2022-01", "2022-02", "2022-03", "2022-04", "2022-05", "2022-06", "2022-07"],
    48. datasets: [{
    49. label: '连接时间(毫秒)',
    50. backgroundColor: 'rgb(255, 99, 132)',
    51. borderColor: 'rgb(255, 99, 132)',
    52. borderWidth: 1,
    53. data: ["318", "324", "330", "349", "360", "368", "376", "382", "389", "395", "398", "402", "403"]
    54. },
    55. {
    56. label: '读取时间(毫秒)',
    57. backgroundColor: 'rgb(54, 162, 235)',
    58. borderColor: 'rgb(54, 162, 235)',
    59. borderWidth: 1,
    60. data: ["436", "439", "463", "470", "538", "540", "540", "541", "633", "633", "633", "634", "634"]
    61. }]
    62. },
    63. options: {
    64. responsive: true,
    65. legend: {
    66. position: 'top',
    67. },
    68. title: {
    69. display: true,
    70. text: '系统1'
    71. },
    72. scales: {
    73. xAxes: [{stacked: true}],
    74. yAxes: [{stacked: true}, {
    75. ticks: {
    76. beginAtZero: true
    77. }
    78. }]
    79. }
    80. }
    81. });
    82. </script>
    83. </body>
    84. </html>

     

  • 相关阅读:
    Java反射
    JDK的安装
    学习笔记 MySQL面试题积累(重要) 【实时更新】
    构建和安装rdma-core用户空间库
    BaiChuan13B-GPTQ量化详解
    【懒狗福音】自动化提取待复习内容 极大提高效率
    LVS+keepalived——高可用集群
    c语言:sprintf() 函数用法示例
    python 爬虫 - 学习 urllib 和 requests 使用,模拟请求
    SLAM从入门到精通(gmapping建图)
  • 原文地址:https://blog.csdn.net/allway2/article/details/125598882