当前位置: 首页 > news >正文

无极限网站模板怎样申请自己的电商平台

无极限网站模板,怎样申请自己的电商平台,一个做音乐的网站,怎么给网站做优化用Echarts的柱状图实现圆柱体效果 在数据可视化的世界里,Echarts凭借其强大的功能和丰富的特性,成为众多开发者的首选工具。本文将深入探讨如何利用Echarts的柱状图来实现独特的圆柱体效果,通过详细剖析代码,让大家了解其中的实现…

用Echarts的柱状图实现圆柱体效果

在数据可视化的世界里,Echarts凭借其强大的功能和丰富的特性,成为众多开发者的首选工具。本文将深入探讨如何利用Echarts的柱状图来实现独特的圆柱体效果,通过详细剖析代码,让大家了解其中的实现原理和技巧。

最终结果

在这里插入图片描述

1. 前期准备

在开始编写代码前,我们需要引入必要的依赖。代码中通过以下方式引入相关模块:

import CommonChart from '../../CommonChart';
import { EChartOption } from '../../utils/EChartOption';
import * as echarts from 'echarts';

CommonChart 可能是一个自定义的图表组件,对 Echarts 进行了进一步封装,方便在项目中使用。EChartOption 导入了 Echarts 的配置选项类型定义,而 echarts 库则是实现图表的核心。

2. 数据结构与模拟数据

为了展示充电和放电数据在不同电站的分布情况,我们定义了如下数据结构和模拟数据:

interface StatisticsBarChartProps {chargingList: number[];dischargingList: number[];timeList: string[];
}const mockData: StatisticsBarChartProps = {chargingList: [36, 20, 30, 30, 16],dischargingList: [20, 16, 20, 20, 8],timeList: ['电站1', '电站2', '电站3', '电站4', '电站5']
};

StatisticsBarChartProps 接口描述了数据结构,包含充电量列表 chargingList、放电量列表 dischargingList 和电站名称列表 timeListmockData 则是符合该接口结构的模拟数据,用于测试和演示。

3. 核心组件 - StatisticsBarChart

StatisticsBarChart 组件是实现圆柱体效果柱状图的关键部分。

const StatisticsBarChart = (props: StatisticsBarChartProps) => {const { chargingList, dischargingList, timeList } = props;const option = {animation: false,grid: {bottom: '15%',left: '12.5%',top: '20%',right: '10%'},tooltip: {trigger: 'axis',axisPointer: {type: 'shadow',label: {backgroundColor: '#283b56'}}},legend: {top: '0%',left: 'right',textStyle: {color: '#fff'},itemHeight: 8,itemWidth: 8,itemGap: 16,data: [{name: '充电',icon: 'circle',itemStyle: {color: 'rgba(82, 223, 142, 1)'}},{name: '放电',icon: 'circle',itemStyle: {color: 'rgba(255, 157, 0, 1)'}}]},xAxis: {type: 'category',axisLabel: {color: '#fff'},data: timeList},yAxis: [{type: 'value',scale: true,name: '电量/MWh',min: 0,interval: 10,splitLine: {show: true,lineStyle: {color: 'rgba(255,255,255,0.19)',width: 1,type: 'dashed'}},axisLine: {show: false,lineStyle: {color: '#fff'}},nameTextStyle: {color: '#fff',padding: [3, 4, 5, 10]}}],series: [{name: '充电',type: 'bar',barWidth: 14,label: {show: true,position: 'top',color: '#fff'},itemStyle: {color: {type: 'linear',x: 0,y: 0,x2: 0,y2: 1,colorStops: [{offset:0,color: 'rgba(82, 223, 142, 0)'},{offset: 1,color: 'rgba(82, 223, 142, 0.5)'}],global: false}},data: chargingList},{name: '放电',type: 'bar',barWidth: 14,label: {show: true,position: 'top',color: '#fff'},itemStyle: {color: {type: 'linear',x: 0,y: 0,x2: 0,y2: 1,colorStops: [{offset:0,color: 'rgba(250, 157, 0, 0)'},{offset: 1,color: 'rgba(255, 157, 0, 0.5)'}],global: false}},data: dischargingList,barGap: '30%'},{type: 'custom',tooltip: {show: false},renderItem: (params: echarts.CustomSeriesRenderItemParams, api: echarts.CustomSeriesRenderItemAPI) => {var value = api.value(1);var endPoint = api.coord([api.value(0), value]);var ellipseX = endPoint[0];var ellipseY = endPoint[1];return {type: 'ellipse',shape: {cx: ellipseX - 9,cy: ellipseY + 2,rx: 7,ry: 4},style: {fill: 'rgba(82, 233, 142, 1)',shadowBlur: 4,shadowColor: 'rgba(82, 223, 142, 1)',shadowOffsetX: 0,shadowOffsetY: 0}};},encode: {x: 0,y: 1},data: mockData.chargingList.map(function (val, idx) {return [idx, val];})},{type: 'custom',tooltip: {show: false},renderItem: (params: echarts.CustomSeriesRenderItemParams, api: echarts.CustomSeriesRenderItemAPI) => {var value = api.value(1);var endPoint = api.coord([api.value(0), value]);var ellipseX = endPoint[0];var ellipseY = endPoint[1];return {type: 'ellipse',shape: {cx: ellipseX + 9,cy: ellipseY,rx: 7,ry: 4},style: {fill: 'rgba(255, 157, 0, 1)',shadowBlur: 4,shadowColor: 'rgba(255, 157, 0, 1)',shadowOffsetX: 0,shadowOffsetY: 0}};},encode: {x: 0,y: 1},data: mockData.dischargingList.map(function (val, idx) {return [idx, val];})}]} as EChartOption;return <CommonChart option={option} width="100%" height="100%" />;
};

