Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/325.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 来自.Net图表的意外行为_C#_.net_Winforms_Charts_Mschart - Fatal编程技术网

C# 来自.Net图表的意外行为

C# 来自.Net图表的意外行为,c#,.net,winforms,charts,mschart,C#,.net,Winforms,Charts,Mschart,我正在尝试创建.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 Ser

我正在尝试创建.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);
}
public void ExportRouteGraphToJpeg(字符串名为chart,int-xMax,int-yMax,int-xMin,int-yMin)
{
var chartForExport=新图表();
chartForExport.Series.Clear();
var xVsYSeries=新系列
{
Name=“XvsY”,
颜色=颜色。蓝色,
IsVisibleInLegend=false,
IsXValueIndexed=true,
ChartType=系列ChartType.Point,
MarkerSize=6,
MarkerColor=Color.Blue
};
对于(变量i=0;i
我得到的输出如下所示(对于xValue=1000、2000、3000、4000的5个点,对于yValue也是如此)

当我删除AxisX和AxisY的
Maximum=yMax+100,Minimum=yMin-100
时,我得到了所需的输出。请看下面


有什么建议说明为什么会发生这种情况吗

使用一些第三方图表,如high chart,示例如下

DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
  <head>
    <title>Bar Chart</title>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <script src="http://code.jquery.com/jquery-1.9.1.js" type="text/javascript"></script>
    <script src="http://code.highcharts.com/highcharts.js" type="text/javascript"></script>
      <script src="http://code.highcharts.com/modules/exporting.js" type="text/javascript"></script>

      <script type="text/javascript">
          $(function() {
              $('#container').highcharts({
                  chart: {
                      type: 'bar'
                  },
                  title: {
                      text: 'MyFruit database info'
                  },
                  xAxis: {
                      categories: ['Records', 'Fragmentation', 'Users']
                  },
                  yAxis: {
                      title: {
                          text: 'Values'
                      }
                  },
                  series: [
                      {
                          name: 'MyFruit_Sites',
                          data: [10, 50, 4]
                      }, {
                          name: 'MyFruit_Devices',
                          data: [500, 80, 3]
                      }
                  ]
              });

              // the button handler
              $('#button').click(function () {
                  var chart = $('#container').highcharts();
                  chart.addSeries({
                              name: 'MyFruit_Users',
                              data: [30, 60, 4]
                          });
                });
          });
      </script>
  </head>
  <body>
    <div id="container" style="min-width: 400px; height: 400px; margin: 0 auto"></div>
      <button id="button" class="autocompare">Add series</button>
  </body>
</html>
DOCTYPE html PUBLIC“-//W3C//DTD html 4.01//EN”http://www.w3.org/TR/html4/strict.dtd">
条形图
$(函数(){
$(“#容器”)。高图({
图表:{
类型:'bar'
},
标题:{
文本:“我的水果数据库信息”
},
xAxis:{
类别:[“记录”、“碎片”、“用户”]
},
亚克斯:{
标题:{
文本:“值”
}
},
系列:[
{
名称:“MyFruit_网站”,
数据:[10,50,4]
}, {
名称:“MyFruit_设备”,
数据:[500,80,3]
}
]
});
//按钮处理程序
$(“#按钮”)。单击(函数(){
var chart=$(“#容器”).highcharts();
chart.addSeries({
名称:“MyFruit_用户”,
数据:[30,60,4]
});
});
});
添加系列

从序列定义中删除
isxvalueindex=true


这不是答案,也不是用c#抱歉,但你在这里帮不了忙。我在问一个问题,但你回答的是一些你知道的问题,而不是问题的答案。第一次输出是否仅在保存到jpg文件或在表单上显示时发生?@LeiYang我不使用表单,我只使用表单汇编作为控制台应用程序。你能给出一个工作示例吗
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()`我注意到默认值
最大值
最小值
都是NaNWell,问题不是它为什么有效,而是它为什么会打破图表。如果查看属性文档,它会告诉您,当您将其设置为true时,它会忽略点X值并使用其索引。此外,如果手动将
最小值设置为0(零),您将看到所有点“堆叠”,接近X=0。底线是:如果要使用某些属性,您应该知道使用的原因以及它对图表的影响。
图表
对象在属性中有无数属性,很容易在你面前爆炸…:O)