トップ回答者
Chartで折れ線グラフ表示時のヌル(空データ)が途切れた状態で表示してしまう。

質問
-
お世話になります。C#でWindowsアプリを作成しています。
Chartで折れ線グラフを表示させています。この時ヌルデータも含まれているため表示させていますが、線が途切れています。
chart1.Series[columnName]["EmptyPointValue"] = "average"; // **
や
chart1.Series[columnName].EmptyPointStyle.BorderWidth = 1;
chart1.Series[columnName].EmptyPointStyle.MarkerColor = Color.FromArgb(0, 192, 0);
chart1.Series[columnName].EmptyPointStyle.SetCustomProperty("EmptyPointValue", "average"); // **
chart1.Series[columnName].EmptyPointStyle.BorderDashStyle = ChartDashStyle.Dash;など**印部分を試しましたが何ら変わりません。下記がその部分のコードです。開発環境は、Windows7 VS2010 C# Winアプリです。途切れさせず、指定した色などで繋げてほしい!
private void DysDB(){
// 初期化
chart1.Series.Clear();// データの取得
DataSet ds = GetData();// Chartコントロールにデータソースを設定
chart1.DataSource = ds;// Chartコントロールにタイトルを設定
chart1.Titles.Add("アクセス数とユニークユーザー数");MarkerStyle[] mark = new MarkerStyle[5];
mark[0] = MarkerStyle.Star5;
mark[1] = MarkerStyle.Triangle;
mark[2] = MarkerStyle.Cross;
mark[3] = MarkerStyle.Circle;
mark[4] = MarkerStyle.None;// グラフの種類,系列,軸の設定
for (int i = 0; i < ds.Tables[0].Columns.Count; i++)
{
// 列名の取得
string columnName = ds.Tables[0].Columns[i].ColumnName;// 系列の設定
chart1.Series.Add(columnName);// ★★★グラフの種類を折れ線グラフにする★★★
chart1.Series[columnName].ChartType = SeriesChartType.Line;
//chart1.Series[columnName].ChartType = SeriesChartType.Line;
chart1.Series[columnName].MarkerColor = Color.Red;
chart1.Series[columnName].MarkerSize = 10;
chart1.Series[columnName].MarkerStyle = mark[i];
chart1.Series[columnName]["EmptyPointValue"] = "average";chart1.Series[columnName].EmptyPointStyle.BorderWidth = 1;
chart1.Series[columnName].EmptyPointStyle.MarkerColor = Color.FromArgb(0, 192, 0);
//chart1.Series[columnName].EmptyPointStyle.BorderDashStyle = ChartDashStyle.DashDotDot;
//chart1.Series[columnName].EmptyPointStyle.SetCustomProperty("EmptyPointValue", "average");
chart1.Series[columnName].EmptyPointStyle.BorderDashStyle = ChartDashStyle.Dash;
chart1.Series[columnName].EmptyPointStyle.BorderColor = Color.Green;// X軸
chart1.Series[columnName].XValueMember = ds.Tables[0].Columns[0].ColumnName.ToString();
chart1.ChartAreas[0].AxisX.MajorGrid.Enabled = false;
chart1.ChartAreas[0].AxisX.MinorGrid.Enabled = false;// Y軸
chart1.Series[columnName].YValueMembers = columnName;
}// X軸タイトル
chart1.ChartAreas[0].AxisX.Title = "月";
//chart1.DataBind();
}private DataSet GetData()
{
DataSet ds = new DataSet();
DataTable dt = new DataTable();
DataRow dtRow;// 列の作成
dt.Columns.Add("月", Type.GetType("System.String"));
dt.Columns.Add("アクセス数", Type.GetType("System.Int32"));
dt.Columns.Add("ユニークユーザー数", Type.GetType("System.Int32"));
ds.Tables.Add(dt);// データの追加
dtRow = ds.Tables[0].NewRow();
dtRow[0] = "2011/01";
dtRow[1] = "945";
dtRow[2] = "2430";
ds.Tables[0].Rows.Add(dtRow);dtRow = ds.Tables[0].NewRow();
dtRow[0] = "2011/02";
//dtRow[1] = DBNull.Value; // "1023";
dtRow[2] = "1860";
ds.Tables[0].Rows.Add(dtRow);dtRow = ds.Tables[0].NewRow();
dtRow[0] = "2011/03";
dtRow[1] = "2121";
dtRow[2] = "1750";
ds.Tables[0].Rows.Add(dtRow);
dtRow = ds.Tables[0].NewRow();dtRow[0] = "2011/04";
dtRow[1] = "2179";
dtRow[2] = "1320";
ds.Tables[0].Rows.Add(dtRow);
dtRow = ds.Tables[0].NewRow();dtRow[0] = "2011/05";
dtRow[1] = "2063";
//dtRow[2] = DBNull.Value; // "720";
ds.Tables[0].Rows.Add(dtRow);
dtRow = ds.Tables[0].NewRow();dtRow[0] = "2011/06";
dtRow[1] = "2107";
dtRow[2] = "945";
ds.Tables[0].Rows.Add(dtRow);
return ds;
}- 編集済み ferret001 2015年1月8日 6:42