Jquery D3:绘制错误数据集的多行图

Jquery D3:绘制错误数据集的多行图,jquery,d3.js,Jquery,D3.js,当我运行这部分代码时,我会在图像中附加以下输出 问题是,我的最大值在y轴上缩放,但我的线没有打印(例如,在下面的代码中,我的最大值是52,但我的线打印到40,可以在图像中查看) 我正在绘制x轴上的时间与y轴上的数据数量 如果使用相同的代码而不是从d3.json获取数据,那么如果我硬编码json,则不会出现此问题。 我从URL获得的JSON数据的格式如下 var data = [ {date:"201110010501",A:63.4,B:62.7}, {date:"201110

当我运行这部分代码时,我会在图像中附加以下输出

问题是,我的最大值在y轴上缩放,但我的线没有打印(例如,在下面的代码中,我的最大值是52,但我的线打印到40,可以在图像中查看) 我正在绘制x轴上的时间与y轴上的数据数量 如果使用相同的代码而不是从d3.json获取数据,那么如果我硬编码json,则不会出现此问题。 我从URL获得的JSON数据的格式如下

 var data = [
    {date:"201110010501",A:63.4,B:62.7},
    {date:"201110021234",A:58,B:59.9},
    {date:"201110030957",A:53.3,B:59.1},
    {date:"201110040250",A:55.7,B:58.8}];
我不知道我哪里出错了有人请帮帮我

函数数据(){
//Ajax调用到调用,statsBackend。。
常见的
.getData({
url:url.data
})
.完成(
函数(json){
var保证金={
前10名,
右:50,,
底数:100,
左:60
},margin2={
排名:430,
右:10,,
底数:20,
左:40
},宽度=600/*-页边距。右侧*/*-页边距。左侧*/,高度=500-20-页边距。底部-10,高度2=500
-margin2.top-margin2.bottom-10;
//%H%M
var parseDate=d3.time.format(“%Y%m%d%H”).parse;
var bisectDate=d3.bisector(函数(d){return d.date;});
var xScale=d3.time.scale()
.范围([0,宽度-10]),
xScale2=d3.time.scale()
.range([0,宽度-10]);//复制xScale以供以后使用
var yScale=d3.scale.linear()
.范围([高度,0]);
var color=d3.scale.ordinal().range(['#7fc97f','#beaed4']);
var xAxis=d3.svg.axis()
.scale(xScale)
.orient(“底部”),
xAxis2=d3.svg.axis()//笔刷滑块的xAxis
.scale(xScale2)
.东方(“底部”);
var yAxis=d3.svg.axis()
.刻度(yScale)
.东方(“左”);
var line=d3.svg.line()
.插入(“基础”)
.x(函数(d){return xScale(d.date);})
.y(函数(d){返回yScale(d.rating);})
/*.defined(函数(d){return d.rating;});*///隐藏缺失数据的默认行值0
var maxY;//稍后定义以更新yAxis
var svg=d3.选择(“正文”).追加(“svg”)
.attr(“宽度”,宽度+边距。左侧+边距。右侧)
.attr(“height”,height+margin.top+margin.bottom)//height+margin.top+margin.bottom
.附加(“g”)
.attr(“转换”、“平移”(+margin.left+)、“+margin.top+”);
//为鼠标跟踪创建不可见的矩形
svg.append(“rect”)
.attr(“宽度”,宽度-10)
.attr(“高度”,高度)
.attr(“x”,0)
.attr(“y”,0)
.attr(“id”,“鼠标跟踪器”)
.样式(“填充”、“白色”);
//用于滑块部件-----------------------------------------------------------------------------------
var context=svg.append(“g”)//刷上下文框容器
.attr(“转换”、“转换”(“+0+”,“+405+”)
.attr(“类别”、“上下文”);
//为绘制的线附加剪辑路径,将这些零件隐藏在边界之外
svg.append(“defs”)
.append(“clipPath”)
.attr(“id”、“剪辑”)
.append(“rect”)
.attr(“宽度”,宽度-10)
.attr(“高度”,高度);
//端部滑块零件-------------------------------------------------------------------
d3
.json(
“/data//number”,
功能(数据){
var time\u changed=函数(时间格式){
var分割=0;
交换机(时间格式)
{
案例“H”:拆分=10;中断;
案例“D”:拆分=8;中断;
案例“M”:拆分=6;中断;
案例“Y”:拆分=4;中断;
}
var temp=data.map(函数(d){
dat=d.date.substring(0,10);//拆分);
/*返回{日期:dat,天气:(d.weather),本地搜索:d.local搜索-25,电台:d.radio-20}*/
返回{
日期:年月日,
答:(d.A.),
B:d.B
}
});
//控制台日志(“temp”,temp);
//控制台日志(“temp”,temp);
数据=温度;
}
//console.log(“之前”,数据);
时间改变了('d');
//console.log(“之后”,数据);
//d3.tsv(“data.tsv”,函数(错误,数据){
color.domain(d3.keys(data[0]).filter(function(key){//将颜色顺序标度的域设置为除“date”之外的所有csv头,使颜色与问题相匹配
返回键!=“日期”;
}));
颜色('A');
颜色('B');
forEach(函数(d){//使csv数据中的每个日期都成为javascript日期对象格式
//控制台日志(d.date);
d、 日期=解析日期(d.date);
});
var categories=color.domain().map(函数(名称){//将数据嵌套到具有新键的对象数组中
返回{
name:name,//“name”:除日期外的csv标题
values:data.map(函数(d){//“values”:它有一个日期和评级数组
返回{
日期:d.date,
评级:+(d[名称]),
};
}),
可见:(名称===“A”?真:假)/“可见”:除经济为真外,所有为假。
};
});
//控制台日志(类别);
xScale.domain(d3.extent(数据,函数(d){return d.date;}));//extent=最高点和最低点,domain是数据,range是边界框
yScale.domain([01100
//max(类别,函数(c){返回d3.max(c.values,函数(v){返回v.rating;});})
]);
xScale2.domain(xScale.domain());//设置一个重复的xdomain以供以后使用
//用于滑块部件-----------------------------------------------------------------------------------
var brush=d3.svg.brush()//用于底部的滑块
.x(xScale2)
.在(“刷子”,刷子);
context.append(“g”)//创建xAxis
.attr(“类”、“x轴1”)
.attr(“变换”、“平移(0)”、“高度2+”)
.呼叫(xAxis2);
var contextArea=d3.svg.area()//在上下文图中设置面积图的属性
.插入(“单调”)
.x(函数(d){return xScale2(d.date);})//x被缩放为xScale2
.y0(高度2)//底线开始