【发布时间】:2016-09-01 19:03:45
【问题描述】:
现在,我有一个图表,我添加了 Y 值点。紧随其后的是标签。但是当我继续添加更多点时,所有点的当前标签都是相同的。有没有办法让每个标签都有正确的标签?
chart1.Series["Series1"].Points.AddY(Height);
chart1.Series["Series1"].Label = Age;
也许,我可以在添加数据点高度的同一行中添加标签年龄? (例如(身高,标签=年龄))?
以上是我试图修正的基本概念。我所做的本质是在“高度”参数符合我的标准(高于 1.78)时获取 UDP 提要。然后,将高度字符串转换为双倍后,我将其添加到图表中。然后在UDP中添加相应的标签。唯一的问题是,在下一点上,我的所有点在更新时都会得到相同的标签。
Age 是一个字符串,我将其用作标签,不能用于 X 轴或 Y 轴
if (numberSize>paramSize) //if myHeight is greater than paramHeight
{
if (_form.listBox1.InvokeRequired)
_form.listBox1.Invoke((MethodInvoker)delegate ()
{
_form.listBox1.Items.Insert(0, valueSet);
// below just converting to double to be fitted in my chart
double heightDouble = Convert.ToDouble(Height);
//And now I'd like to add a point from the UDP and then its label
_form.chart1.Series["Series1"].Points.AddY(heightDouble);
_form.chart1.Series["Series1"].Label = Age;
}
);
}
谢谢
附:为了让事情更清楚,下面是图表。 Y 轴上是高度。 X 轴只是点的迭代(例如,第 2 点、第 3 点等),标签是年龄。最后一个年龄是 72 岁,但每个标签都设置为 72,不仅是当前的。
【问题讨论】:
-
好吧,您可以在 foreach 循环或 for 循环中执行此操作,并使用 counter 变量连接/生成标签名称。您所显示的文本确实没有多大帮助...跨度>
-
是的,除了我从 UDP 端口获取信息。因此,如果存在符合标准的高度(例如,如果高度 >1.78),则触发此脚本。如有必要,我会接受修改我添加点的方式的建议。此外,我也许可以为当前迭代添加标签...
-
好吧,根据您所展示的内容,没有人会知道它的来源,因为您没有在原始问题中指定您也没有发布与您当前的问题和/或问题相关的代码。 . 我建议编辑问题并显示与您的问题和/或问题有关的所有相关代码
-
好的,我已经添加了相关代码以了解更多我想做的事情。如果它通过了我的参数(如果 numberSize>paramSize),我再次尝试添加高度(转换为 Double)。然后从 UDP 数据集中添加标签。
-
您可以为每个数据点添加单独的标签:添加时获取索引,然后添加标签:
int idx = _form.chart1.Series["Series1"].Points.AddY(heightDouble); _form.chart1.Series["Series1"].Points[idx].Label = ...。请查看Keyword Reference