Dojoスタック列チャートの問題は、積み重ねの上部の合計積み重ね値を追加する

StackOverflow https://stackoverflow.com//questions/24019497

  •  21-12-2019
  •  | 
  •  

質問

私は私のDojo積み上げ列図に問題があるようです。各スタック値は積み重ねられたチャートの「内側」に配置されます。しかし、私はこれらの積み重ねられた合計が上にあるがチャートの外側にあるべきであるが、X軸ラベルの真上にあるべきであるべきである。それで、スタック合計が積み重ねられた列の上に表示される場所をどのように達成するかをどのように達成しますか。これが私のjsfiddle link です。ここでは、積み重ねられた値ごとのツールチップもバーの上部にわたしの積み重ね値を表示する必要があります。

これは私のコードが

です
    require(["dojox/charting/Chart", 
      "dojox/charting/plot2d/Lines", 
   "dojox/charting/axis2d/Default", 
   "dojox/charting/plot2d/StackedColumns",
   "dojox/charting/action2d/Tooltip",
   "dojo/ready", 
   "dojox/charting/widget/SelectableLegend"],
   function(Chart, Lines, Default, StackedColumns, Tooltip, ready, SelectableLegend) {
ready(function() {
    var chart1 = new Chart("chart1");
    chart1.title = "stacked chart";
    chart1.addPlot("stackedColumnsPlot", {
        type: StackedColumns,
        gap:6,
        lines: true,
        areas: true,
        markers: true,
        labels: true,
        labelStyle:"inside",
        //maxBarSize: 35,
        tension: "2"
    });
chart1.addAxis("x", {  
                      dropLabels: false,
                      labelSizeChange: true,
                      rotation:-20,
                      majorTicks:true,
                      majorTickStep:1,
                      minorTicks:false,
                      font: "normal normal bold 12px Tahoma", 
                      fontColor: "black",
                     labels: [{"value":1,"text":"A"},{"value":2,"text":"B"},{"value":3,"text":"C"},{"value":4,"text":"D"},{"value":5,"text":"E"},{"value":6,"text":"F"}] 
});
    chart1.addAxis("y", {title:"Cost",
      fixLower: "major",
      fixUpper: "major", 
       includeZero: true,
      majorTickStep:500,
     max: 1500,
     //from:1000,
     //to:6000,
        vertical: true
    });

    chart1.addSeries("AC",[300,500,500,600,300,280] ,
     {

        plot: "stackedColumnsPlot",
        stroke: {
            color: "#FFFFFF" ,

        },
        fill: "#FFAEAE "
    });
    chart1.addSeries("TV", [244,301,699,620,820,837], {
        plot: "stackedColumnsPlot",
        stroke: {
            color: "#FFFFFF"
        },
        fill: "#FFEC94"
    });
    chart1.addSeries("ACCE", [500,100,100,100,200,250] , {
        plot: "stackedColumnsPlot",
        stroke: {
            color: "#FFFFFF"
        },
        fill: "#B4D8E7"
    });
    chart1.addSeries("OTHER", [100,150,100,700,700,0,800,300,300] , {
        plot: "stackedColumnsPlot",
        stroke: {
            color: "#FFFFFF"
        },
        fill: "#56BAEC"
    });

   new Tooltip(chart1, "stackedColumnsPlot", {
        text: function(chartItem) {
            console.debug(chartItem);
        //return "Rating: " + chartItem.run.data[chartItem.index] + "; Total Value: " + chartItem.y;
          // return  "Comparision Rating: " + chartItem.y;
           return "Value: " + chartItem.run.data[chartItem.index] + "; Stacked Value: " + chartItem.y;
        }
    }); 

    chart1.render();

    new SelectableLegend({
        chart: chart1,
        horizontal: true,
        align:top
    }, "chart1SelectableLegend");
   });
  });
.

私の経験では、最初の値を持つシリーズを持っている場合:300、および最初の値を持つ別の値:244、ツールチップは静的シリーズ名の値を示します:300と値:244。これらのシリーズをホバリングするとき。AC:300とテレビ:244は、合計として積み重ねられた値を示しています.544。 しかし、私はこのタイプの値を取得することを知らない。 あらゆる助けに感謝します。

役に立ちましたか?

解決

私はあなたが最後に達成しようとしているのは100%ではありませんが、次のテキスト機能を使って「AC:300、TV:244」を絶対に嫌うことができます。

        text: function(chartItem, plot) {
            return "AC: "+plot.series[0].data[chartItem.index] +
                ", TV: "+plot.series[1].data[chartItem.index];
        }
.

関連項目: http://jsfiddle.net/b45pw/3/

編集:あなたの例では、ツールチップが正しく現れるのに必要なCSSもありません。

を追加する必要があります
<link rel="stylesheet" href="dojoinstall/dijit/themes/claro/claro.css">
.

あなたの体のClaroクラスを使用してください:

<body class="claro">
.

参照:

> http://jsfiddle.net/b45pw/4/

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top