I'm trying on an asp.net chart how to get paint bars instead of the traditional way: In this way, if the point to paint is 1, paint to the left and right of said point. But what I need, is that if the point to paint is 1, only paint left or right (to choose) from one point to the next as shown in the image below:
The most I have achieved is this:
Through the following code:
Chart1.Series.Clear();
int[,] horas = new int[,] { { 0, 1 }, { 1, 1 }, { 2, 0 }, { 3, 1 }, { 4, 0 }, { 5, 1 }, { 6, 0 }, { 7, 0 }, { 8, 1 }, { 9, 1 } };
Chart1.DataSource = horas;
var series1 = new Series
{
Color = System.Drawing.Color.Green,
IsVisibleInLegend = false,
IsXValueIndexed = true,
ChartType = SeriesChartType.RangeColumn,
};
series1["PixelPointWidth"] = "1";
int[,] horas1 = new int[,] { { 0, 1 }, { 1, 1 }, { 2, 0 }, { 3, 1 }, { 4, 0 }, { 5, 1 }, { 6, 0 }, { 7, 0 }, { 8, 1 }, { 9, 1 } };
var series2 = new Series
{
Color = System.Drawing.Color.Green,
IsVisibleInLegend = false,
IsXValueIndexed = true,
ChartType = SeriesChartType.RangeColumn
};
series2["PixelPointWidth"] = "110";
for (int i = 0; i < horas.GetLength(0); i++)
{
series1.Points.AddXY(horas[i, 0], horas[i, 1]);
}
for (int i = 0; i < horas.GetLength(0); i++)
{
series2.Points.AddXY(horas1[i, 0], horas1[i, 1]);
}
int b = 0;
foreach (var label in Chart1.ChartAreas[0].AxisX.CustomLabels)
{
label.Text = b.ToString();
b++;
}
Chart1.Series.Add(series1);
Chart1.Series.Add(series2);
Chart1.ChartAreas[0].AxisY.Interval = 0;
Chart1.ChartAreas[0].AxisX.Interval = 1;
Chart1.ChartAreas[0].AxisY.Maximum = 1;
Chart1.ChartAreas[0].AxisY.Minimum = 0;
Chart1.ChartAreas[0].AxisX.MajorGrid.LineWidth = 0;
Chart1.ChartAreas[0].AxisY.MajorGrid.LineWidth = 0;
Chart1.DataBind();
However, this solution is not optimal because it requires me to put at least one pixel on the side that does not interest me.
Basically what I need is to know if there is the possibility of moving the values to be painted on the X axis, so that if the point to be painted is 1 and I put a displacement to the right of 55px, I would describe it to correct way.
P.D: Any other solution that achieves the desired result is worth me. Thank you very much for the help.