【问题标题】:offset a second series in chart control where x axis is a string偏移图表控件中的第二个系列,其中 x 轴是一个字符串
【发布时间】:2016-08-01 23:02:43
【问题描述】:

如何偏移图表控件中的第二个系列,其中 x 轴是 MS 图表控件中的字符串。

我想将 x 轴保留为字符串。

在下面的问题示例中,我希望 Serise Test2 从 x 轴位置“测试 4”开始,但是目前它们都从“测试 1”开始,即使第一个 x 轴点位于“测试 4”系列测试2?

我想我正在寻找一个偏移量,我可以说系列 Test2 从 x 轴点 4 开始,或者是一个轴索引,我可以在其中显式添加点,但我也不知道该怎么做。

同样,但问题不大,如何在 Y 轴上启动 Series TEST1?

这是我的困境的一个简单例子:

Series test1 = new Series("Test1");
Series test2 = new Series("Test2");
int x =1;
test1.XValueType = ChartValueType.Date;
for (int i = 1; i < 7; i++)
{
    test1.Points.AddXY("test" + x.ToString(), i);
    x++;
}

chart1.Series.Add(test1);
x = 4; // I would like to start plotting this series at "test 4"

for (int i = 5; i < 10; i++)
{

    test2.Points.AddXY("test" + x.ToString(), i);
    x++;
}

chart1.Series.Add(test2);

foreach (var series in chart1.Series)
{
    series.ChartType = SeriesChartType.Line;
    series.BorderWidth = 5;

}
chart1.ChartAreas[0].AxisX.LabelStyle.Angle = 45;
chart1.ChartAreas[0].AxisX.LabelStyle.Interval = 1;

目前显示如下:

【问题讨论】:

  • 请看我的更新!!

标签: c# winforms charts .net-4.0


【解决方案1】:

一旦您决定将 x 值添加为字符串,就无法正确处理系列中的数据。那是因为当字符串转换为双精度时它们会丢失,导致所有 x 值都是0d

所以你不能参考他们的价值观。相反,您可以简单地插入必要数量的 empty DataPoints。因此,如果您想将系列偏移三个数据点,您可以编写:

for (int i = 0; i < 3; i++)
{
   DataPoint dp0 = new DataPoint() 
                  {XValue = 0, IsEmpty = true, Color = Color.Transparent };
   test2.Points.Insert(0, dp0);
}

请注意,您可能想要控制Empty DataPointsSeries 中的显示方式,并在Series.EmptyPointStyle 中设置。

另外请注意,在添加新的之前,我已经清除了默认的series1chart1.Series.Clear();

更新:我现在才注意到你的第二个问题。

这里的问题是,通常的解决方案非常简单明了,但行不通。这是:

  chart1.ChartAreas[0].AxisX.Minimum = 1;

如果您的值是数字,这将有效。但是当您将它们添加为字符串时,所有的东西都不起作用,例如:Interval、IntervalOffset、Minimum、Maximum 或 zomme 和 range 设置。

所以真正正确的解决方案是按你应该的方式添加数据。这是一个例子:

    for (int i = 1; i < 7; i++)
    {

        int px = test1.Points.AddXY(x, i);
        test1.Points[px].AxisLabel = "test" + x;
        x++;
    }

这将创建您想要的输出并仍然保留 DataPoints 的 x 值:

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-14
    • 2011-10-29
    相关资源
    最近更新 更多