xtrareport webchartcontrol pie net example control chart aspx asp c# asp.net charts asp.net-charts radar-chart

c# - webchartcontrol - Dibujo feo de la tabla de radar MS asp.net



spreadsheet asp net (1)

Estoy usando los controles de gráficos MS asp.net. Y estoy usando la tabla de radar para dibujar algunos valores, pero por alguna razón, las líneas del eje X en realidad no se encuentran en el medio.

Configuré LineWidth = 1 , pero la línea todavía toma 2 pixeles y algunos de los marcadores están totalmente apagados, o tal vez es la línea que está totalmente desactivada. Tal vez mi texto también esté un poco apagado, así que por favor vean la foto y con suerte comprenderán mi problema. =)

Código que genera el cuadro:

// Populate series data Chart chart1 = new Chart(); chart1.ChartAreas.Add(new ChartArea("ChartArea1")); chart1.Height = new Unit(380); chart1.Width = new Unit(880); //chart1.AntiAliasing = AntiAliasingStyles.Graphics; //chart1.BackColor = Color.Transparent; chart1.Customize += new EventHandler(Chart_Customize); // Show as 3D chart1.ChartAreas["ChartArea1"].Area3DStyle.Enable3D = false; chart1.ChartAreas["ChartArea1"].AxisY.IntervalAutoMode = IntervalAutoMode.FixedCount; chart1.ChartAreas["ChartArea1"].AxisY.Interval = 10; chart1.ChartAreas["ChartArea1"].AxisY.Maximum = 100; chart1.ChartAreas["ChartArea1"].AxisY.IsReversed = true; chart1.ChartAreas[0].AxisY.LineWidth = 1; chart1.ChartAreas[0].AxisY.MajorGrid.LineColor = Color.Gray; chart1.ChartAreas[0].AxisY.LineColor = Color.Gray; chart1.ChartAreas[0].AxisY.MajorTickMark.Enabled = false; List<string> names = new List<string>(); int namecounter = 1; foreach (var p in Model.Participants) { if (SessionHandle.ShowNamesInDiagrams) names.Add(p.Person.Name); else names.Add(namecounter.ToString()); namecounter++; } #region firstresult if (SessionHandle.ShowFirstResult) { chart1.Series.Add(new Series("FirstResult")); List<double> firstresult = new List<double>(); foreach (var p in Model.Participants) { var resultSummary = from r in Model.ResultSummary where r.userID == p.ParentID && Model .Modules .Where(x => x.hasResult) .ToList() .Exists(x => x.ID == r.moduleID) select r; firstresult.Add(resultSummary.Sum(x => x.scorePercent) / Model.Modules.Where(x => x.hasResult).Count()); } chart1.Series["FirstResult"].Points.DataBindXY(names, firstresult); // Set radar chart type chart1.Series["FirstResult"].ChartType = SeriesChartType.Radar; // Set radar chart style (Area, Line or Marker) chart1.Series["FirstResult"]["RadarDrawingStyle"] = "Marker"; chart1.Series["FirstResult"].Color = Color.DarkBlue; chart1.Series["FirstResult"].MarkerImage = Url.Content("~/Content/Images/firstresult.png"); // Set circular area drawing style (Circle or Polygon) chart1.Series["FirstResult"]["AreaDrawingStyle"] = "Circle"; // Set labels style (Auto, Horizontal, Circular or Radial) chart1.Series["FirstResult"]["CircularLabelsStyle"] = "Horizontal"; } #endregion


Las coordenadas de WPF se refieren al centro del píxel, no a las esquinas, así que intente agregar 0.5 a todas sus coordenadas. Para mostrar este es el caso considere la siguiente xaml:

<Canvas> <Line X1="50" Y1="50" X2="100" Y2="50" Stroke="Black" StrokeThickness="1" /> <Line X1="50" Y1="50" X2="50" Y2="100" Stroke="Black" StrokeThickness="1" /> <Line X1="50" Y1="50" X2="100" Y2="100" Stroke="Black" StrokeThickness="1" /> </Canvas>

Aquí se representa normalmente y luego con un desplazamiento de 0,5 píxeles aplicado a cada coordenada: