none
Chartコントロールで、特定の軸の表示だけ色を変更するには? RRS feed

  • 質問

  • 現在VisualStudio2010(.NET Framework4.0)のC#でChartコントロールを利用して、縦棒グラフを作成しております。

    X軸に日付を表示させているのですが、日付をセットする時に土日だったら文字の色を赤色に変更することは可能でしょうか。

    最初は土日の範囲のみ、棒グラフの背景を赤色とかにしたかったのですが、そのような設定する方法が見当たりませんでしたので、

    文字の色だけでも変更しようかと考えています。

    それでも無理であれば「**/**(土)」とかにするしかないとは思いますが、太字やイタリックには出来そうなので、質問させて頂きました。

    可能か不可能か教えて頂けないでしょうか。

    よろしくお願い致します。

    2013年8月1日 0:58

回答

  • こんな?

    DataSet1.DataTable1DataTable t = new DataSet1.DataTable1DataTable();
    var r=t.NewDataTable1Row();
    r.X = 0; r.Y = 0;
    t.Rows.Add(r);
    r = t.NewDataTable1Row();
    r.X = 1; r.Y = 5;
    t.Rows.Add(r);
    r = t.NewDataTable1Row();
    r.X = 2; r.Y = 7;
    t.Rows.Add(r);
    this.chart1.DataSource = t;
    
    //using System.Windows.Forms.DataVisualization.Charting;
    var area = this.chart1.ChartAreas[0];
    //this.chart1.Series[0].XValueType = System.Windows.Forms.DataVisualization.Charting.ChartValueType.DateTime;
    CustomLabel label;
    label =new CustomLabel(-0.5,0.5,"2000/1/1",0,  LabelMarkStyle.None, GridTickTypes.All);
    label.ForeColor= Color.Red ;
    area.AxisX.CustomLabels.Add(label);
    label = new CustomLabel(0.5, 1.5, "2000/1/2", 0, LabelMarkStyle.None, GridTickTypes.All);
    label.ForeColor = Color.Green;
    area.AxisX.CustomLabels.Add(label);
    label = new CustomLabel(1.5, 2.5, "2000/1/3", 0, LabelMarkStyle.None, GridTickTypes.All);
    label.ForeColor = Color.Blue;
    area.AxisX.CustomLabels.Add(label);


    個別に明示されていない限りgekkaがフォーラムに投稿したコードにはフォーラム使用条件に基づき「MICROSOFT LIMITED PUBLIC LICENSE」が適用されます。(かなり自由に使ってOK!)

    2013年8月1日 3:57

すべての返信

  • こんな?

    DataSet1.DataTable1DataTable t = new DataSet1.DataTable1DataTable();
    var r=t.NewDataTable1Row();
    r.X = 0; r.Y = 0;
    t.Rows.Add(r);
    r = t.NewDataTable1Row();
    r.X = 1; r.Y = 5;
    t.Rows.Add(r);
    r = t.NewDataTable1Row();
    r.X = 2; r.Y = 7;
    t.Rows.Add(r);
    this.chart1.DataSource = t;
    
    //using System.Windows.Forms.DataVisualization.Charting;
    var area = this.chart1.ChartAreas[0];
    //this.chart1.Series[0].XValueType = System.Windows.Forms.DataVisualization.Charting.ChartValueType.DateTime;
    CustomLabel label;
    label =new CustomLabel(-0.5,0.5,"2000/1/1",0,  LabelMarkStyle.None, GridTickTypes.All);
    label.ForeColor= Color.Red ;
    area.AxisX.CustomLabels.Add(label);
    label = new CustomLabel(0.5, 1.5, "2000/1/2", 0, LabelMarkStyle.None, GridTickTypes.All);
    label.ForeColor = Color.Green;
    area.AxisX.CustomLabels.Add(label);
    label = new CustomLabel(1.5, 2.5, "2000/1/3", 0, LabelMarkStyle.None, GridTickTypes.All);
    label.ForeColor = Color.Blue;
    area.AxisX.CustomLabels.Add(label);


    個別に明示されていない限りgekkaがフォーラムに投稿したコードにはフォーラム使用条件に基づき「MICROSOFT LIMITED PUBLIC LICENSE」が適用されます。(かなり自由に使ってOK!)

    2013年8月1日 3:57
  •  gekka様

    早速サンプルコードで教えて頂きまして、ありがとうございました。

    CustomLabelで処理を記載したところ、軸の文字に色を付けることが出来ました。

    もしかすると棒グラフの背景を赤色とかにすることも出来るかも知れないので、StripLineクラスとかを調べてみたいと思います。

    本当にありがとうございました。


    2013年8月1日 10:14