您的购物车目前是空的!
ECharts,缩写来自Enterprise Charts,商业级数据图表,它最初是为了满足百度公司商业体系里各种业务系统(如凤巢、广告管家等等)的报表需求。 现在这个项目也由百度在开发维护。
之前我们介绍了【PHP Mysql 动态数据结合 highcharts 图表统计】,最近我们在日常的开发中使用到ECharts插件来制表,但是如果遇到XY轴内容过长显示不全怎么办?下面我们记录一下解决办法。
Table of Contents
$res = db_select('online_action_log','1=1 group by url order by nums desc','url,count(url) as nums','','10'); $res = array_reverse($res); $tmp = array(); foreach($res as $key => $val ){ $tmp['x'][] = $val['nums']; $tmp['y'][] = $val['url']; } $yday_url_top10['xAxis'] = json_encode(array_values($tmp['x'])); $yday_url_top10['yAxis'] = json_encode(array_values($tmp['y']));
<div id="yday_url_top10"></div>
<script type="text/javascript"> /* URL TOP 10 开始*/ yday_url_top10_option = { title : { text: '昨日URL访问前十', // subtext: '数据来自网络' }, tooltip : { trigger: 'axis' }, legend: { data:['昨日URL访问前十', ''] }, toolbox: { show : true, feature : { mark : {show: true}, dataView : {show: true, readOnly: false}, magicType: {show: true, type: ['line', 'bar']}, restore : {show: true}, saveAsImage : {show: true} } }, calculable : true, xAxis : [ { type : 'value', boundaryGap : [0, 0.01] } ], yAxis : [ { type : 'category', data : <?php echo $yday_url_top10['yAxis']?>, axisLabel:{ interval:0,//0:全部显示,1:间隔为1显示对应类目,2:依次类推,(简单试一下就明白了,这样说是不是有点抽象) rotate:0,//倾斜显示,-:顺时针旋转,+或不写:逆时针旋转 } } ], grid: [{ left: '30%',//因旋转导致名字太长的类目造成遮蔽,可以配合这两个属性 bottom:'10%'// 分别表示:距离左边距和底部的距离,具体数值按实际情况调整 }], series : [ { name:'访问次数', type:'bar', itemStyle : { normal : { color:'#ff69b4', //圈圈的颜色 lineStyle:{ color:'#ff69b4' //线的颜色 } } }, data:<?php echo $yday_url_top10['xAxis']?> }, ] }; var yday_url_top10_Chart = echarts.init(document.getElementById('yday_url_top10')); // 使用刚指定的配置项和数据显示图表。 yday_url_top10_Chart.setOption(yday_url_top10_option); /* URL TOP 10 IP 结束*/ </script>
整理代码执行后,数据HTML结果如下:
这里是Y轴的内容比较长,所以我们这里将grid的配置中加入了left:30%
的属性,这里需要根据自己的需求来写。