【发布时间】:2017-06-08 05:24:43
【问题描述】:
我正在尝试创建 .Net 图表 (Windows.Forms) 并将其导出到 .jpeg 文件。
下面是它的代码
public void ExportRouteGraphToJpeg(string nameOfChart, int xMax, int yMax, int xMin, int yMin )
{
var chartForExport = new Chart();
chartForExport.Series.Clear();
var xVsYSeries = new Series
{
Name = "XvsY",
Color = Color.Blue,
IsVisibleInLegend = false,
IsXValueIndexed = true,
ChartType = SeriesChartType.Point,
MarkerSize = 6,
MarkerColor = Color.Blue
};
for (var i = 0; i < xValue.Length; i++)
{
xVsYSeries.Points.AddXY(xValue[i], yValue[i]);
}
chartForExport.Series.Add(xVsYSeries);
// Chart Area Definition
var chartArea = new ChartArea
{
Name = "SupportPoints",
AxisX =
{
Title = "X Co-ordinate [cm]",
ArrowStyle = AxisArrowStyle.Triangle,
Maximum = xMax + 100,
Minimum = xMin - 100
},
AxisY =
{
Title = "Y Co-ordinate [cm]",
ArrowStyle = AxisArrowStyle.Triangle,
Maximum = yMax + 100,
Minimum = yMin - 100
}
};
chartForExport.ChartAreas.Add(chartArea);
chartForExport.Location = new Point(0, 50);
chartForExport.TabIndex = 0;
chartForExport.Name = "ChartRoute";
chartForExport.SaveImage(nameOfChart + ".jpeg", ChartImageFormat.Jpeg);
}
我得到的输出如下所示(xValue 的 5 个点 = 1000、2000、3000、4000 和 yValue 相同)
当我为AxisX and AxisY 删除Maximum = yMax + 100, Minimum = yMin - 100 时,我得到了所需的输出。请看下面
任何建议为什么会发生这种情况?
【问题讨论】:
-
第一个输出是否只有在保存到 jpg 文件或显示在表单上时才会发生?
-
@LeiYang 我不使用 Form,我只是将 Form 程序集用于控制台应用程序。
-
你能提供一个工作样本吗?
xValue和yValue不要编译,我想复制试试看。 -
@LeiYang,请找到值` xValue = new[] {1000, 2000, 3000, 4000, 5000}; yValue = new[] { 1000, 2000, 3000, 4000, 5000 }; xMax = xValue.Max(); yMax = yValue.Max(); xMin = xValue.Min(); yMin = yValue.Min();`
-
我注意到默认
Maximum和Minimum都是 NaN
标签: c# .net winforms charts mschart