В настоящее время мне нужно разработать инструмент с диаграммой в качестве основного компонента. Для меня также необходим контроль диаграммы. Я много читаю, исследую, чтобы узнать и понять всю картину управления диаграммой.C# Нарисуйте горизонтальную линию на каждой столбчатой диаграмме столбцов
В конце концов, я застрял и вопрос о том, как нарисовать горизонтальную линию (синяя & красная горизонтальная линия) на сложенной Гистограмма, как изображение, показанное ниже:
Вот что я сделал так далеко:
Это мой код до сих пор:
// X-Axis labels settings
chart.ChartAreas[0].AxisX.LabelStyle.Angle = -45;
chart.ChartAreas[0].AxisX.Interval = 1;
// Y-Axis labels settings
//chart.ChartAreas[0].AxisY.Minimum = 100;
chart.ChartAreas[0].AxisY.Minimum = 95;
// Plotting chart
using (YieldEntities context = new YieldEntities())
{
// Extract yield loss list
var yeilds = (
from yeild in context.YeildDatas
group yeild by new { yeild.Loss } into newyeild
select new
{
Loss = newyeild.Key.Loss,
Percentage = newyeild.Sum(p => p.Percentage)
}).OrderByDescending(p => p.Percentage);
//context.YeildDatas.Select(p => new { p.Loss, Percentage = p }).Distinct();
// Create new series
foreach (var yield in yeilds)
{
chart.Series.Add(yield.Loss);
chart.Series[yield.Loss].ChartType = SeriesChartType.StackedColumn100;
}
// Label settings for first series
chart.Series[0].SmartLabelStyle.Enabled = false;
chart.Series[0].LabelAngle = -90;
chart.Series[0].Font = new Font(Font.FontFamily, 15, FontStyle.Bold);
chart.Series[0].IsValueShownAsLabel = true;
var query = context.YeildDatas.ToList();
foreach (var item in query)
{
DataPoint dp = new DataPoint();
dp.SetValueXY(item.DateString, item.Percentage);
chart.Series[item.Loss].Points.Add(dp);
}
// Set empty datapoint for each series
foreach (var yield in yeilds)
{
DataPoint nulldp = new DataPoint();
nulldp.SetValueXY("", 0);
chart.Series[yield.Loss].Points.Insert(1, nulldp);
chart.Series[yield.Loss].Points.Insert(6, nulldp);
chart.Series[yield.Loss].Points.Insert(11, nulldp);
}
chart.Legends["Legend"].IsEquallySpacedItems = true;
chart.Legends["Legend"].IsTextAutoFit = true;
}
Надеюсь, что любой эксперт поможет мне решить эту проблему.
ты рисуешь свой контроль графиков по себе? Или вы используете законченный контроль диаграммы? Если вы используете финишную диаграмму, попробуйте использовать событие Paint на элементе управления диаграммой и попробуйте DrawLine там –
Я использую предоставленный контроль диаграммы в Visual Studio 2015. Как нарисовать линию sir? –
Ваш вопрос по существу представляет собой набор требований. Любой код для показа? – MickyD