3

x軸のラベルを回転させるために「rotation:-90」を指定しました。ただし、その回転は軸のタイトルにも適用されます。どうすればそれを止めることができますか?誰か助けてください。以下は私が使用しているコードです。

          makeCharts = function() {
          var chart1 = new dojox.charting.Chart2D("simplechart", {
                      title: "Production(Quantity)",
                      titlePos: "top",
                      titleGap: 5,
                          titleFont: "normal normal normal 15pt Arial",
                      titleFontColor: "orange"
            });

            chart1.addPlot("default",{type:"ClusteredColumns", 
                                            gap: 5, 
                                            animate:{duration: 500} })
            chart1.addSeries("2008", [113.1,72.1,62.6,59.8,59.3,53.7,52.4,49.1,43.7,40.9], {fill: "#DDFEDC"});
            chart1.addSeries("2007",[113.6,65.0,59.2,56.4,62.8,53.5,47.6,44.9,41.5,39.1], {fill: "#FCDEFD"});
            chart1.addAxis("x", {
            title:'x-axis title comes here',
            includeZero: false, 
            labels:[
                {value:1, text:'one'},
                                {value:2, text:'two'},
                                {value:3, text:'three'},
                                {value:4, text:'four'},
                                {value:5, text:'five'},
                                {value:6, text:'six'},
                                {value:7, text:'seven'},
                                {value:8, text:'eight'},
                                {value:9, text:'nine'},
                                {value:10, text:'ten'}                                                     
                            ],
            rotation:-90
        }
            );
            chart1.addAxis("y", {
            vertical: true,
            includeZero: true, 
            from:0, 
            to:200,
            minorTickStep:20}
        );
    var anim4b = new dojox.charting.action2d.Tooltip(chart1, 'default');
            chart1.render();

    new dojox.charting.widget.Legend({chart:chart1, horizontal: true}, "legend");
        };
    dojo.addOnLoad(makeCharts);
4

2 に答える 2

5

私はちょうどあなたと同様の問題に遭遇し、あなたが上で提案したものよりも少し簡単な解決策を見つけました.

http://dojotoolkit.org/reference-guide/dojox/charting.html#axis-titleから:

titleOrientationは、軸に対するタイトルの向きを決定します。「軸」によって軸に面するか、「軸」によって軸から離れる方向に面します。

titleOrientation: "away"x 軸パラメーターに追加するrotationと、既存のパラメーターが上書きされ、問題が解決することがわかりました。

参考:同様の質問

于 2012-01-13T02:27:57.770 に答える
2

私はこの問題の解決策を得ました...これがコードです

var setAxisTitle=function(chart, axisname, title, fontsizept) {
    var axis = chart.axes[axisname];
    var dim = chart.dim;
    var offsets=chart.offsets;
    var ta = chart.theme.axis;
    var taFont = "font" in axis.opt ? axis.opt.font : ta.font;
    var x;
    var y;
    var label;
    var rotate=0;
    if(axis.vertical) {
       rotate=270
       label = title;
       y=dim.height/2  - offsets.b/2;
       x=0+2*fontsizept;
    } else {
       label = title;
       x=dim.width/2 + offsets.l/2;
       y=dim.height-fontsizept/2;
    }
    var m = dojox.gfx.matrix;
    var elem = axis.group.createText({x:x, y:y, text:label, align: "middle"});
    elem.setFont({family:taFont.family, size: fontsizept+"pt", weight: "bold"});
    elem.setFill('grey');
    elem.setTransform(m.rotategAt(rotate, x,y)); 
}

それは次のように呼び出すことができます

mychart.render();
setAxisTitle(mychart,"x","Title for X axis",10);
setAxisTitle(mychart,"y","Title for Y axis",10);

-- スーリヤパヴァン

于 2011-06-09T05:39:26.273 に答える