是否有可能使与d3js或插件的OHLC或烛台图表从它或它的叉子一个建? d3.js是一个非常强大的使用javascript编写的图表库,如果使用它的惊人功能进一步定制使用它的图表,将会很不错。使用d3js做一个烛台或OHLC图表
14
A
回答
15
看一看this example。它确实是你想要的。
更新:上面的链接正在打破,但@lakenen是这么好心提供一个固定的版本here。
18
1
我知道这个问题是一个老问题,但我花了很多时间在2017年找工作的例子,发现很少。
下面是使用d3.js V4一个烛台图的工作格式。下面的代码中的数据是一个数组,在我的情况下是从后面的c#中引入的。
var twoHundredDayCandleStickChart = [];
var width = 900;
var height = 500;
var margin = 50;
function min(a, b) { return a < b ? a : b; }
function max(a, b) { return a > b ? a : b; }
var y = d3.scaleLinear().range([height - margin, margin]);
var x = d3.scaleTime().range([margin, width - margin]);
//line for the sma
var line1 = d3.line()
.x(function (d) { return x(d["date"]); })
.y(function (d) { return y(d["sma"]); });
function buildChart(data) {
data.forEach(function (d) {
d.date = new Date(d.date);
d.high = +d.high;
d.low = +d.low;
d.open = +d.open;
d.close = +d.close;
d.sma = +d.sma;
});
var chart = d3.select("#divId")
.append("svg")
.attr("class", "chart")
.attr("width", width)
.attr("height", height);
y.domain([d3.min(data.map(function (x) { return x["low"]; })), d3.max(data.map(function (x) { return x["high"]; }))])
x.domain(d3.extent(data, function (d) { return d["date"]; }))
chart.selectAll("line.x")
.data(x.ticks(10))
.enter().append("line")
.attr("class", "x")
//.text(String)
.attr("x1", x)
.attr("x2", x)
.attr("y1", margin)
.attr("y2", height - margin)
.attr("stroke", "#ccc");
chart.selectAll("line.y")
.data(y.ticks(10))
.enter().append("line")
.attr("class", "y")
.attr("x1", margin)
.attr("x2", width - margin)
.attr("y1", y)
.attr("y2", y)
.attr("stroke", "#ccc");
chart.append("g")
.attr("transform", "translate(0," + 450 + ")") //need to change this 450 to a variable- it is how far down the axis will go
.attr("class", "xrule")
.call(d3.axisBottom(x))
.selectAll("text")
.style("text-anchor", "end")
.attr("dx", "-.8em")
.attr("dy", ".15em")
.attr("transform", function (d) {
return "rotate(-65)"
});
chart.selectAll("text.yrule")
.data(y.ticks(10))
.enter()
.append("text")
.attr("class", "yrule")
.attr("x", 0)
.attr("y", y)
.attr("dy", 0)
.attr("dx", 20)
.attr("text-anchor", "middle")
.text(String);
chart.selectAll("rect")
.data(data)
.enter().append("rect")
.attr("x", function (d) { return x(d["date"]); })
.attr("y", function (d) { return y(max(d["open"], d["close"])); })
.attr("height", function (d) { return y(min(d["open"], d["close"])) - y(max(d["open"], d["close"])); })
.attr("width", function (d) { return 0.5 * (width - 2 * margin)/data.length; })
.attr("fill", function (d) { return d["open"] > d["close"] ? "red" : "green"; });
chart.selectAll("line.stem")
.data(data)
.enter().append("line")
.attr("class", "stem")
.attr("x1", function (d) { return x(d["date"]) + 0.25 * (width - 2 * margin)/data.length; })
.attr("x2", function (d) { return x(d["date"]) + 0.25 * (width - 2 * margin)/data.length; })
.attr("y1", function (d) { return y(d["high"]); })
.attr("y2", function (d) { return y(d["low"]); })
.attr("stroke", function (d) { return d.open > d.close ? "red" : "green"; });
chart.append("path")
.data([data])
.attr("d", line1)
.attr("class", "line")
.style("stroke", "white")
.attr("fill", "none")
.attr("stroke-width", 2);
}
3
相关问题
- 1. 注释时间线中的烛台和OHLC图表,Google Visualization
- 2. 蜱蜱在C#烛台/ OHLC数据/ NET
- 3. 我可以使用WPF System.Windows.Controls.DataVisualization.Charting来绘制OHLC或蜡烛图吗?
- 4. Dimple.js烛台图表
- 5. 使用Matplotlib的日内烛台图表
- 6. 烛台上bitcoinwisdom图表
- 7. 烛台OCHL图
- 8. 有两个刻度的烛台图表
- 9. 用matplotlib注解烛台图
- 10. 烛台图中未使用IOS danielgindi /图表框架
- 11. 烛台图表x轴标题
- 12. 在swift中绘制烛台图表
- 13. 向Google烛台图表添加注释
- 14. Ruby中的烛台/金融图表
- 15. Dojo烛台图表 - json更新系列
- 16. 烛台图表组件为Android
- 17. 谷歌图表ComboChart烛台与线
- 18. Highstock烛台图错颜色
- 19. 蟒蛇matplotlib烛台图
- 20. 实时烛台图(matplotlib)
- 21. 如何使用日常数据创建月烛台图表?
- 22. 我如何使用matplotlib绘制烛台图表?
- 23. 如何在烛台烛图中获取蜡烛图的时间间隔
- 24. 使用核心图的泡沫图,散点图,烛台图
- 25. 烛台多个Y值
- 26. Highchart/Highstock OHLC没有显示以前的烛台和实时数据
- 27. 在matplotlib烛台图表上注释一些东西
- 28. 将多个注释添加到烛台图表
- 29. Matplotlib烛台(当日)图是一个大Blob
- 30. 用matplotlib烛台阴谋
仅供参考,那个例子现在看起来破碎了。它试图获得'http://mbostock.github.io/d3/d3.time.js?1.25.0',这似乎不再存在。 – lakenen
这里有一个更新的版本,作品http://bl.ocks.org/8529857 – lakenen
哇,感谢您的注意和修复!我会更新答案。 –