3.1 图表整体配置

  • 动画设置animation: false 关闭了图表的动画效果,提升性能,减少视觉干扰。
  • 网格布局grid 属性通过设置 bottomlefttopright 值,精确控制图表在容器中的位置和大小。
  • 提示框tooltip 配置了鼠标悬停提示框,trigger: 'axis' 表示坐标轴触发,axisPointer 设置了提示框样式和指针类型为 shadow,并定义了标签背景颜色。

3.2 图例设置

  • 位置与样式legend 中,top: '0%'left: 'right' 将图例置于右上角,textStyle 设置文本颜色为白色,还设置了图例项的高度、宽度和间距。
  • 自定义形状和颜色data 数组中,对 “充电” 和 “放电” 图例设置 icon: 'circle' 为圆形,并分别设置不同颜色以区分数据系列。

3.3 坐标轴设置

  • X轴xAxis 为分类轴,type: 'category'axisLabel 设置轴标签颜色,data 传入电站名称列表作为刻度值。
  • Y轴yAxis 是数值轴,type: 'value',开启自动缩放 scale: true,设置名称、最小值、刻度间隔,以及分割线和坐标轴名称的样式。

3.4 柱状图系列设置

  • 充电柱状图:第一个 series 定义充电数据柱状图,设置名称、类型、柱子宽度、数据标签和颜色渐变,通过线性渐变模拟圆柱体光影效果。
  • 放电柱状图:类似充电柱状图,设置放电数据柱状图,不同的是柱子间隙 barGap: '30%' 和颜色渐变。

3.5 实现圆柱体效果 - 自定义图形绘制

通过 custom 系列的 renderItem 函数在柱状图顶部绘制椭圆模拟圆柱体顶部。

  • 充电椭圆绘制:第三个 series 为自定义系列,获取数据点数值和坐标,绘制带有阴影的椭圆,颜色与充电柱状图一致。
  • 放电椭圆绘制:第四个 series 类似,绘制放电柱状图顶部椭圆,颜色对应放电柱状图。

最后,组件返回 CommonChart 并传入配置好的 option,设置宽度和高度为 100% 自适应容器。

4. 页面展示组件 - StatisticsBar

const StatisticsBar = () => {return (<divstyle={{width: '100%',overflow: 'hidden',boxSizing: 'border-box',height: '100%'}}><StatisticsBarChart {...mockData} /></div>);
};export default StatisticsBar;

StatisticsBar 组件创建一个 div 容器,设置样式并渲染 StatisticsBarChart 组件,传入模拟数据,在页面展示完整柱状图。

通过以上代码,我们成功利用 Echarts 实现了具有圆柱体效果的柱状图,展示了 Echarts 强大的定制能力和数据可视化魅力。在实际应用中,可根据需求灵活调整配置和样式,创造更精彩的数据可视化作品。

http://www.ds6.com.cn/news/52229.html

相关文章:

  • 网站建设企业怎样上百度做广告
  • 客户求购平台关键词智能优化排名
  • 邯郸景区网站制作今日头条新闻最全新消息
  • 郑州网站的优化怎么创建自己的游戏网站
  • 事业圈app哪家公司开发的seo专业论坛
  • 手机建网站 优帮云关键词搜索排名工具
  • wordpress评论数标签东莞seo优化排名
  • 在临沂做网站中国网络推广网站排名
  • 网站被挂黑链怎么处理安徽网站推广
  • 代理国外网站国内最新消息新闻
  • 企业单页网站模板怎样打百度人工客服热线
  • 建设网站用什么语言好重庆seo入门教程
  • 做门户网站的意义在哪站长统计app网站
  • php网站开发教程图片域名关键词排名查询
  • 网站备案 论坛百度网站推广价格
  • 平面设计创意构图绍兴seo推广公司
  • 网站为什么显示正在建设中常州网站建设优化
  • 企业网站建设的必要性和重要性高粱seo博客
  • 做不锈钢管网站最近的新闻大事
  • 深圳做微信网站公司名称软文代理平台
  • 企业手机网站建设咨询网站建设与管理是干什么的
  • 上海哪家公司做网站好广州营销优化
  • 网站域名设计推荐合肥网站优化软件
  • 用axure做网站seo到底是做什么的
  • 成都公司注册流程完整版深圳seo优化外包公司
  • 一个网站开发谷歌浏览器搜索入口
  • 贵阳做网站cncolour企业在线培训平台
  • 甘肃做网站的公司有哪些seo有哪些优缺点?
  • 南沙区做网站公司网站优化排名首页
  • 邢台网站建设与制作中国进入一级战备状态了吗