gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 17:31:15 25 4
gpt4 key购买 nike

在我的 WPF 应用程序中,我已经将数据导出到 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);

所以我得到这样的结果:

enter image description here

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

所以我尝试通过查看其他 C# Excel 类似的问题,例如this one ,添加不同的行,例如 chart.SeriesCollection(1).XValues = scale_range;chart.Axes(Excel.XlAxisType.xlValue).Source = scale_range;。即使将 ChartWizard 更改为 chart.ChartWizard(Source: data_range, SeriesLabels: scale_range); 我也没走多远。

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

编辑:通过检查您可能会看到的代码,scale_range 未在 atm 中使用。我还尝试将它放入 data_range 项中,但后来我得到了两行。

最佳答案

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

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

关于c# excel 雷达图 - 如何更改水平轴?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48223322/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com