0

我正在使用标准 ASP.NET 图表控件从以下数据创建点图:

X         Y 
32.6768,  1
32.6768,  2
32.6768,  3
32.6768,  4
32.678,   5
32.678,   6
187.862,  1
187.862,  2

数据被读入一个DataTable解析为Double图表数据绑定的类型。控件找到数据并进行绘制,但与预期不符,如下图:

ASP.NET 图表

如图所示,轴是离散的而不是连续的。标签显示良好,包括单个数据点。代码中设置了以下设置:

ASP.NET:

<asp:Series Name="DataSeries" XValueType="Double" YValuesPerPoint="25">
// 25 used in case other data sets are larger

C# 后端:

chtData.Series["DataSeries"].ChartType = SeriesChartType.Point;

DataView dv = new DataView(/* DataTable Instance */);
chtData.Series["DataSeries"].Points.DataBind(dv, /* X-axis column title */, */ Y-axis column title */, "");

我应该设置任何其他属性来更正图表显示吗?这是一个ChartArea问题而不是一个Series问题吗?

根据要求,这里是填充DataTable实例的代码。来自传入字符串的数据被分成单独的行(按\n字符)。然后每行由值之间的空格分隔:

string[] row = line.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);
if (!columnsFound)
{
    // columns: int to hold number of columns required in DataTable
    columns = row.GetLength(0);
    columnsFound = true;
    if (columns == 4) this.DataPoints.Columns.Add("Label");    // Labels for data points
    this.DataPoints.Columns.Add(this.XAxis);    // string with X-axis label
    this.DataPoints.Columns.Add(this.YAxis);    // string with Y-axis label
    if (columns >= 3) this.DataPoints.Columns.Add(this.ColumnThree);    // string with label for a third data column - not used in the graph
}
if (columns == 4) this.DataPoints.Rows.Add(row[0], double.Parse(row[1]), double.Parse(row[2]), double.Parse(row[3]));
else if (columns == 3) this.DataPoints.Rows.Add(double.Parse(row[0]), double.Parse(row[1]), double.Parse(row[2]));
else this.DataPoints.Rows.Add(double.Parse(row[0]), double.Parse(row[1]));
4

0 回答 0