echarts环形占比图 环形百分比

const pieConf = {
  title: {
    text: '40%',
    left: 'center',
    top: 61.5,
    textStyle:{
      color:'#1890fe'
    }
  },
  visualMap: {
    show: false,
  },
  series: [
    {
      type: 'pie',
      //环形显示饼状图,实际上显示的是50-80之间的部分
      //上限不建议设置为100,echarts自带动画效果,设置为100动画效果很丑
      radius: ['50%', '80%'],
      center: ['50%', '50%'],
      data: [   
      //itemSyle是单项的背景颜色设置。
        { value: 60, itemStyle: { color: '#f1f1f1' } },
        { value: 40, itemStyle: { color: '#1890fe' } },
      ],
      label: {
        //将视觉引导图关闭
        show: false,
      },
      itemStyle:{
      	//设置的是每项之间的留白
        borderWidth:7,
        borderColor:'#fff'
      },
      // 初始化echarts的动画效果
      animationType: 'scale',
      animationEasing: 'elasticOut',
      animationDelay: function (idx) {
        return Math.random() * 200;
      }
    }
  ]

原文链接: https://blog.youkuaiyun.com/qq_47246331/article/details/119598704

<think>嗯,用户的问题是关于如何用Python计算百分比并用ECharts绘制环形。首先,我需要理解用户的需求。他们可能有一些数据需要可视化,特别是以环形的形式展示百分比。用户提到了ECharts,但Python中常用的是pyecharts库,所以应该使用pyecharts来生成表。 接下来,我需要考虑如何计算百分比。通常,计算百分比需要将每个数据项的值除以总和,然后乘以100。例如,如果有数据[5, 20, 36, 10, 75, 90],总和是236,每个项的百分比就是(5/236)*100,依此类推。这部分需要用Python代码实现,可能需要用到列表推导式和sum函数。 然后,关于环形的绘制,根据提供的引用,特别是引用[2]和[4],环形是通过设置radius参数来调整内外圈的比例。例如,radius=["15%", "50%"],这样内圈15%,外圈50%,形成环形。同时,标签的格式化需要正确显示百分比,可能需要用到formatter参数,如引用[2]中的{d}%显示百分比。 还需要注意数据格式是否正确,例如数据是否需要转换成元组或列表,比如引用[4]中的示例使用了zip函数将名称和值组合起来。此外,要确保导入正确的模块,如从pyecharts.charts导入Pie,并使用options配置标题和标签。 用户可能需要示例代码,所以应该一步步来:首先计算百分比,然后生成数据,接着配置饼参数,最后渲染表。同时,需要处理可能的异常,比如数据总和为零的情况,但用户的问题可能假设数据是有效的,所以可能不需要处理,但最好在代码中添加注释提醒。 检查引用中的示例,比如引用[2]中的代码使用了add函数,设置radius,并配置了标签格式为{d}%。用户可能需要将原始数据转换为百分比,但pyecharts的饼可以自动计算百分比,如果数据已经是总和的部分的话。或者用户可能需要显式计算百分比,然后传递给表。需要明确这一点。 比如,在引用[4]中,数据直接是原始值,表显示的是{c},而标签格式设置为{d}%,这样pyecharts会自动计算百分比。因此,可能不需要手动计算,但用户可能希望显示实际百分比数值,这时候可能需要将数据转换为百分比,或者正确使用formatter参数。 可能需要两种方式:一种是直接传递原始值,让pyecharts计算百分比;另一种是手动计算百分比,然后传递。根据用户的问题,他们提到“计算百分比”,所以可能需要手动计算,然后显示。 例如,数据是[5,20,36,10,75,90],总和是236,计算每个值的百分比,得到[2.12%, 8.47%, 15.25%, 4.24%, 31.78%, 38.14%],然后可能需要将这些百分比作为值传递给饼。但饼通常需要原始值,然后自动计算百分比。所以可能需要澄清这一点,但根据用户的问题,可能只需要传递原始值,然后让表显示百分比。 因此,正确的步骤应该是: 1. 准备数据,包含名称和原始数值。 2. 计算总和,但可能不需要手动计算每个百分比,因为pyecharts会自动处理。 3. 使用Pie类创建饼,设置radius为环形。 4. 配置标签格式为显示百分比,如{d}%。 5. 渲染表。 根据引用[2]和[4]的示例,代码结构大致如下:导入必要的模块,创建数据,使用add方法添加数据,设置radius,配置标签格式,然后渲染。 因此,用户的问题可能更关注如何正确配置环形,而不是手动计算百分比。但根据问题描述,“计算百分比”可能需要显式计算,所以需要确认是否需要将数值转换为百分比后再传递,或者直接传递原始值让表处理。 例如,在引用[4]中,数据是原始数值,标签使用{c}显示实际值,而{d}显示百分比。如果用户希望显示百分比,那么应该使用{d}%。所以正确的formatter应该是"{b}: {d}%",如引用[2]中的例子。 因此,综合以上思考,正确的代码应该是: 导入Pie和opts,准备数据,使用add方法并设置radius,配置标签为显示百分比,然后渲染。这样pyecharts会自动计算每个部分总和的百分比,无需手动计算。但用户的问题提到“计算百分比”,可能需要解释这部分,即pyecharts内部如何处理,或者是否需要手动计算。 例如,用户的数据可能是各个部分的数值,总和由pyecharts计算,然后每个部分的百分比自动得出。因此,无需手动计算,只需传递原始值即可。但如果有特殊需求,比如百分比基于其他总和,可能需要手动处理。 因此,示例代码应包括传递原始值,并正确设置标签格式以显示百分比。同时,环形的配置通过radius参数实现。 最后,确保代码正确无误,引用了正确的引用来源,如引用[2]和[4]中的示例,并可能添加异常处理或注释,提醒用户注意数据格式和总和不为零的情况。</think>以下是使用Python计算百分比并绘制ECharts环形的完整实现步骤: ### 1. 数据准备与百分比计算 ```python # 原始数据 categories = ["衬衫", "羊毛衫", "雪纺衫", "裤子", "高跟鞋", "袜子"] values = [5, 20, 36, 10, 75, 90] # 计算总和 total = sum(values) # 计算百分比并保留两位小数 percentages = [round((v/total)*100, 2) for v in values] # 组合成ECharts所需格式 data = list(zip(categories, values)) # 原始值与百分比可同时存储[^4] ``` ### 2. 环形绘制代码 ```python from pyecharts.charts import Pie from pyecharts import options as opts pie = ( Pie() .add( series_name="商品销量", data_pair=data, radius=["30%", "70%"], # 内圈30%,外圈70%,形成环形[^2] label_opts=opts.LabelOpts( formatter="{b}: {d}%", # 显示名称和百分比[^4] position="outside" ) ) .set_global_opts( title_opts=opts.TitleOpts( title="商品销量比分析", subtitle=f"总销量:{total}件" ), legend_opts=opts.LegendOpts( orient="vertical", pos_top="15%", pos_right="2%" ) ) .set_series_opts( tooltip_opts=opts.TooltipOpts( trigger="item", formatter="{a} <br/>{b}: {c}件 ({d}%)" ) ) ) pie.render_notebook() # Jupyter中显示 # pie.render("ring_chart.html") # 生成HTML文件 ``` ### 3. 关键参数说明 1. **radius参数**:控制环形内外半径比例 - `["30%", "70%"]` 表示内半径30%,外半径70% - 调整为`["15%", "50%"]`可得到更细的环形 2. **标签格式配置**: ```python formatter="{b}: {d}%" # 显示类别名称和百分比 ``` - `{b}`: 类别名称 - `{d}`: 自动计算的百分比 - `{c}`: 原始数值 3. **提示框配置**: ```python formatter="{a} <br/>{b}: {c}件 ({d}%)" ``` - 同时显示原始值和百分比 ### 4. 效果增强技巧 - 添加渐变色:通过`set_series_opts`配置颜色渐变 - 旋转角度:添加`rosetype="radius"`实现南丁格尔玫瑰效果 - 动画效果:配置`animation_opts=opts.AnimationOpts()`参数 - 3D效果:使用`Pie3D`类代替`Pie`类[^3]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值