我遇到一個問題,在道場的最新版本堆積條形圖和柱形圖的標籤標註圖表。 由於標籤從0開始繪製,而不是從前一個欄/欄的末端繪製,因此將標籤放置在欄/欄的中央。這意味着標籤經常在欄/欄中間重疊,或出現在欄/欄的錯誤欄目中。道場堆積條形圖/列在不正確的位置
示例:從這個StackExchange post借用的JS小提琴說明問題:改變「1.10.4」和「夜間」的道場的版本,你會看到的標籤位置移動。
我均設爲問題的原因, 「的GetValue」 功能已經從StackedBars刪除,StackedColumn(DojoX中\製圖\ plot2d \ StackedColumn.js)1.10.6和1.11版本之間的文件。 1。這個函數使用前面的bar/column值來調整標籤的位置,因爲它現在不存在這種情況。
我使用ESRIs的JavaScript API,其中包括道場1.11.1。我試圖從舊版本的dojo中複製(和修改)該函數,但是似乎許多其他的圖表函數已經發生了變化,並且我沒有成功實現它。
我還是相當新的JavaScript和Dojo,但反正是有回在添加此功能,而不ESRI API中修改文件?
做不到這一點,有沒有辦法在成功的新版本翻新改造舊的功能?
謝謝!
編輯:這是我修改StackedBars.js的內容:
//>>built
define("dojox/charting/plot2d/StackedBars",["dojo/_base/declare","dojo/_base/lang","./Bars","./commonStacked"],function(c,e,f,d){
return c("dojox.charting.plot2d.StackedBars",f,{
getSeriesStats:function(){
var a=d.collectStats(this.series,e.hitch(this,"isNullValue")),b;
a.hmin-=0.5;
a.hmax+=0.5;
b=a.hmin;
a.hmin=a.vmin;
a.vmin=b;
b=a.hmax;
a.hmax=a.vmax;
a.vmax=b;
return a
},
rearrangeValues:function(a,b,c){
return d.rearrangeValues.call(this,a,b,c)
},
// COPIED THIS FUNCTION FROM 1.10.6
getValue:function(_5,_6,_7,_8){
var y,x;
if(_8){
x=_6;
y=d.getIndexValue(this.series,_7,x,e.hitch(this, "isNullValue"));
}
else{
x=_5.x-1;
y=d.getValue(this.series,_7,_5.x);
y=[y[0]?y[0].y:null,y[1]?y[1]:null];
}
return {x:x,y:y[0],py:y[1]};
}
})});
我最初的問題是與 「e.hitch(這一點, 」isNullValue「)」,我做了一個錯字。
我仍然有這樣的問題不工作的負值圖表(沒有錯誤,只是標籤在錯誤的地方),以及如何在不修改Dojo的源文件應用此功能?
你寫了什麼?你有什麼異常? –
對不起,更新後的問題與我修改後的StackedBars.js(StackedColumns使用相同的功能)。我原來的錯誤是由複製/粘貼導致的錯字。 – AEgman