5

テーマを使用していますが、グラフの背景色を白や透明などに設定したいです。

私はこのコードを試しています:

  var myTheme =  dojox.charting.themes.PlotKit.orange;

  myTheme.fill= "white";

  chart10.setTheme(myTheme);


chart10.addPlot("default", {
    type: "Pie", 
    labelOffset: -30,
    radius: 150,
    startAngle: 45,
    font: "normal normal 10pt Tahoma",
    fontColor: "black",
    labelWiring: "grey",
    labelStyle: "columns",
    htmlLabels: true,
    plotarea: { fill: "#000" }
});

しかし、このコードは機能しませんでした。変更は見られません。

背景色を設定するにはどうすればよいですか?

ここに画像の説明を入力

4

4 に答える 4

8

chart.fill と plotarea.fill プロパティの両方を設定する必要があると思います。

  myTheme.chart.fill= "white";
  myTheme.plotarea.fill = "white";

そうすればconsole.debug(myTheme)、テーマ オブジェクトのすべてのプロパティを調べることができます。通常、正しいものを見つける前に、少し実験する必要があります。

于 2012-01-24T13:10:14.723 に答える
1

これが古いことは知っていますが、円グラフを作成していて、円グラフの背景色を変更する必要がある状況がありました。この解決策を試しましたが、テーマを割り当てていなかったため、うまくいきませんでした。私はこのように作成しています:

var pieChart = new Chart("myDIV");
pieChart.addPlot("default", {type: "Pie"});
pieChart.addSeries("Series A", pieString);

私の pieString は、変数を組み合わせてパイを形成する場所です。基本的に、一連のステートメントを次のように連結します。

{y:200, tooltip: "layer", color:"red", text: "myText"}

これらの文字列を結合して、pieString 変数に割り当てます。

グラフを設定すると、その背後に標準的な白い背景が表示されました。これは、色付きの背景をブレンドしたかったため、うまく機能しません。背景を構成する 2 つの四角形があります。一番後ろの大きい方は で変更できますpieChart.fill = "something"が、内側の方は変わりませんでした。

私がこれを解決した方法は次のとおりです。

function ClearChartBackground() {
    var sumDivRects = document.getElementById("chartDIV").getElementsByTagName("svg")[0].getElementsByTagName("rect"); //so I am getting the rectangles that are part of my chart div

    var firstRect = sumDivRects[0];
    var secondRect = sumDivRects[1];
    firstRect.attributes.item(1).value = "0";
    secondRect.attributes.item(1).value = "0";
    //this drills down to the 'fill-opacity' attribute that can then be changed to make it transparent


}

私の写真でわかるように、元の背景は白でしたが、私の灰色の背景にはうまく機能しません。関数を実行すると、透明に変更されます。

Dojo にレンダリングしてもらっているので、これを変更する方法を見つけるのにかなりの時間がかかったので、これを投稿します。この投稿に出くわしましたが、テーマを行っていなかったため、あまり役に立ちませんでした。

これは違いを示す私の悪いクリップです

于 2014-07-24T17:28:22.033 に答える
0
dojox.charting.themes.Claro.chart.fill = "#F1F1F0"
dojox.charting.themes.Claro.plotarea.fill = "#F1F1F0"
dojox.charting.themes.Claro.chart.stroke = "#F1F1F0"

// Set the theme
chart.setTheme(dojox.charting.themes.Claro);
于 2016-12-28T13:33:36.353 に答える
-2

Jquery を使用すると、次のようなことができます。

$("#chartNode svg rect:eq(0)").attr("fill", "0");
$("#chartNode svg rect:eq(0)").attr("fill-opacity", "0");

したがって、基本的には要素にアクセスし、属性を手動で変更しています。あまり効率的な方法ではありませんが、うまくいきます。

于 2016-05-06T16:18:43.507 に答える