2016-07-03 6 views
1

私はx軸に日付を、y軸に緑の位置(0の位置)がある線グラフを作成したいと思います。黄色(1)および赤色(2)である。テーマファイルを使用してASP.NETチャートをカスタマイズする方法

これをどのように達成できますか?

現在のところ、数字だけがあります。 私はXMLで試しましたが、それについてはあまりよく分かりませんが、ちょっと混乱します。これでy軸の単一要素にアクセスしてテキストに変換できますか? axisLabelのChart.AddSeriesメソッド内にif elseメソッドを実装することはできますか?

//XML 
string t = @" 
<Chart> 
    <ChartAreas> 
    <ChartArea Name=""Default"" _Template_=""All""> 
     <AxisY Interval=""1""> 
     <LabelStyle Font=""Verdana, 70px"" /> 
     </AxisY> 
    </ChartArea> 
    </ChartAreas> 
</Chart>"; 

var Date_min = OpenDate; 
var Date_max = DateTime.Today; 

var chart = new Chart(width: 300, height: 200, theme: t) 
      .AddSeries(
         chartType: "line", 
         name: "Temperature", 
         markerStep: 2, 
         xValue: Date_X, 
         yValues: Temperature_Y)  //0,1 or 2 for green, yellow and red      
      .SetXAxis("Date", Date_min.ToOADate(), Date_max.ToOADate()) 
      .SetYAxis("Temperature", 0, 2.5) 
      .GetBytes("png"); 

コントローラは、事前にご協力いただきありがとうございます。

更新

私はSystem.Web.UI.DataVisualization.Chartingフレームワークを通じて見て、私の問題を解決するために、追加の機能を見つけることができませんでした。

y軸のラベルを変更したいとします。 y軸の一般的なラベルではなく、それぞれの位置です。 y軸の3つの位置は、0,1,2の代わりに緑、黄、赤に名前を変更する必要があります。 x軸の各日付は対応する色を持ちます。

Example

+0

まず、まさにあなたが何を失うかははっきりしないカスタマイズする:ラベル?データポイント?次に、 'System.Web.Helpers'を使用しています。これは' System.Web.UI.DataVisualization'の_dumbedダウンバージョンです。カスタマイズしたいものに応じて後者に切り替えることができます。 – jsanalytics

+0

'System.Web.Helpers'を使って説明したようにカスタムラベルを作成したり、個々の点の色ではなく、一連の点全体の色をカスタマイズすることもできます。そのためには、 'DataVisualization'が必要です。 – jsanalytics

+0

可能であれば、あなたがしたいことの写真を投稿してください。 – jsanalytics

答えて

0
カスタム軸ラベルを作成するには

使用このテーマファイル(または文字列):

<?xml version="1.0" encoding="utf-8" ?> 
<Chart> 
    <ChartAreas> 
    <ChartArea Name="Default" _Template_="All"> 
     <AxisY> 
     <CustomLabels> 
      <CustomLabel Text="GREEN (0 - 1)" ToPosition="1" /> 
      <CustomLabel FromPosition="1" Text="YELLOW (1 - 2)" ToPosition="2" /> 
      <CustomLabel FromPosition="2" Text="RED (2 - 3)" ToPosition="3" /> 
     </CustomLabels> 
     </AxisY> 
    </ChartArea> 
    </ChartAreas> 
    <Series> 
    <Series Name="Temperature" BorderWidth="3" > 
    </Series> 
    </Series> 
    <Legends> 
    <Legend Alignment="Center" Docking="Top" Name="Temperature"> 
    </Legend> 
    </Legends> 
</Chart> 

Controller.cs:

var Date_min = DateTime.Now.AddDays(-4); 
var Date_max = DateTime.Now.AddDays(1); 

     var chart = new Chart(width: 600, height: 400, themePath: "XMLFile1.xml") 
        .AddSeries(
           chartType: "line", 
           name: "Temperature", 
           xValue: new DateTime[] { DateTime.Now.AddDays(-4), DateTime.Now.AddDays(-3), DateTime.Now.AddDays(-2), DateTime.Now.AddDays(-1), DateTime.Now }, 
           yValues: new int[] { 2, 1, 2, 2, 1 })  //0,1 or 2 for green, yellow and red      
        .SetXAxis("Date", Date_min.ToOADate(), Date_max.ToOADate()) 
        .SetYAxis("Temperature", 0, 3.0) 
        .Save("~/Image/MyChart.png", "png"); 

enter image description here

関連する問題