C# MsChart-特定值的范围栏标记
我就是找不到在范围栏上的特定值上添加标记的方法。 假设我们有一个简单的范围条形图,有1个系列和1个点。该点有2个Y值(例如:5-20)。你怎么能在15点显示一个三角形标记C# MsChart-特定值的范围栏标记,c#,.net,winforms,charts,mschart,C#,.net,Winforms,Charts,Mschart,我就是找不到在范围栏上的特定值上添加标记的方法。 假设我们有一个简单的范围条形图,有1个系列和1个点。该点有2个Y值(例如:5-20)。你怎么能在15点显示一个三角形标记 谢谢。您可以制作两个图表区域,并将它们放在彼此的顶部。使第二个chartarea背景色透明 private void Form1_Load(object sender, EventArgs e) { chart1.Series.Clear(); chart1.ChartAreas[0].Position =
谢谢。您可以制作两个图表区域,并将它们放在彼此的顶部。使第二个chartarea背景色透明
private void Form1_Load(object sender, EventArgs e)
{
chart1.Series.Clear();
chart1.ChartAreas[0].Position = new ElementPosition(0, 0, 100, 100);
Series s1 = new Series();
s1.ChartType = SeriesChartType.RangeBar;
s1.Points.AddXY(2, 2);
s1.Points.AddXY(1, 1);
chart1.Series.Add(s1);
ChartArea ca2 = new ChartArea();
chart1.ChartAreas.Add(ca2);
ca2.Position = new ElementPosition(0, 0, 100, 100);
ca2.BackColor = Color.Transparent;
Series s2 = new Series();
s2.ChartType = SeriesChartType.Point;
s2.MarkerStyle = MarkerStyle.Triangle;
s2.MarkerSize = 10;
s2.Points.AddXY(2, 2);
s2.ChartArea = ca2.Name;
chart1.Series.Add(s2);
}
您可以制作两个图表区域,并将它们放在彼此的顶部。使第二个chartarea背景色透明
private void Form1_Load(object sender, EventArgs e)
{
chart1.Series.Clear();
chart1.ChartAreas[0].Position = new ElementPosition(0, 0, 100, 100);
Series s1 = new Series();
s1.ChartType = SeriesChartType.RangeBar;
s1.Points.AddXY(2, 2);
s1.Points.AddXY(1, 1);
chart1.Series.Add(s1);
ChartArea ca2 = new ChartArea();
chart1.ChartAreas.Add(ca2);
ca2.Position = new ElementPosition(0, 0, 100, 100);
ca2.BackColor = Color.Transparent;
Series s2 = new Series();
s2.ChartType = SeriesChartType.Point;
s2.MarkerStyle = MarkerStyle.Triangle;
s2.MarkerSize = 10;
s2.Points.AddXY(2, 2);
s2.ChartArea = ca2.Name;
chart1.Series.Add(s2);
}
试试这个:
private void Form1_Load(object sender, EventArgs e)
{
DataPoint dp1 = new DataPoint(1, new double[] { 5, 15 });
dp1.MarkerStyle = MarkerStyle.Triangle;
dp1.MarkerSize = 12;
dp1.MarkerColor = Color.Red;
DataPoint dp2 = new DataPoint(1, new double[] { 15, 20 });
chart1.Series[0].Points.Add(dp1);
chart1.Series[0].Points.Add(dp2);
}
试试这个:
private void Form1_Load(object sender, EventArgs e)
{
DataPoint dp1 = new DataPoint(1, new double[] { 5, 15 });
dp1.MarkerStyle = MarkerStyle.Triangle;
dp1.MarkerSize = 12;
dp1.MarkerColor = Color.Red;
DataPoint dp2 = new DataPoint(1, new double[] { 15, 20 });
chart1.Series[0].Points.Add(dp1);
chart1.Series[0].Points.Add(dp2);
}
它必须在同一系列上吗?只需添加一个新系列。然后使用
series1.Points.AddXY(5,20)代码>并确保将其设置为图表类型点<代码>系列1.ChartType=系列ChartType.Point代码>和系列1.MarkerStyle=MarkerStyle.Triangle代码>你可以用黑客攻击:将你的(5-20)范围分成2个范围,(5-15)和(15-20),然后在(5-15)范围上添加一个标记。它看起来像一个单一(5-20)范围,15上有一个标记。@BaddackRangeBar
和Point
系列不兼容。嗯,很有趣。适用于范围图和柱状图,但不适用于条形图。也许op可以用其中一个。也可以在第一个图表区的顶部绘制第二个图表区,并在每个图表区绘制一个系列。巴达克,我尝试过你的选择,但没有成功。我收到一条错误消息,说我不能混合点和范围栏。它必须在同一系列上吗?只需添加一个新系列。然后使用series1.Points.AddXY(5,20)代码>并确保将其设置为图表类型点<代码>系列1.ChartType=系列ChartType.Point代码>和系列1.MarkerStyle=MarkerStyle.Triangle代码>你可以用黑客攻击:将你的(5-20)范围分成2个范围,(5-15)和(15-20),然后在(5-15)范围上添加一个标记。它看起来像一个单一(5-20)范围,15上有一个标记。@BaddackRangeBar
和Point
系列不兼容。嗯,很有趣。适用于范围图和柱状图,但不适用于条形图。也许op可以用其中一个。也可以在第一个图表区的顶部绘制第二个图表区,并在每个图表区绘制一个系列。巴达克,我尝试过你的选择,但没有成功。我收到一条错误消息,说我不能混合点和范围栏。效果很好!谢谢!工作出色!谢谢!谢谢你的回答。你的答案也不错,但我选择了jstreet选项。很好,我认为他有一个更好的答案。很高兴你成功了!谢谢你的回答。你的答案也不错,但我选择了jstreet选项。很好,我认为他有一个更好的答案。很高兴你成功了!