如何制作图表&x27;s水平和垂直测量单位相同,使用C#

如何制作图表&x27;s水平和垂直测量单位相同,使用C#,c#,winforms,charts,data-visualization,C#,Winforms,Charts,Data Visualization,生成的图形必须以这样的方式表示:1mm(1个单位)水平方向正好是1mm(1个单位)垂直方向(或任何其他测量,基本上相等单位的正方形必须是正方形,而不是矩形) 我正在使用System.Windows.Forms.DataVisualization.Charting库和Windows窗体应用程序 chart1.Width= 500; chart1.Height = 500; chart1.Legends.Clear(); var area = chart1.ChartAreas[0]; area.

生成的图形必须以这样的方式表示:1mm(1个单位)水平方向正好是1mm(1个单位)垂直方向(或任何其他测量,基本上相等单位的正方形必须是正方形,而不是矩形)

我正在使用System.Windows.Forms.DataVisualization.Charting库和Windows窗体应用程序

chart1.Width= 500;
chart1.Height = 500;
chart1.Legends.Clear();

var area = chart1.ChartAreas[0];
area.AxisX.Minimum = 0;
area.AxisX.Maximum = 10;
area.AxisX.Interval = 1;

area.AxisY.Minimum = 0;
area.AxisY.Maximum = 15;
area.AxisY.Interval = 1;


var lineSeries = chart1.Series[0];
lineSeries.ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Line;
//lineSeries.MarkerSize = 3;
lineSeries.BorderWidth = 3;

lineSeries.Points.AddXY(0, 0);
lineSeries.Points.AddXY(2, 2);
lineSeries.Points.AddXY(4, 6);
lineSeries.Points.AddXY(6, 10);
lineSeries.Points.AddXY(10, 10);
这里的输出显示图形的高度和宽度比不正确(宽度应为高度的2/3)。

area.AxisX.Minimum = 0;
area.AxisX.Maximum = 15;
area.AxisX.Interval = 1;

area.AxisY.Minimum = 0;
area.AxisY.Maximum = 15;
area.AxisY.Interval = 1;

此输出显示图形的高度和宽度相同且为正方形。如果我使两个轴相等。e、 g.

area.AxisX.Minimum = 0;
area.AxisX.Maximum = 15;
area.AxisX.Interval = 1;

area.AxisY.Minimum = 0;
area.AxisY.Maximum = 15;
area.AxisY.Interval = 1;

我终于通过@Taw提到的帖子和评论得到了答案

如果你的显示器能够显示正方形像素,你会有 要确保图表区域的InnerPlotPosition为正方形


我觉得不错。鉴于yopur监视器能够显示正方形像素,您必须确保图表区域的内部打印位置为正方形。这并不像听起来那么容易@TaW非常感谢您提供的详细链接。关于图表大小和比率的许多混淆现在已经清楚了。@Taw我已经更新了这个问题,并添加了一个图像,以阅读“这里的输出显示图表的高度和宽度比率不正确(宽度应为高度的2/3)”。请问这方面有什么指示吗?不知道你的意思。默认情况下,图表将使所有内容尽可能大。因此,第一个图像作为默认图像是正确的。如果要保持纵横比,则需要调整图表或其内部区域的大小,即chartare和/或innerplotposition。@t如果使用innerplot position,我需要在提供的代码中进行哪些更改,以便获得纵横比的基本大小,而不是整个正方形?