2017-08-01 16 views
-2

私のデータベースでは、色を文字列として保存しており、これらの色を16進数に変換して円グラフに実装する必要があります。これを行う良い方法はありますか?
ここに私のjavascriptコードです。私はデータを格納する2つの配列(系列と色)があります。円グラフのデータベースから色を実装する方法は?

<script type="text/javascript"> 
    $(function() { 
     $.ajax({ 
      url: 'getItems', 
      dataType: "json", 
      type: "GET", 
      contentType: 'application/json; charset=utf-8', 
      async: false, 
      processData: false, 
      cache: false, 
      delay: 15, 
      success: function (data) { 

       var series = new Array(); 
       var colors = new Array(); 
       for (var i in data) { 
        var serie = new Array(data[i].name, data[i].y, data[i].color); 

        series.push(serie); 
        colors.push(serie[data[i].color]); 

       } 
       DrawPieChart(series,colors); 
      }, 
      error: function (xhr) { 
       alert('error'); 
      } 
     }); 
    }); 

    function DrawPieChart(series,colors) { 
     console.log(series,colors); 
     Highcharts.chart('container', { 

      chart: { 
       plotBackgroundColor: null, 
       plotBorderWidth: 1, 
       plotShadow: false, 


      }, 
      title: { 
       text: ' Vehicle Summary' 
      }, 
      tooltip: { 
       pointFormat: '{series.name}: <b>{point.percentage:.1f}%</b>' 
      }, 
      plotOptions: { 
       pie: { 
        allowPointSelect: true, 
        cursor: 'pointer', 
        dataLabels: { 
         enabled: false 
        }, 
        showInLegend: true 
       } 
      }, 

      colors: [colors], 
      series: [{ 

       type: 'pie', 
       name: 'Task Status', 
       data: series 
      }] 
     }); 
    } 
    </script> 

これは、「パーセント」というデータベースプロシージャの項目の値をとる私の方法です。

public ActionResult getItems() 
    { 
     List<itemViewModel> result = new List<itemViewModel>(); 
     result = unitOfWork.ExecuteSP<itemViewModel>("[percentage]"); 

     var res = result.OfType<string>(); 

     foreach (var dr in res) 
     { 
      itemViewModel summary = new itemViewModel(); 
      summary.name = dr[0].ToString().Trim(); 
      summary.y = Convert.ToDecimal(dr[1]); 
      // color 
      result.Add(summary); 

     } 

     return Json(result, JsonRequestBehavior.AllowGet); 
    } 

また、これはあなたがシリーズのプロパティに行くことによって、円グラフの色特性の発現を設定することによってこれを行うことができます

public class itemViewModel 
{ 
    public string name { get; set; } 
    public decimal? y { get; set; } 
    public string color { get; set; } 

} 
+3

これまでに何か試しましたか?あなたはコードを考え出すべきです!!!私がタイロで、同じことをしたとき、私はこれよりもはるかに最悪のコメントを得ました。あなたが試したものを思いついてください – Mandy8055

+1

https://stackoverflow.com/questions/2109756/how-do-i-get-the-color-from-a-hexadecimal-color-code-using-net – Peter

+1

どのチャートコントロール使いますか? - あなたは何をターゲットにしていますか?Winforms、WPF、ASP ..? __Always__あなたの質問に正しくタグを付けてください! – TaW

答えて

0

私のモデルである - >フィル---> FXをクリックしてください表現を与える。私はあなたにこの解決策を与えても、私はあなたのアプローチが正しいとは思わないが

あなたが従っているapprochはデータベースに色を保存する必要はありません、他の色表現で計算するだけです値

+0

しかし、私はpiechartを作成するためにフォームを使用していませんでした – emmy

+0

どのように円グラフを作成していますか? – Ashu

+0

ハイチャート(https://www.highcharts.com/demo/pie-basic)を使用しました。 javascriptでは、私が行ったデータベース(名前とパーセンテージ)からデータを取得するためにajax呼び出しを行いました。今私は16進数としてデータベースに色を格納していると私はどのようにモデルでそれを宣言し、その色でpiechartを着色するためのメソッドを処理するのか分からない。このコードは、このhttp://www.c-sharpcorner.com/uploadfile/1f3f2a/charting-in-mvc/に非常によく似ています。 – emmy

関連する問題