echarts中柱状图折线图的基本配置

本文详细介绍如何使用ECharts绘制柱状图及折线图,并提供了一系列的配置参数详解,包括颜色设置、间距调整等,帮助开发者快速掌握ECharts的使用技巧。

最近项目中有用到echarts展示数据,方便用户以及平台分析,本打算用canvas自己写一个,不过鉴于业务需求以及后续项目用到的频率,还是决定自己学习echarts,echarts相对于highcharts是一个免费的开源框架,调查了一下午写出了符合公司设计的图表数据展示,中间也遇到了一些坑,现在做一个小的总结,首先参考官方文档http://echarts.baidu.com/index.html中的文档下面的教程,我项目中用的是ng+webpack

在项目目录下安装   npm install echarts --save

2  可以在对应的用到处引入echarts ,可以根据项目中所用到的模块按需加载 

// 引入 ECharts 主模块
var echarts = require('echarts/lib/echarts');
// 引入柱状图
require('echarts/lib/chart/bar');
//引入折线图
require('echarts/lib/chart/line');  

此处我只用到了柱状图,以及折线图,

3 做一些参数配置,

先说一些最基本的

var myChart = echarts.init(document.getElementById('recordBar'));
myChart.setOption(options);

>在结构中先定义一个容器ID,定义宽高;

>

var options={
xAxis: {
data: ['10','11','12','13','14','15','16'],
   },
   yAxis: {

},
   series: [
{
// name: '销量',  
           type: 'bar',      //类型设定柱状图
           barWidth: 24,     //柱状图宽度
           data:[10,20,30,40,20,30,10],
           itemStyle: {
normal: {
// color:'#fff'     //柱状图颜色tongyi
                   color: function (params) { //单独设置没一个柱状图颜色
                       var colorList = ['rgb(255,255,255)', 'rgb(255,255,255)', 'rgb(255,255,255)',
                           'rgb(255,255,255)', 'rgb(255,255,255)', 'rgb(255,255,255)',
                           '#e1c8a4',];
                       return colorList[params.dataIndex];
                   }
}
},
           barGap: '20'          //柱间距    目前不好使
       },
   ]
};

这是必不可少的配置,这样一个最基本的柱状图就出现了,不过会出现X轴,Y轴,以及背景网格,这些在实际开发中多半是不需要的,所以就要去掉X轴,但要保留文本信息,解决方案如下

xAxis: {
data: $scope.oneData.day,
   //splitLine:{show: false},//去除网格线
   show: true,   //去除坐标为false
   //设置x轴坐标颜色
   axisLine: {
lineStyle: {
color: '#45c08a',
       }
},
   //设置x轴文本颜色
   axisLabel: {
show: true,
       textStyle: {
color: 'rgba(255,255,255,0.7)'                    //x轴文本颜色
       }
}
},

将x轴坐标设颜色与背景颜色一致隐藏,文本颜色单独设置,y轴不要直接将show:false,将坐标以及信息全去掉,另外就是去背景网格线,

splitLine:{show: false},//去除网格线

柱状图间距是默认的,可以修改barGap:'xxx',既可以为百分比,又可以为具体值,柱状图可以单独设置每一个颜色,如下

itemStyle: {
normal: {
// color:'#fff'     //柱状图颜色tongyi
       color: function (params) { //单独设置没一个柱状图颜色
           var colorList = ['rgb(255,255,255)', 'rgb(255,255,255)', 'rgb(255,255,255)',
               'rgb(255,255,255)', 'rgb(255,255,255)', 'rgb(255,255,255)',
               '#e1c8a4',];
           return colorList[params.dataIndex];
       }
}
},

我直接放的项目中代码,前六个为白色,最后一个显示橘色,突出今日交易量,如果项目中需要折线图一并显示,只需要在series中添加一个{},也可以单独将折线图放另外一个容器,

//折线数据
{
name: '交易量',
   type: 'line',
   symbol: 'square',   //将折线原点改为方块
   symbolSize: 6,     //拐点大小
   itemStyle: {
normal: {
color: function (params) { //单独设置每一个折点颜色
               var colorList = ['rgb(255,255,255)', 'rgb(255,255,255)', 'rgb(255,255,255)', 'rgb(255,255,255)', 'rgb(255,255,255)', 'rgb(255,255,255)', '#e1c8a4'];
               return colorList[params.dataIndex];
           },       //折点颜色
           lineStyle: {
color: 'rgba(255,255,255,0.7)',    //折线颜色
           }
}
},
   data: $scope.oneData.line
   //data:[40,50,60,70,50,90,80]
},

