使用 Highcharts 创建饼图

发布:2024-09-06 11:39 阅读:51 点赞:0

饼图是一种常用的数据可视化方法,用于展示组成或比较的紧凑概述。虽然在某些情况下可能比条形图更难阅读,但对于小型数据集来说,饼图仍然是一个受欢迎的选择。

一、引入 Highcharts CDN

为了使用 Highcharts,我们需要引入相关的脚本文件。

<script src="https://code.highcharts.com/highcharts.js">script>
<script src="https://code.highcharts.com/modules/exporting.js">script>
<script src="https://code.highcharts.com/modules/export-data.js">script>
<script src="https://code.highcharts.com/modules/accessibility.js">script>

这些脚本分别提供了 Highcharts 的核心功能、导出功能、导出数据功能以及无障碍性支持。

二、HTML 文件结构

创建一个 HTML 文件 piechart.html,并在其中添加如下代码:

<figure class="highcharts-figure">
    <div id="container">div>
    <p class="highcharts-description">
        这是一个由 Brahma Prakash Shukla 创建的饼图。
    p>
figure>

三、CSS 样式

接下来,创建一个 CSS 文件来美化饼图:

.highcharts-figure,
.highcharts-data-table table {
    min-width320px;
    max-width800px;
    margin1em auto;
}

.highcharts-data-table table {
    font-family: Verdana, sans-serif;
    border-collapse: collapse;
    border1px solid #ebebeb;
    margin10px auto;
    text-align: center;
    width100%;
    max-width500px;
}

.highcharts-data-table caption {
    padding1em 0;
    font-size1.2em;
    color#555;
}

.highcharts-data-table th {
    font-weight600;
    padding0.5em;
}

.highcharts-data-table td,
.highcharts-data-table th,
.highcharts-data-table caption {
    padding0.5em;
}

.highcharts-data-table thead tr,
.highcharts-data-table tr:nth-child(even) {
    background#f8f8f8;
}

.highcharts-data-table tr:hover {
    background#f1f7ff;
}

input[type="number"] {
    min-width50px;
}
  • .highcharts-figure 和 .highcharts-data-table table 设置图表及其表格的基本样式。
  • .highcharts-data-table caption 设置表格标题样式。
  • .highcharts-data-table th 设置表格头部单元格样式。
  • .highcharts-data-table td 设置表格数据单元格样式。
  • .highcharts-data-table thead tr 和 .highcharts-data-table tr:nth-child(even) 设置表格行背景色。
  • .highcharts-data-table tr:hover 设置鼠标悬停效果。
  • input[type="number"] 设置输入框宽度。

四、JavaScript 代码

创建一个 JavaScript 文件来展示饼图数据:

Highcharts.chart('container', {
    // 图表配置
    chart: {
        plotBackgroundColornull,  // 背景颜色设为透明
        plotBorderWidthnull,      // 边框宽度设为0
        plotShadowfalse,          // 不使用阴影
        type'pie'                 // 图表类型为饼图
    },
    // 标题配置
    title: {
        text'饼图示例'
    },
    // 提示信息配置
    tooltip: {
        pointFormat'{series.name}: {point.percentage:.1f}%'  // 提示信息格式
    },
    // 可访问性配置
    accessibility: {
        point: {
            valueSuffix'%'  // 值的后缀
        }
    },
    // 绘制选项配置
    plotOptions: {
        pie: {
            allowPointSelecttrue,  // 允许点选
            cursor'pointer',       // 鼠标指针样式
            dataLabels: {            // 数据标签配置
                enabledtrue,       // 启用数据标签
                format'{point.name}: {point.percentage:.1f} %'  // 数据标签格式
            }
        }
    },
    // 数据系列配置
    series: [{
        name'品牌',
        colorByPointtrue,  // 按点分配颜色
        data: [              // 数据项
            {
                name'x',
                y70.67,
                slicedtrue,  // 是否切片
                selectedtrue  // 是否选中
            },
            {
                name'y',
                y14.77
            },
            {
                name'z',
                y4.86
            },
            {
                name'a',
                y2.63
            },
            {
                name'b',
                y1.53
            },
            {
                name'c',
                y1.40
            },
            {
                name'd',
                y0.84
            },
            {
                name'e',
                y0.51
            },
            {
                name'f',
                y2.6
            }
        ]
    }]
});

这段代码配置了一个饼图,展示了不同品牌的市场份额,并且设置了数据标签以方便阅读。

pie chart using Highchart

五、另一个饼图示例

下面是一个更简单的示例,演示如何使用 jQuery 和 Highcharts 创建一个饼图。

<html>
<head>
    <title>另一个饼图示例title>
    
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js">script>
    
    <script src="https://code.highcharts.com/highcharts.js">script>
head>
<body>
    <div id="container" style="width: 600px; height: 450px; margin: 0 auto">div>
    <script>
        $(document).ready(function() {
            var chart = {
                plotBackgroundColornull,
                plotBorderWidthnull,
                plotShadowfalse
            };
            var title = {
                text'基础饼图示例'
            };
            var tooltip = {
                pointFormat'{series.name}: {point.percentage:.1f}%'
            };
            var plotOptions = {
                pie: {
                    allowPointSelecttrue,
                    cursor'pointer',
                    dataLabels: {
                        enabledtrue,
                        format'{point.name}%: {point.percentage:.1f} %',
                        style: {
                            color: (Highcharts.theme && Highcharts.theme.contrastTextColor) ||
                            'black'
                        }
                    }
                }
            };
            var series = [{
                type'pie',
                name'基础示例',
                data: [
                    ['A'45.0],
                    ['B'26.8],
                    {
                        name'C',
                        y12.8,
                        slicedtrue,
                        selectedtrue
                    },
                    ['D'8.5],
                    ['E'6.2],
                    ['F'0.7]
                ]
            }];
            var json = {};
            json.chart = chart;
            json.title = title;
            json.tooltip = tooltip;
            json.series = series;
            json.plotOptions = plotOptions;
            $('#container').highcharts(json);
        });
    
script>
body>
html>

pie chart using Highchart

这个示例通过 jQuery 初始化 Highcharts,并展示了基本的数据系列和配置选项。

通过以上的步骤,你应该能够创建出自己的饼图,并对其进行个性化定制。希望这篇文章能帮助你在实际项目中更好地应用 Highcharts。