Có thể tạo biểu đồ OHLC hoặc Candlestick bằng d3js hoặc plugin được xây dựng từ một trong số đó hoặc các nhánh của nó không? d3.js là một thư viện biểu đồ rất mạnh được xây dựng trong javascript và nó sẽ là tốt đẹp để tùy chỉnh biểu đồ được xây dựng bằng cách sử dụng nó xuống hơn nữa bằng cách sử dụng khả năng tuyệt vời của nó.Sử dụng d3js để tạo biểu đồ hình nến hoặc biểu đồ ohlc
Trả lời
Hãy xem this example. Nó thực hiện chính xác những gì bạn muốn.
Cập nhật: Liên kết ở trên hiện đang bị hỏng, nhưng @lakenen quá tốt để cung cấp phiên bản cố định here.
Tôi đã tìm thấy trang này và trông rất đẹp.
đây là cách tốt nhất để làm hloc? – SuperUberDuper
điều này không hoạt động hiện tại – SuperUberDuper
Tôi biết câu hỏi này là một câu hỏi cũ nhưng tôi đã dành rất nhiều thời gian tìm kiếm một ví dụ làm việc vào năm 2017 và tìm thấy rất ít.
Dưới đây là định dạng hoạt động cho biểu đồ hình nến sử dụng d3.js v4. Các dữ liệu trong mã dưới đây là một mảng mà trong trường hợp của tôi đã được đưa vào từ C# ở phía sau.
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);
}
techan.js thực hiện những gì bạn cần. Như được hiển thị trên trang chủ của họ:
Hình ảnh, biểu đồ chứng khoán (Candlestick, OHLC, chỉ số) và thư viện phân tích kỹ thuật được xây dựng trên D3. Xây dựng các biểu đồ tài chính tương tác cho các trình duyệt hiện đại và di động.
Có một ví dụ làm việc bởi Andre Dumas cho thấy here, với ví dụ mã. Điều đó đã được cập nhật lần cuối 2017-07-07.
Tôi thực sự cố gắng chơi xung quanh với techan và tôi phát hiện ra nếu bạn muốn tùy chỉnh nó bằng cách nào đó nó có thể gần như không thể Ví dụ chỉ báo MACD của chúng có 12,9, 26 mã cứng Tôi không thể tìm thấy cách thiết lập màu riêng cho nến khiến chúng không đơn giản là "rect" etcs. – kroe
- 1. Làm thế nào để vẽ biểu đồ nến trong C#
- 2. Làm cách nào để tạo một Biểu đồ bằng cách sử dụng api biểu đồ google?
- 3. Tạo biểu đồ/biểu đồ sử dụng đĩa với các công cụ chỉ CLI trong Linux
- 4. Làm cách nào để vẽ một chấm đỏ (biểu thị giao dịch) trên biểu đồ hình nến tài chính?
- 5. Cách tạo biểu đồ
- 6. Tạo biểu đồ hình tròn đồ họa trong C#
- 7. d3js Phân phối lại nhãn xung quanh biểu đồ hình tròn
- 8. biểu đồ lịch sử hình ảnh
- 9. Thư viện để tạo biểu đồ UML
- 10. Tạo biểu đồ trong ứng dụng RubyOnRails
- 11. Tạo biểu đồ Pivot Sử dụng Access 2007 VBA
- 12. Thư viện javascript để tạo biểu đồ
- 13. biểu đồ svg sử dụng python
- 14. Tạo biểu đồ Google Bảng
- 15. Văn bản chú giải công cụ tùy chỉnh trong biểu đồ Candlestick của biểu đồ google
- 16. Tạo biểu đồ SVG trong JavaScript
- 17. Tạo biểu đồ trong java
- 18. Cách sử dụng biểu đồ mở
- 19. Tạo biểu đồ excel bằng cách sử dụng Apache POI
- 20. Bàn và biểu đồ sử dụng PDFsharp
- 21. Cách sử dụng API biểu đồ Google
- 22. HTML5 Canvas biểu đồ hình tròn
- 23. biểu đồ tổ chức biểu đồ tam giác
- 24. Biểu đồ điểm và hình với matplotlib
- 25. Biểu đồ trong WPF sử dụng biểu đồ # không được vẽ như một chuỗi
- 26. Biểu đồ Hiển thị Biểu đồ Google Pie
- 27. Biểu đồ/Biểu đồ Cam kết của Mercurial
- 28. Thực hiện biểu đồ biểu đồ danh sách kề
- 29. Cách vẽ 2 loại biểu đồ trên cùng biểu đồ sử dụng EPPlus
- 30. Tạo biểu đồ màu theo lập trình?
FYI, ví dụ đó sẽ bị hỏng ngay bây giờ. Nó cố gắng để có được 'http: //mbostock.github.io/d3/d3.time.js? 1.25.0', mà dường như không còn tồn tại. – lakenen
Đây là phiên bản cập nhật hoạt động http://bl.ocks.org/8529857 – lakenen
Rất tiếc, cảm ơn vì đã chú ý và sửa lỗi! Tôi sẽ cập nhật câu trả lời. –