以上设置一个type类型,以及将拐点从默认的原点改为方块,以及设置方块大小,单独设置每一个折点颜色,也可统一设置一种颜色,以及折线颜色,data用来填充数据的,我是从接口中获得后定义数组展示的

最后一点就是容器怎么适应手机屏幕,如下

//设置容器上下左右间隔
grid: {
// left: '50',
   // right: '10',
   //  bottom: '20',              //left,right,bottom,为容器距离外侧包含块的距离
   // containLabel: true
   x: 0,
   y: 20,
   x2: 0,
   y2: 30              //x,y代表纵坐标的左上角距离容器的大小     ---x2,y2代表横坐标的右下角距离容器的大小
},

 

写的比较清楚,可自测。我的布局是给定了容器宽高,利用flex布局将其容器先居中,容器宽是根据柱宽加一定间距算出来的,

这是有一个数据的情况下,左边折线在最低处也是因为在一个容器内

 

转载于:https://www.cnblogs.com/renmanyi/p/7724902.html

<think>我们参考引用内容来解答用户关于ECharts柱状图设置颜色的问题。用户希望修改或设置柱状图的颜色,包括单根柱子的颜色以及整体配色方案。根据引用[1],我们可以通过设置series中的itemStyle来改变柱子的颜色。引用[2]和[3]提供了设置渐变色的方法。引用[4]则展示了如何统一设置折线图的颜色(虽然用户是柱状图,但原理类似)。引用[5]提到了一些柱状图的变体,但颜色设置方法相同。具体方法如下:1.**统一设置所有柱子颜色**:在series的itemStyle中直接设置color属性。2.**为每根柱子设置不同颜色**:使用回调函数,根据dataIndex返回不同的颜色。3.**设置渐变色**:使用echarts.graphic.LinearGradient或echarts.graphic.RadialGradient创建渐变对象。下面我们通过一个示例来展示这些方法:</think>### ECharts 柱状图颜色设置指南 在 ECharts设置柱状图颜色主要通过 `series.itemStyle.color` 属性实现,以下是完整的配置方法: #### 1. **统一设置所有柱子颜色** ```javascript series: [{ type: 'bar', data: [120, 200, 150, 80, 70], itemStyle: { color: '#5470C6' // 所有柱子统一为蓝色 } }] ``` #### 2. **为单根柱子设置特定颜色** ```javascript data: [ {value: 120, itemStyle: {color: '#91CC75'}}, // 绿色柱子 {value: 200, itemStyle: {color: '#FAC858'}}, // 黄色柱子 {value: 150, itemStyle: {color: '#EE6666'}} // 红色柱子 ] ``` #### 3. **使用渐变色效果** [^2][^3] ```javascript itemStyle: { color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [ {offset: 0, color: '#83bff6'}, // 顶部颜色 {offset: 0.5, color: '#188df0'}, // 中间颜色 {offset: 1, color: '#188df0'} // 底部颜色 ]) } ``` #### 4. **通过回调函数动态设置颜色** [^3] ```javascript itemStyle: { color: function(params) { const colors = ['#5470C6', '#91CC75', '#FAC858', '#EE6666', '#73C0DE']; return colors[params.dataIndex % colors.length]; } } ``` #### 5. **圆柱体效果实现** [^5] ```javascript itemStyle: { color: { type: 'linear', x: 0, y: 0, x2: 0, y2: 1, colorStops: [{ offset: 0, color: 'rgba(0,128,255,0.8)' // 顶部浅色 }, { offset: 1, color: 'rgba(0,128,255,0.2)' // 底部深色 }] }, borderRadius: [15, 15, 0, 0] // 圆角效果 } ``` #### 完整配置示例 ```javascript const option = { xAxis: { data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri'] }, yAxis: {}, series: [{ type: 'bar', data: [ {value: 120, itemStyle: {color: '#91CC75'}}, {value: 200, itemStyle: {color: new echarts.graphic.LinearGradient(0,0,0,1,[ {offset:0, color:'#FAC858'}, {offset:1, color:'#EE6666'} ])}}, {value: 150, itemStyle: {color: '#73C0DE'}}, {value: 80, itemStyle: {color: '#5470C6'}}, {value: 70, itemStyle: {color: '#EE6666'}} ] }] }; ``` **效果说明**: - 第一根柱子:纯绿色 - 第二根柱子:黄到红的渐变 - 第三根柱子:天蓝色 - 第四根柱子:深蓝色 - 第五根柱子:红色 > 提示:使用 `echarts.graphic.LinearGradient` 时可调整渐变方向参数(x,y,x2,y2)实现水平/垂直渐变[^2][^3]。对于复杂场景,建议使用回调函数动态生成颜色值。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值