Dimplejs散点图在页面上第二次生成时显示不同
dimplejs scatterplot showing up differently second time generated on page
我有一个函数,使用dimplejs在同一页面上创建三个散点图。我传入了一些变量,您可以在下面的代码中看到。第一个散点图生成完美,但第二个和第三个散点图存在X轴日期不垂直的问题,并且y轴描述更靠近轴并卡在细节后面。
这是一个数据的jfiddle来可视化它看起来像什么…第一个很好,第二个就不那么好了。http://jsfiddle.net/4VU7w/
这是酒窝的问题吗?
....blah blah blah...
print_dimple_scatterplot_time($speco_arrival_times,$div_to_display_in,'date', 'Arrival Time',
'Date of Arrival','Truck Arrival Time','Inbound Trucks to '.$site_name,'Circles Represent Truck Arrival Times');
function print_dimple_scatterplot_time($source_array,$location_div,$x_key_field_name, $y_key_field_name,
$xAxis_name,$yAxis_name,$chart_title,$legend_desc){
/*****Example
$x_key_field_name = 'date'
$y_key_field_name = 'Arrival Time'
$legend_desc = 'Circles Represent Truck Arrival Time'
*******/
$insert_string = json_encode($source_array);
$to_print_string = <<<EOT
<script type="text/javascript">
var data = {$insert_string};
var svg = dimple.newSvg("#{$location_div}", 900, 400);
// Draw a standard chart using the aggregated data
var chart = new dimple.chart(svg, data);
chart.setBounds(100, 50, 800, 250) //(x,y,width,height)
var x = chart.addCategoryAxis("x", "{$x_key_field_name}");
x.addOrderRule("date");
x.showGridlines = true; //add vertical grid lines
var y = chart.addTimeAxis("y", "{$y_key_field_name}", "%H:%M", "%H:%M");
y.timePeriod = d3.time.hours;
y.timeInterval = 1;
y.showGridlines = true; //add horizontal grid lines
y.overrideMin = d3.time.format("%H:%M").parse("00:00");
y.overrideMax = d3.time.format("%H:%M").parse("23:59");
// Override color
chart.defaultColors = [
new dimple.color("#0000A0")
];
var s = chart.addSeries("date", dimple.plot.bubble);
chart.draw();
//added so zeros don't show up.
s.shapes.style("opacity", function (d) {
return (d.y === "" ? 0 : 0.6);
});
x.shapes.selectAll("text").attr("transform",
function (d) {
return d3.select(this).attr("transform") + " translate(0, 0) rotate(0)"; //translate(x left and right, y up and down)
});
x.titleShape.text("{$xAxis_name}"); //name x axis
x.titleShape.attr("y",chart.height+125); //move where x-axis is
y.titleShape.text("{$yAxis_name}"); //name y axis
y.titleShape.attr("y", 175); //move where y-axis is
//Add Title
svg.append("text")
.attr("x", 275 )//(width / 2))
.attr("y", 20) //0 - (margin.top / 2))
.attr("text-anchor", "middle")
.style("font-size", "20px")
.style("text-decoration", "underline")
.text("{$chart_title}");
//Add Custom Legend
svg.append("circle")
.attr("cx", 500 )//(width / 2))
.attr("cy", 15) //0 - (margin.top / 2))
.attr("r",5);
//Add Customs Legend Text
svg.append("text")
.attr("x", 510 )//(width / 2))
.attr("y", 20) //0 - (margin.top / 2))
.attr("text-anchor", "left")
.style("font-size", "12px")
.style("text-decoration", "underline")
.text("{$legend_desc}");
</script>
EOT;
echo $to_print_string;
}
看起来很像这个问题:https://github.com/PMSI-AlignAlytics/dimple/issues/34
我不能在你的代码中看到是否是这种情况,但如果是这样的话,在这个问题上讨论了解决办法
相关文章:
- 推特引导:弹出窗口不会在第一次点击时出现,但会在第二次点击时显示
- 拖动效果不会第二次显示
- 如何在访问者第二次单击链接时显示不同的页面
- 如何在第一次点击时突出显示链接;并在第二次单击时跟随它,除非在其他地方单击,然后重新初始化未高亮显示的状态
- AngularJS 在第二次渲染时显示大括号
- 日期选择器 getDate 方法在第二次单击时工作并显示上一个选定的日期
- Ajax 对对话框窗口的响应在第二次尝试时不显示更改的值
- 当我第二次运行我的应用程序时,结果没有显示
- jQuery UI 对话框 - 第二次显示未选择的文本
- 奇怪的是,在第二次单击切换隐藏/显示按钮而不是第一次单击后,有两行有效
- 显示/隐藏脚本无法在第二次单击时再次隐藏
- 当我第二次单击链接时如何显示面板
- Marionette没有't在第二次显示父视图时渲染子视图
- Parsejs angular/ionic在视图中检索关系对象(第二次打开页面时显示值)
- 工具提示显示在第二次悬停之后
- BrowserSync显示第二次刷新后的更改
- AngularJS-第一次运行.service计划发送数据,但没有显示,第二次运行,没有发送数据的计划,但显示了一些
- 在javaScript中第二次单击按钮时显示警报
- 希望在第二次通过间隔后逐个显示数字
- 为什么弹出没有显示第二次在传单标记