Echarts 柱状图使用

目录

第一种 基础柱状图  

Examples - Apache ECharts  官方案例

Controller

参数说明:

label  使 数据展示在柱状图 顶部位置 

data 打印结果

View文件   主要使用的是 id="echarts_level_count"  方便 在js文件中使用

js文件  渲染 EChart

参数说明:

最终呈现的效果------------

 第二种  堆叠柱状图  

Examples - Apache ECharts  官方示例

Controller

 实现官方文档中的数据结构  保留两个的案例

参数说明:

label  使 数据展示在柱状图 顶部位置 

data 打印结果

​编辑 View文件   主要使用的是 id="echarts_level_count"  方便 在js文件中使用

js文件  渲染 EChart

参数说明:

最终呈现的效果------------


第一种 基础柱状图  

Examples - Apache ECharts  官方案例
Controller

 实现官方文档中的数据结构

参数说明:
label  使 数据展示在柱状图 顶部位置 
        $level_model = model('app\common\model\UserLevel');
		$level_user =$level_model->where(['level'=>['>',1]])->select();
		$datax_level = array_column($level_user,"name");        
        $source_level = [];
		$source_level['name'] = $datax_level;
		$source_level['type'] = "bar";
		$source_level['barGap'] = 0;
		$source_level['emphasis'] = ['focus'=>"series"];
		$source_level['label'] = ['show'=>true,'position'=>"top"];
		$source_level['data'] = $this->getLevelData($level_user);

		$levelCount = [
			'datax'=>$datax_level,
			'source'=>$source_level
		];

		$this->assignconfig('levelCount',$levelCount);


public function getLevelData($level)
	{
		$model = model('app\common\model\User');
		$level_arr =[];
		foreach ($level as $key =>$value) {
			$level_arr[$key] = 	 $model->where('level',$value['level'])->count();

		}
		return $level_arr;

	}
data 打印结果

View文件   主要使用的是 id="echarts_level_count"  方便 在js文件中使用
<div class="row">
	<div class="col-xs-12 col-sm-12">
		<div class="panel">
			<div class="panel-body">
				<div class="chart tab-pane" id="echarts_level_count" style="position: relative; height: 300px;"></div>
			</div>
		</div>
	</div>
</div>
js文件  渲染 EChart
参数说明:

title  图表左侧置顶显示

legend        中部置顶显示的数据  (详细请看第二种柱状图)

xAxis        X轴数据展示

yAxis        Y轴数据展示 (默认   type:'value') 

series        柱状图展示的数据

var barChartLevel = Echarts.init(document.getElementById('echarts_level_count'), 'walden');
			// 使用刚指定的配置项和数据显示图表。
			barChartLevel.setOption({
				title: {
					text: '统计星级人数'
				},
				legend: {
					data:"星级人数",
				},
				tooltip: {},
				xAxis: {type: 'category',data:Config.levelCount.datax},
				yAxis: {type:'value'},
				// Declare several bar series, each will be mapped
				// to a column of dataset.source by default.
				series:Config.levelCount.source
			});
最终呈现的效果------------

 第二种  堆叠柱状图  

Examples - Apache ECharts  官方示例
Controller
 实现官方文档中的数据结构  保留两个的案例

参数说明:
label  使 数据展示在柱状图 顶部位置 
$currentDate = date('Y-m-d');
		// 使用循环获取近七天的日期
		for ($i = 0; $i < 7; $i++) {
			// 使用strtotime函数将当前日期转换为时间戳,并通过循环递减一天来获取过去日期
			$date = date('Y-m-d', strtotime("-$i day", strtotime($currentDate)));
			// 将日期添加到数组中
			$dates_day[]  = $date;
		}
		//排序
		array_multisort($dates_day, SORT_ASC);
		$orderCount_title = ['下单人数', '下单金额'];
		$source = [];
		foreach ($orderCount_title as $key =>$value) {
			$source[$key]['name'] = $value;
			$source[$key]['type'] = "bar";
			$source[$key]['barGap'] = 0;
			$source[$key]['emphasis'] = ['focus'=>"series"];
			$source[$key]['label'] = ['show'=>true,'position'=>"top"];
//			$source[$key]['data'] = [10,20,30,40,50,60,70];
			$source[$key]['data'] = $this->getData($dates_day,$value);
		}

		$orderCount = [
			'title'=>$orderCount_title,
			'datax'=>$dates_day,
//			'datay'=>$datay_data,
			'source'=>$source
		];

		$this->assignconfig('orderCount',$orderCount);


