求教使用echart前台X轴实现多种!

ekinchen3 2017-09-20 10:40:50
想要实现的效果:
app.title = '堆叠柱状图';

option = {
tooltip : {
trigger: 'axis',
axisPointer : { // 坐标轴指示器,坐标轴触发有效
type : 'shadow' // 默认为直线,可选为:'line' | 'shadow'
}
},
legend: {
data:['直接访问','邮件营销','联盟广告','视频广告','搜索引擎','百度','谷歌','必应','其他']
},
grid: {
left: '3%',
right: '4%',
bottom: '3%',
containLabel: true
},
xAxis : [
{
type : 'category',
data : ['周一','周二','周三','周四','周五','周六','周日']
}
],
yAxis : [
{
type : 'value'
}
],
series : [
{
name:'直接33访问',
type:'bar',
data:[320, 332, 301, 334, 390, 330, 320]
},
{
name:'邮件营销',
type:'bar',
stack: '广告',
data:[120, 132, 101, 134, 90, 230, 210]
},
{
name:'联盟广告',
type:'bar',
stack: '广告',
data:[220, 182, 191, 234, 290, 330, 310]
},
{
name:'视频广告',
type:'bar',
stack: '广告',
data:[150, 232, 201, 154, 190, 330, 410]
},
{
name:'搜索引擎',
type:'bar',
data:[862, 1018, 964, 1026, 1679, 1600, 1570],
markLine : {
lineStyle: {
normal: {
type: 'dashed'
}
},
data : [
[{type : 'min'}, {type : 'max'}]
]
}
},
{
name:'百度',
type:'bar',
barWidth : 5,
stack: '搜索引擎',
data:[620, 732, 701, 734, 1090, 1130, 1120]
},
{
name:'谷歌',
type:'bar',
stack: '搜索引擎',
data:[120, 132, 101, 134, 290, 230, 220]
},
{
name:'必应',
type:'bar',
stack: '搜索引擎',
data:[60, 72, 71, 74, 190, 130, 110]
},
{
name:'其他',
type:'bar',
stack: '搜索引擎',
data:[62, 82, 91, 84, 109, 110, 120]
}
]
};
在线演示为http://echarts.baidu.com/demo.html#bar-stack

我现在只能实现x轴为一种数据,多种如何写呢?
前台:
<div id="echart" style="width:100%; height:400px;"></div>
<script type="text/javascript">
$(document).ready(
function () {

$.ajax({
url: "../../tools/statics_ajax.ashx",
data: { cmd: "eva" },
cache: false,
async: false,
dataType: 'json',

success: function (data) {
if (data) {
Evaluate(data, "echart");
}
},
error: function (msg) {
alert("系统发生错误");
}
});
});
</script>


function Evaluate(data, id) {

var option = ECharts.ChartOptionTemplates.Evaluate(data);
var container = document.getElementById(id);
opt = ECharts.ChartConfig(container, option);
ECharts.Charts.RenderChart(opt);

}


Evaluate: function (data, name, is_stack) {
//data:数据格式:{name:xxx,group:xxx,value:xxx}...
//用于评价数据统计使用
var bars_dates = ECharts.ChartDataFormate.FormateGroupData(data, 'bar', is_stack);
var option = {
legend: bars_dates.category,
xAxis: [{
type: 'category', //X轴均为category,Y轴均为value
data: bars_dates.xAxis,
axisLabel: {
show: true,
interval: 'auto',
rotate: 0,
margion: 8
}
}],

yAxis: [{
type: 'value',
name: name || '',
splitArea: { show: true }
}],
series: bars_dates.series
};
return $.extend({}, ECharts.ChartOptionTemplates.CommonLineOption, option);
},

数据已经获取,只能按以下方法获取一类数据,比如c1,如何同时显示c1,c2,c3数据呢?
/// <summary>
/// 统计各个评价数量
/// </summary>
/// <param name="context"></param>
public void GetPie(HttpContext context)
{
StringBuilder strTxt = new StringBuilder();
BLL.dt_fi_keybehavior bll = new BLL.dt_fi_keybehavior();
DataSet ds = bll.GetEvaCount("");

lists = new List<object>();
foreach (DataRow dr in ds.Tables[0].Rows)
{
var obj = new { name = dr["title"], value = dr["c1"] };
lists.Add(obj);
}
jsS = new JavaScriptSerializer();
result = jsS.Serialize(lists);
context.Response.Write(result);
}
...全文
1624 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
qianpengabc 2017-11-06
  • 打赏
  • 举报
回复
series[i].data = 返回的数组 就可以了啊
ekinchen3 2017-09-21
  • 打赏
  • 举报
回复
就是想实现以下要求,将数据库读到的c1,c2,c3分别赋给下面 激励、关注、约束三类 series: [ { name: '激励', type: 'bar', data: [120, 132, 101, 134, 90, 230, 210] }, { name:'关注', type:'bar', data:[220, 182, 191, 234, 290, 330, 310] }, { name:'约束', type:'bar', data:[150, 232, 201, 154, 190, 330, 410] }
ekinchen3 2017-09-21
  • 打赏
  • 举报
回复
就是echarts中的series数据如何循环显示?

4,816

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 图表区
社区管理员
  • 图表区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