我想知道如何才能製作一個簡單的條形圖,可能有一天爲X軸,值爲'今天'和'昨天',Y軸也許是'時間'與相應的值'1'和'2'。我想我很困惑如何將文本設置爲x軸的值,如何顯示y軸,以及rgaxis究竟做了什麼...... (我找到一個使用axis = r.g.axis(0,300,400,0,500,8,2)
的例子,我只知道它是xpos
,ypos
,width
,??
,?? num ticks
,??
)。任何見解都會很棒!或者具有更全面的條形圖示例(標籤等)的頁面。謝謝。帶文本x軸的graphael條形圖
回答
出於所有這些的緣故使用Google這樣的:
r.g.axis(x_start, y_start, x_width, from, to, steps, orientation, labels, type, dashsize)
x_start和y_start:從左下角座標軸文本的距離
x_width:端部的位置的文字沿着x軸
從和到:用於指定和範圍使用,而不是使用標籤參數
步驟:是滴答數 - 1個
取向:好像以指定的x軸與y軸軸
類型:是使用的刻度標記的類型。
這全部從source code推導出來。我想我會切換到一個現在有文檔的圖表庫...
你在正確的軌道上。您使用g.axis,設置文本的位置參數可以在'text'arg(位置)中找到,並使用'orientation'參數來切換y。我在這裏補充一個例子,
希望它幫助。
不再使用graphael但感謝幫助:) – butterywombat 2011-03-03 02:32:44
鏈接是死 – 2013-01-27 10:49:46
更新的鏈接 – 2013-01-30 17:56:14
當前代碼(Raphaeljs 2.0)已經改變,並且必須稍微改編以使用Raphael.g.axis代替rgaxis:
Raphael.g.axis(85230310,NULL,NULL,4,2,[ 「今天」, 「昨天」, 「明天」, 「未來」], 「|」,0,R)
讀這個Q & A和一打喜歡它,我仍然無法讓gRaphaël顯示適當的條形圖標籤。這些食譜似乎都是指圖書館的舊版本,或者不再存在的github頁面。 gRaphaël產生了一些非常好看的輸出結果 - 但它的文檔有很多不足之處。
但是,我可以使用Firebug和Inspect This Element的組合來查看代碼並查看它生成的內容。潛入條形圖對象中,所需的幾何圖形就在那裏。爲了拯救他人的挫折,這裏就是我解決了這個問題:
<script>
function labelBarChart(r, bc, labels, attrs) {
// Label a bar chart bc that is part of a Raphael object r
// Labels is an array of strings. Attrs is a dictionary
// that provides attributes such as fill (text color)
// and font (text font, font-size, font-weight, etc) for the
// label text.
for (var i = 0; i<bc.bars.length; i++) {
var bar = bc.bars[i];
var gutter_y = bar.w * 0.4;
var label_x = bar.x
var label_y = bar.y + bar.h + gutter_y;
var label_text = labels[i];
var label_attr = { fill: "#2f69bf", font: "16px sans-serif" };
r.text(label_x, label_y, label_text).attr(label_attr);
}
}
// what follows is just setting up a bar chart and calling for labels
// to be applied
window.onload = function() {
var r = Raphael("holder"),
data3 = [25, 20, 13, 32, 15, 5, 6, 10],
txtattr = { font: "24px 'Allerta Stencil', sans-serif", fill: "rgb(105, 136, 39)"};
r.text(250, 10, "A Gratuitous Chart").attr(txtattr);
var bc = r.barchart(10, 10, 500, 400, data3, {
stacked: false,
type: "soft"});
bc.attr({fill: "#2f69bf"});
var x = 1;
labelBarChart(r, bc,
['abc','b','card','d','elph','fun','gurr','ha'],
{ fill: "#2f69bf", font: "16px sans-serif" }
);
};
</script>
<div id="holder"></div>
還有一堆小的清理,你可以做labelBarChart()
,但這種基本能夠完成任務。
下面是我寫的添加標籤的函數。這不是特別優雅,但它會增加標籤:
Raphael.fn.labelBarChart = function(x_start, y_start, width, labels, textAttr) {
var paper = this;
// offset width and x_start for bar chart gutters
x_start += 10;
width -= 20;
var labelWidth = width/labels.length;
// offset x_start to center under each column
x_start += labelWidth/2;
for (var i = 0, len = labels.length; i < len; i++) {
paper.text(x_start + (i * labelWidth), y_start, labels[i]).attr(textAttr);
}
};
用法如下:
var paper = Raphael(0, 0, 600, 400);
var chart = paper.barchart(0, 0, 600, 380, [[63, 86, 26, 15, 36, 62, 18, 78]]);
var labels = ['Col 1', 'Col 2', 'Col 3', 'Col 4', 'Col 5', 'Col 6', 'Col 7', 'Col 8'];
paper.labelBarChart(0, 390, 600, labels, {'font-size': 14});
由於我想了解拉斐爾的工作方式,我想提出的一個解決方案Jonathan Eunice提出的labelBarChart函數問題。 考慮堆疊的杆graphes(或其他條形graphes與值的多於一個陣列),我添加上的情況下,bc.bars [0]測試的bc.bars.length裝置堆疊值的陣列的數目。
這導致代碼:
<script>
function labelBarChart(r, bc, labels, attrs) {
// Label a bar chart bc that is part of a Raphael object r
// Labels is an array of strings. Attrs is a dictionary
// that provides attributes such as fill (text color)
// and font (text font, font-size, font-weight, etc) for the
// label text.
//Added test : replace bc.bars by generic variable barsRef
var barsRef = (typeof bc.bars[0].length === 'undefined') ? bc.bars : bc.bars[0];
var bar, gutter_y, label_x, label_y, label_text;
//Added consideration of set attrs (if set)
var label_attr = (typeof attrs === 'undefined') ? {} : attrs;
label_attr['fill'] = (typeof label_attr['fill'] === 'undefined') ? "#2f69bf" : label_attr['fill'];
label_attr['font'] = (typeof label_attr['font'] === 'undefined') ? "16px sans-serif" : label_attr['font'];
for (var i = 0; i<barsRef.length; i++) {
bar = barsRef[i];
gutter_y = bar.w * 0.4;
label_x = bar.x
label_y = bar.y + bar.h + gutter_y;
label_text = labels[i];
r.text(label_x, label_y, label_text).attr(label_attr);
}
}
// what follows is just setting up a bar chart and calling for labels
// to be applied
// I added an array of data to illustrate : data4
window.onload = function() {
var r = Raphael("holder"),
data3 = [25, 20, 13, 32, 15, 5, 6, 10],
data4 = [0, 2, 1, 40, 1, 65, 46, 11],
txtattr = { font: "24px 'Allerta Stencil', sans-serif", fill: "rgb(105, 136, 39)"};
r.text(250, 10, "A Gratuitous Chart").attr(txtattr);
var bc = r.barchart(10, 10, 500, 400, [data3, data4] {
stacked: true,
type: "soft"});
bc.attr({fill: "#2f69bf"});
labelBarChart(r, bc,
['abc','b','card','d','elph','fun','gurr','ha'],
{ fill: "#2f69bf", font: "16px sans-serif" }
);
};
</script>
<div id="holder"></div>
我只是2個陣列堆疊值的測試,所以我不知道是否能正常工作與更多的(堆疊或不)。請告訴我 !
- 1. 帶文本x軸的條形圖 - achartengine
- 2. 在gRaphael中將x軸和y軸添加到條形圖?
- 3. Telerik條形圖x軸與長文本
- 4. 帶有格子條形圖的x軸標籤
- 5. d3帶x軸範圍選擇器的條形圖(如dygraphs)
- 6. 帶有可數據列的Asp.net條形圖作爲X軸
- 7. 與等距x軸的flot條形圖
- 8. 刪除條形圖上的X軸
- 9. 分組條形圖上的X軸值
- 10. x軸上的BIRT限制條形圖
- 11. 如何在條形圖列中添加x軸文本
- 12. 帶有條形圖和線條的圖表不匹配X軸上的值
- 13. dc.js帶順序軸的條形圖
- 14. 爲graphael條形圖添加標籤?
- 15. Flot條形圖與X軸標籤對齊條形圖
- 16. 在R條形圖中縮短x軸
- 17. Matlab:條形圖x軸標籤丟失
- 18. kendo條形圖x軸標籤重疊
- 19. Primefaces條形圖 - 隱藏X軸標籤?
- 20. 如何ggplot條形圖沿x軸組
- 21. 從x軸過渡:條形圖
- 22. D3 v4條形圖X軸負值
- 23. D3條形圖左對齊x軸
- 24. 如何使用gRaphael線圖設置x軸的日期值
- 25. 在彈性條形圖軸中顯示帶有圖像的文本
- 26. 條形圖x軸,y軸的值不與RTL方向渲染
- 27. 連續時間軸爲x軸的堆積條形圖
- 28. gRaphael線形圖繪製超出軸的值
- 29. graphael圖表中的軸名稱
- 30. 變化軸線顏色的graphael圖表
對此有何更新?馬庫斯你有答案嗎? – jjnevis 2011-02-16 11:13:36
也不馬庫斯:P – butterywombat 2011-03-03 02:33:12