C# 图表图形don'上的点;不适合y型线
我的第二张图表上的点不适合y轴,如您在此处所见: 点的值正好是50.0000、49.9999、49.9998和50.0001。但他们并不在线。当我加上点,然后增加y轴上的值的数量,那么点就会适合y轴,就像这样 这是我的代码(对于塞尔维亚文本值很抱歉)C# 图表图形don'上的点;不适合y型线,c#,mschart,C#,Mschart,我的第二张图表上的点不适合y轴,如您在此处所见: 点的值正好是50.0000、49.9999、49.9998和50.0001。但他们并不在线。当我加上点,然后增加y轴上的值的数量,那么点就会适合y轴,就像这样 这是我的代码(对于塞尔维亚文本值很抱歉) tacnostAvge-tacnost=bazaPodataka.ucitajtacnostAvge(Convert.ToString(dataGridView2.SelectedRows[0].Cells[2].Value),Convert.T
tacnostAvge-tacnost=bazaPodataka.ucitajtacnostAvge(Convert.ToString(dataGridView2.SelectedRows[0].Cells[2].Value),Convert.ToInt32(comboBox18.Text));
列出testoviTacnost=bazaPodataka.ucitajtestovetacnosvage(Convert.ToString(dataGridView2.SelectedRows[0].Cells[2].Value),Convert.ToInt32(comboBox18.Text));
chart2.ChartAreas.Clear();
图2.Series.Clear();
prikažiToolStripMenuItem.DropDownItems.Clear();
tableDataToolStripMenuItem.DropDownItems.Clear();
字符串格式=Convert.ToString(vaga.Podeljak);
format=format.Remove(format.Length-1,1)+“0”;
如果(testoviTacnost.Count!=0)
{
对于(int i=0;i=area.AxisY.Maximum)
area.AxisY.max=series.Points.FindMaxByValue().YValues[0]+area.AxisY.Interval;
area.AxisY.Minimum=area.AxisY.StripLines[1].IntervalOffset-area.AxisY.Interval;
如果(series.Points.FindMinByValue().YValues[0]我找到了解决方案,但我不确定这个解释是否正确。问题是Y轴最大值。图表Y轴间隔为0.0001(4个小数),但在我的代码中,我将最大值设为带线间隔偏移量(大于4个小数)加上图表间隔(结果大于4个小数)。因此,当字符的Y轴最大值和间隔(如果设置了间隔)有不同的小数数时,可能会发生这种情况。因此,我只是简单地将条线InvervalOffset四舍五入为4小数(在本例中),并将Y轴最大值设为与间隔相同的4小数。ba‘Y线’是什么意思?条线?(这些被放在一个计算出的平均值上,对吗?)数据点很好地位于网格线上,不是吗?嗯,你编辑了错误的图片。这是我上传问题时的第一张图片:。在那张图片中,数据点不适合网格线。嗯,对不起。这里的值是什么:area.AxisY.Interval=vaga.Podeljak;
。所以只需添加几个点,其他更改位置就不可能了。或者网格线是否移动?在这种情况下,间隔为0.0001。我不知道。有时,即使我删除点并更改y轴上的值的数量,它也会出错,即使在删除之前它是好的。
TacnostVage tacnost = bazaPodataka.UcitajTacnostVage(Convert.ToString(dataGridView2.SelectedRows[0].Cells[2].Value), Convert.ToInt32(comboBox18.Text));
List<TestTacnostVage> testoviTacnost = bazaPodataka.UcitajTestoveTacnostVage(Convert.ToString(dataGridView2.SelectedRows[0].Cells[2].Value), Convert.ToInt32(comboBox18.Text));
chart2.ChartAreas.Clear();
chart2.Series.Clear();
prikažiToolStripMenuItem.DropDownItems.Clear();
tabeluToolStripMenuItem.DropDownItems.Clear();
string format = Convert.ToString(vaga.Podeljak);
format = format.Remove(format.Length - 1, 1) + "0";
if (testoviTacnost.Count != 0)
{
for (int i = 0; i < tacnost.NominalneMase.Count(); i++)
{
ChartArea area = new ChartArea();
Series series = new Series();
area.AxisY.MajorGrid.LineColor = Color.LightGray;
area.AxisX.MajorGrid.LineColor = Color.LightGray;
area.AxisY.LabelStyle.Format = format;
area.BorderColor = Color.LightGray;
area.BorderDashStyle = ChartDashStyle.Solid;
area.AxisY.Interval = vaga.Podeljak;
area.Name = "ChartArea" + (i + 1);
series.ChartType = SeriesChartType.Point;
series.ChartArea = "ChartArea" + (i + 1);
series.Name = "Tačka" + (i + 1);
string text = "";
TegoviTacnostVaga tegoviTacnost = bazaPodataka.UcitajTegoveTacnostVage(Convert.ToString(dataGridView2.SelectedRows[0].Cells[2].Value), Convert.ToInt32(comboBox18.Text), i);
if (tegoviTacnost != null)
{
for (int j = 0; j < tegoviTacnost.Proizvodjac.Count(); j++)
{
text += tegoviTacnost.Proizvodjac[j] + " ";
text += tegoviTacnost.SerijskiBrojevi[j] + " ";
text += tegoviTacnost.NominalneMase[j] + "g";
text += (j == tegoviTacnost.Proizvodjac.Count() - 1 ? "" : "\n");
}
}
series.LegendText = (text == "" ? "Nema podataka" : text);
for (int j = 0; j < testoviTacnost.Count(); j++)
series.Points.AddXY(testoviTacnost[j].RedniBrojTesta, testoviTacnost[j].RezultatiMerenja[i]);
area.AxisY.StripLines.Add(new StripLine() { BorderColor = Color.Red, IntervalOffset = (tacnost.RezultatiMerenja[i].Average() + koeficijentTacnost * ponovljivost.ReferentnaVrednost), Text = "Gornja granica: " + Convert.ToDouble(tacnost.RezultatiMerenja[i].Average() + koeficijentTacnost * ponovljivost.ReferentnaVrednost).ToString(format) });
area.AxisY.StripLines.Add(new StripLine() { BorderColor = Color.Red, IntervalOffset = (tacnost.RezultatiMerenja[i].Average() - koeficijentTacnost * ponovljivost.ReferentnaVrednost), Text = "Donja granica: " + Convert.ToDouble(tacnost.RezultatiMerenja[i].Average() - koeficijentTacnost * ponovljivost.ReferentnaVrednost).ToString(format) });
area.AxisY.Maximum = area.AxisY.StripLines[0].IntervalOffset + area.AxisY.Interval;
if (series.Points.FindMaxByValue().YValues[0] >= area.AxisY.Maximum)
area.AxisY.Maximum = series.Points.FindMaxByValue().YValues[0] + area.AxisY.Interval;
area.AxisY.Minimum = area.AxisY.StripLines[1].IntervalOffset - area.AxisY.Interval;
if (series.Points.FindMinByValue().YValues[0] <= area.AxisY.Minimum)
area.AxisY.Minimum = series.Points.FindMinByValue().YValues[0] - area.AxisY.Interval;
chart2.ChartAreas.Add(area);
chart2.Series.Add(series);
}
}