回答
我不會給一個完整的答案,只是一個可能的骨架(其他選項)
說你有你的數據對(時間,事件)的列表,並匹配的事件的圖像列表:
var data = [{duration:15, event:0},
{duration:5, event:1},
{duration:25, event:0},
...
];
var img = ["black.png", "colorbar.png", ...];
var width = 25; //width of a frame
var scale = 4; //time units per frame
,你可以做以下,以獲得條開始和結束位置,以及幀列表:
var x=0;
var frames=[];
data.forEach(function(d) {
d.position = x;
var nFrames= Math.ceil(d.duration/scale);
for (var i=0; i<nFrames; i++) {
frames.push({event: d.event, position:x});
x+=width;
}
})
個
框架會是什麼樣子:[{event:0, position:0}, {event:0,position:25}, ...]
現在你需要插入相應的圖像:基本是這樣的:
d3.select("svg")
.selectAll(".frame")
.data(frames)
.enter()
.append("image")
.attr("class", "frame")
.attr("x",function(d){return d.position})
.attr("y",0)
.attr("xlink:href",function(d){return img[d.event]});
這應該給你已經是一個良好的開端,現在你可以試試蜱蟲和自己的傳說:)
感謝@勞倫特爲您付出的巨大努力。這對於像我這樣的新手來說非常有用。 我只是想知道如何在時間範圍內添加時間值,只有事件發生變化的地方! –
@AbhishekMukherjee你的意思是在你的例子中的小蜱?計算'data'中每個元素的tick位置(以左邊像素爲單位):將'data'綁定到一組'g'元素(用「translate(」+ d.position +「,0 )「'把它們放在正確的位置),每一個都有一個'line'和一個'text'元素來繪製tick。 – tarulen
- 1. 如何在D3.js線圖上繪製時間數據
- 2. d3.js繪製時間序列分的曲線圖
- 3. 在D3中繪製複雜的圖形
- 4. D3.JS:在二維圖中製作繪製線靜態wrt軸
- 5. 在TextView中繪製的複合圖案超出圖像大小
- 6. 把時間線放到D3.js樹圖
- 7. D3.js具有紀元時間的時間序列圖
- 8. 使用D3.js繪製折線圖(股票圖)錯誤
- 9. 在d3.js的折線圖上重繪網格線(移除並重繪)
- 10. 使用d3.js在線圖中繪製IF語句筆畫
- 11. 實時折線圖SVG路徑末尾繪製圓D3.js
- 12. 多線圖D3.js
- 13. D3.js多線圖
- 14. MKMapView在圖案圖像上繪製線條
- 15. D3.js中的折線圖未正確繪製
- 16. 如何在d3.js中繪製重疊圖形?
- 17. D3.js地圖上的繪圖點
- 18. D3.js刷牙後重繪圖表
- 19. 在圖像中查找重複圖案/圖像
- 20. D3.js:在折線圖
- 21. 地圖上兩個投影點之間的繪製線 - 無線顯示 - D3.js
- 22. 用d3問題繪製帶有圖像和箭頭的圖形
- 23. 在Cocoa中的平鋪圖案中繪製圖像
- 24. C#:在圖像上繪製時間戳
- 25. D3.js:從數據數組開始繪製簡單的線圖
- 26. 如何重複繪製圖像?
- 27. D3.js折線圖重疊問題
- 28. 試圖在我的線圖的x軸上繪製時間?
- 29. d3具有不同日期和時間的等值線圖
- 30. d3.js散點圖不會在轉換時重繪
也許你已經可以/不可以做更多的精度?你可以得到你的數據,它是如何組織的?你看過如何在svg/d3中插入圖像嗎?等等 – tarulen