c# - 具有不同值计数的 Mchart 多个系列(更改 xAxis 间隔)
问题描述
我需要将 Linechart 保存为 .png,甚至可能是 .svg 文件。一个 Dataset(date, value),每个有 1800 个值。我能够保存一个非常准确的 .png,但是,xAxis 的 majorGridLines 填充了整个图表区域。它的实用完全黑色。我正在使用 System.Windows.Forms.DataVisualization.Charting;顺便说一句,创建图表。
我试图将 xAxis 间隔增加 100 以仅显示 18 个时间戳,但仍然是所有 1800 个值,这根本不起作用。此外,我尝试添加一个仅包含 18 个值的附加系列,使线条透明并且仅使第二个系列的 x 轴可见。
我还尝试使用 NuGet 中的 MigraDoc / PDFSharp 将图表直接构建为 .pdf 文件。我也没有找到办法在那里做。还是我做错了什么可怕的事情?
我希望你们中的任何人都知道我在说什么!
public void createWinfromChart()
{
int cnt = 0;
foreach (KeyValuePair<string, Data> keyValue in obj)
{
chart1 = new Chart();
chart1.Size = new Size(1000, 1000);
addNewSeries(keyValue.Value.simplifyOutput(), keyValue.Key);
cnt++;
saveChartImage(cnt);
}
}
public void addNewSeries(Dictionary<string, float> dictionary, string tag)
{
ChartArea chartArea = new ChartArea();
chart1.ChartAreas.Add(chartArea);
//xAchse
chart1.ChartAreas[0].Axes[0].MajorGrid.Enabled = false;
//yAchse
chart1.ChartAreas[0].Axes[1].MajorGrid.Enabled = false;
chart1.ChartAreas[0].AxisX.Interval = 100;
Series series = new Series();
//Series style
series.ChartType = SeriesChartType.Line;
series.BorderWidth = 2;
series.Color = Color.Green;
series.IsXValueIndexed = false;
foreach (float values in obj[tag].value)
{
series.Points.AddY(values);
}
chart1.Series.Add(series);
ChartArea chartArea2 = new ChartArea();
chart1.ChartAreas.Add(chartArea2);
chart1.ChartAreas[1].Axes[0].MajorGrid.Enabled = true;
chart1.ChartAreas[1].Axes[1].MajorGrid.Enabled = true;
Series series2 = new Series();
series2.ChartType = SeriesChartType.Line;
series2.BorderWidth = 0;
series2.Color = Color.Transparent;
series2.IsXValueIndexed = false;
foreach (KeyValuePair<string, float> valuePair in dictionary)
{
series2.Points.AddXY(valuePair.Key, 0);
}
chart1.Series.Add(series2);
}
解决方案
推荐阅读
- excel - 更新单元格时运行 VBA 宏 - 不是由用户或其他宏
- node.js - .cache() 不是函数 Mongoose
- c# - 尽管不支持'await'关键字,如何使此方法异步
- tensorflow - Keras ReduceLROnPlateau - 如何检查它是否已应用
- python - 从 Python 发送的电子邮件没有显示附件,即使它们在那里
- jwt - 通过 JWT 验证 Grafana
- asp.net-core - 覆盖默认的 asp.net 核心取消令牌或更改请求的默认超时
- python - Pymodbus:在 StopServer -> StartSerialServer 之后不起作用(无法打开端口:PermissionError)
- intellij-idea - 我无法在 IntelliJ 上编辑 http 文件或使用 http 客户端,我该如何解决?
- optimization - 如何在 F# 中优化此代码以提高速度,以及为什么一个部分执行两次?