在c#图表控件中使用带有数据点(0,1)的单栏条形图

时间:2013-09-25 15:44:56

标签: c# charts mschart

我在VS 3.5框架中遇到图表控件问题。我正在尝试使用x轴0和y轴1绘制图形。但是它会绘制一个图表(1,1)

我的情况是我需要一个带有(0,1)的单个栏。

Chart1.Series[0].Points.Add(new DataPoint(0,1));

Chart1.Series[0].Points.AddXY(0,1);

结果:

  

条形图(1,1)而不是显示(0,1)点

我添加了

Chart1.ChartAreas[""].AxisX.Minimum = 0;

仍然显示相同的结果......

这太令人沮丧了:当我再添加一个点(1,1)

例如:

Chart1.Series[0].Points.AddXY(0,1);
Chart1.Series[0].Points.AddXY(1,1);

然后结果:

  

正确显示点(0,1)和(1,1)的条形图

1 个答案:

答案 0 :(得分:2)

您遇到此问题,因为添加到图表的默认系列是条形图。您必须删除条形图系列并将其替换为Point系列才能显示您的数据。请参阅下面的示例代码。

// clear data from the chart
chart.Series.Clear();

// add an x-y series to the chart
var xySeries = new Charting.Series() {
    LegendText = "XY Plot",
    ChartType = Charting.SeriesChartType.Point,
    Color = Color.Brown,
    MarkerStyle = Charting.MarkerStyle.Circle,
    MarkerSize = 10
};
chart.Series.Add(xySeries);

// put your point on the series
xySeries.Points.AddXY(1, 1);

// set the axis
chart.ChartAreas[0].AxisX.MajorGrid.LineDashStyle = Charting.ChartDashStyle.Dot;
chart.ChartAreas[0].AxisY.MajorGrid.LineDashStyle = Charting.ChartDashStyle.Dot;

这会生成以下图表

Chart Sample

您必须添加此using语句,以便在可用的命名空间中包含Charting

using Charting = System.Windows.Forms.DataVisualization.Charting;

要更改X轴上的标签,您必须使用DataPoint的AxisLabel属性。见下面的示例:

// put your point on the series
xySeries.Points.AddXY(0, 1);
xySeries.Points[0].AxisLabel = "0"; // <--- SET AXIS LABEL HERE

执行将“强制”图表控件以显示您选择的轴标签。