none
DataVisualization.Charting X軸の土日を飛ばすには? RRS feed

  • 質問

  • こんにちは。
    Visual Studio 2010+.Net 4.0にてグラフを作成しています。
    縦軸は数字で、横軸は日付になっています。
    横軸の日付は、1/30, 1/31, 2/1, 2/4.... と、月曜から金曜日までの値なのですが、
    このまま、チャートを描画すると、土日分を含めてチャートを描いてしまいます。
    土日分を詰めたいのですが、どこを設定すればよいのでしょうか?
    
    
    ご存知の方は教えていただけませんか?
    よろしくお願いします
    

    2013年2月5日 6:55

回答

すべての返信

  • 設定というか、値を格納する際に曜日見て土・日ならスキップすれば良いかと。
    こんな感じで。

            private void Form1_Load(object sender, EventArgs e)
            {
                chart1.Series.Clear();
                chart1.Series.Add("グラフ");
    
                chart1.Series["グラフ"].ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Column;
                chart1.Series["グラフ"].LegendText = "グラフ"; 
    
                for (int i = 0; i < 15; i++)
                {
                    DateTime date = new DateTime(2013, 2, i + 1);
                    if (date.DayOfWeek == DayOfWeek.Sunday || date.DayOfWeek == DayOfWeek.Saturday) continue;
    
                    System.Windows.Forms.DataVisualization.Charting.DataPoint dataPoint = new System.Windows.Forms.DataVisualization.Charting.DataPoint();
                    dataPoint.SetValueXY(date.ToString("MM/dd"), i);
                    chart1.Series["グラフ"].Points.Add(dataPoint);
                }
            }
    

    曜日はDateTime.DayOfWeekで判定できるので、その場合は格納そのものをcontinueでスキップしてます。

    以上、参考まで。

    2013年2月5日 9:14
  •  2/1, 2/4... という風にデータは初めから飛んでいます。だからSetValuなんてされていません。にもかかわらず、描画されたチャートは土日分が空白になってしまいます。
    2013年2月6日 1:38
  • X 軸の値の型が DateTime だと、内部で double として格納されているようです。なので、土日分も含めて描かれてしまうのではないでしょうか。

    http://msdn.microsoft.com/ja-jp/library/system.windows.forms.datavisualization.charting.series.xvaluetype.aspx

    系列がひとつだけなら、みっとさんのコードのように X 軸の値の型を文字列にして DataPoint を作れば、土日分を詰めることができるかもしれません。

    • 回答としてマーク 佐伯玲 2013年2月15日 6:25
    2013年2月6日 8:12
  • Series の IsXValueIndexed プロパティを True にすると良いと思います。


    http://systemartlaboratory.com/

    • 回答の候補に設定 octopus-jelly 2013年2月8日 9:10
    • 回答としてマーク 佐伯玲 2013年2月15日 6:25
    2013年2月8日 8:35
  • こんにちは、にっきー さん
    フォーラムオペレータの佐伯 玲 です。

    その後の状況はいかがでしょうか?
    寄せられた情報が参考になりそうでしたので私の方で勝手ながら「回答としてマーク」をさせていただきました。

    ご確認いただき不明な点や解決に至らぬ点があればマークを解除することも可能ですので引き続きこちらのスレッドへご返信くださいませ。

    宜しくお願い致します。
    __________________________
    日本マイクロソフト株式会社 フォーラム オペレータ 佐伯 玲

    2013年2月15日 6:25