Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/312.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#excel雷达图-如何更改水平轴?_C#_Wpf_Excel_Radar Chart - Fatal编程技术网

c#excel雷达图-如何更改水平轴?

c#excel雷达图-如何更改水平轴?,c#,wpf,excel,radar-chart,C#,Wpf,Excel,Radar Chart,在我的WPF应用程序中,我allready将数据导出到Excel,以在雷达图中绘制它们,只需将此图重新导入应用程序。为了实时分析数据,我需要这样做,而使用WPF工具包,我还无法创建雷达图(在使用Excel之前,我花了很多时间搜索解决方案) 我现在的问题是,我不能通过C#改变雷达图的水平轴。在Excel中,我可以通过设置图表选项轻松地完成这项工作,但在我的代码中,我还不知道该做什么,在调试中,我也没有找到任何图表项,这告诉了我更多。到目前为止,我的代码如下: Excel.Application a

在我的WPF应用程序中,我allready将数据导出到Excel,以在雷达图中绘制它们,只需将此图重新导入应用程序。为了实时分析数据,我需要这样做,而使用WPF工具包,我还无法创建雷达图(在使用Excel之前,我花了很多时间搜索解决方案)

我现在的问题是,我不能通过C#改变雷达图的水平轴。在Excel中,我可以通过设置图表选项轻松地完成这项工作,但在我的代码中,我还不知道该做什么,在调试中,我也没有找到任何图表项,这告诉了我更多。到目前为止,我的代码如下:

Excel.Application application = new Excel.Application();
Excel.Workbook workbook = application.Workbooks.Open(fileName);
Excel.Worksheet worksheet = workbook.Worksheets[1] as Excel.Worksheet;
CreateData(worksheet, sortangle, sortmu);

// Add chart.
Excel.ChartObjects xlCharts = worksheet.ChartObjects() as Excel.ChartObjects;
Excel.ChartObject myChart = xlCharts.Add(120, 10, 300, 300) as Excel.ChartObject;
Excel.Chart chart = myChart.Chart;

chart.ChartType = Excel.XlChartType.xlRadar;
var scale_range = worksheet.get_Range("A1", "A" + sortangle.Count.ToString());
var data_range = worksheet.get_Range("B1", "B" + sortangle.Count.ToString());
chart.SetSourceData(data_range);
chart.HasLegend = false;

// Set chart properties.
chart.ChartWizard(Source: data_range);
因此,我得到了这样一个结果:

但是旋转轴需要缩放0到360度,因为I处理的数据存储有角度信息

所以我试着在这里寻找其他类似C#Excel的问题,例如,添加不同的行,如
chart.SeriesCollection(1).XValues=scale\u range
图表.Axes(Excel.XlAxisType.xlValue).Source=scale\u范围。即使将
ChartWizard
更改为
chart.ChartWizard(来源:数据范围,系列标签:比例范围)我没走多远

如有任何建议,我将不胜感激

编辑:
通过检查代码,您可能会看到,
scale\u range
未被使用。我也试着把它放在
数据范围
项中,但是我得到了两行。

好的。最终得到了解决方案(在的帮助下),希望我能帮助其他人解决同样的问题。这也适用于雷达图。只需通过以下方式更正更改水平轴的代码:

 Excel.Axis xAxis = (Excel.Axis)chart.Axes(Excel.XlAxisType.xlCategory, Excel.XlAxisGroup.xlPrimary);
 xAxis.CategoryNames = scale_range;