public function getData($dates_day,$name)
	{
		$number  = [];
		$price  = [];
		// 加载商品模型
		$model = model('app\api\model\wanlshop\Order');
		$pay_model = model('app\api\model\wanlshop\Pay');
		foreach ($dates_day as $key =>$value) {
			$number[$key] = $model->where(['state'=>['in',"2,3,4,6"]])->whereTime('paymenttime', '>=', strtotime($value . " 00:00:00"))->whereTime('paymenttime', '<=', strtotime($value . "  23:59:59"))->count();

			$order = $model->where(['state'=>['in',"2,3,4,6"]])->whereTime('paymenttime', '>=', strtotime($value . " 00:00:00"))->whereTime('paymenttime', '<=', strtotime($value . "  23:59:59"))->select();
			if (!empty($order)) {
				$order_ids = array_column($order,'id');
				$price[$key] = $pay_model->whereIn('order_id',$order_ids)->sum('price');
			}else {
				$price[$key] = 0;
			}

		}


		if ($name == "下单人数") {
			return $number;
		}else {
			return $price;
		}
	}
data 打印结果
 View文件   主要使用的是 id="echarts_level_count"  方便 在js文件中使用
<div class="row">
	<div class="col-xs-12 col-sm-12">
		<div class="panel">
			<div class="panel-body">
				<div class="chart tab-pane" id="echarts_order_count" style="position: relative; height: 300px;"></div>
			</div>
		</div>
	</div>
</div>
js文件  渲染 EChart
参数说明:

title  图表左侧置顶显示

legend        中部置顶显示的数据

xAxis        X轴数据展示

yAxis        Y轴数据展示 (默认   type:'value') 

series        柱状图展示的数据

var barChartOrderCount = Echarts.init(document.getElementById('echarts_order_count'), 'walden');
			// 使用刚指定的配置项和数据显示图表。
			barChartOrderCount.setOption({
				title: {
					text: '统计下单人数下单金额'
				},
				legend: {
					data:Config.orderCount.title,
				},

				tooltip: {},
				xAxis: {type: 'category',data:Config.orderCount.datax},
				// yAxis: {data:Config.orderCount.datay},
				yAxis: {type:'value'},
				// Declare several bar series, each will be mapped
				// to a column of dataset.source by default.
				series:Config.orderCount.source
			});
最终呈现的效果------------

使用echarts绘制柱状图,你需要按照以下步骤进行操作: 1. 引入echartsJavaScript文件。 2. 在HTML文件中创建一个div容器,用于显示图表[2]。 3. 通过初始化echarts对象,将图表与div容器进行绑定。 4. 设置图表的配置项,包括标题、x轴、y轴和数据系列等。可以根据需要设置不同的配置项,比如设置柱状图的颜色渐变效果。 5. 将配置项设置给echarts实例对象。 6. 最后,图表就会在div容器中显示出来。 以下是一个使用echarts绘制柱状图的示例代码: ```html <!DOCTYPE html> <html lang="en"> <head> <script src="js/echarts.min.js"></script> </head> <body> <div style="width: 600px;height: 400px"></div> <script> var mCharts = echarts.init(document.querySelector("div")); var option = { title: { text: '成绩', link: 'http://www.itcast.cn', textStyle: { color: 'red' } }, xAxis: { type: 'category', data: ['小明', '小红', '小王'] }, yAxis: { type: 'value' }, series: [ { name: '语文', type: 'bar', data: [70, 92, 87] } ] }; mCharts.setOption(option); </script> </body> </html> ``` 以上就是使用echarts绘制柱状图的基本步骤和代码示例。你可以根据自己的需求调整图表的配置项,来实现不同的样式和效果。<span class="em">1</span><span class="em">2</span><span class="em">3</span><span class="em">4</span> #### 引用[.reference_title] - *1* [echarts 柱状图渐变色背景](https://download.csdn.net/download/qq_36437172/12418565)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* *3* *4* [ECharts的基本使用(一):柱状图与通用配置【第一日学习笔记】](https://blog.csdn.net/fzy2003/article/details/123689863)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值