C# Mschart具有不同值计数的多个系列(更改X轴间隔)
我需要将折线图保存为.png甚至.svg文件。 一个数据集(日期、值),每个数据集有1800个值。我可以保存一个非常精确的.png,但是,xAxis的主要线条填充了整个图表区域。它实际上是完全黑色的。 我正在使用System.Windows.Forms.DataVisualization.Charting;要创建图表,请顺便说一句 我试图将xAxis间隔增加100,以仅显示18个时间戳,但仍然显示所有1800个值,这根本不起作用。 此外,我还尝试添加一个仅包含18个值的附加系列,使线条透明,并且仅使第二个系列的x轴可见。C# Mschart具有不同值计数的多个系列(更改X轴间隔),c#,.net,charts,pdfsharp,migradoc,C#,.net,Charts,Pdfsharp,Migradoc,我需要将折线图保存为.png甚至.svg文件。 一个数据集(日期、值),每个数据集有1800个值。我可以保存一个非常精确的.png,但是,xAxis的主要线条填充了整个图表区域。它实际上是完全黑色的。 我正在使用System.Windows.Forms.DataVisualization.Charting;要创建图表,请顺便说一句 我试图将xAxis间隔增加100,以仅显示18个时间戳,但仍然显示所有1800个值,这根本不起作用。 此外,我还尝试添加一个仅包含18个值的附加系列,使线条透明,并
我还尝试使用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 createWinfromChart()
{
int-cnt=0;
foreach(对象中的KeyValuePair keyValue)
{
chart1=新图表();
图1.尺寸=新尺寸(10001000);
addNewSeries(keyValue.Value.SimpleOutput(),keyValue.Key);
cnt++;
保存图表图像(cnt);
}
}
public void addNewSeries(字典、字符串标记)
{
ChartArea ChartArea=新的ChartArea();
chart1.ChartAreas.Add(chartArea);
//哈克斯
chart1.ChartAreas[0]。轴[0]。MajorGrid.Enabled=false;
//哈克斯
chart1.ChartAreas[0]。轴[1]。MajorGrid.Enabled=false;
chart1.ChartAreas[0]。AxisX.Interval=100;
系列=新系列();
//系列风格
series.ChartType=serieChartType.Line;
系列。边框宽度=2;
series.Color=Color.Green;
series.isxvalueindex=false;
foreach(对象[tag].value中的浮点值)
{
系列点添加(值);
}
图1.系列。添加(系列);
ChartArea ChartArea 2=新的ChartArea();
图表1.图表区域。添加(图表区域2);
chart1.ChartAreas[1]。轴[0]。MajorGrid.Enabled=true;
chart1.ChartAreas[1]。轴[1]。MajorGrid.Enabled=true;
系列2=新系列();
series2.ChartType=SerieChartType.Line;
series2.BorderWidth=0;
series2.Color=Color.Transparent;
series2.isxvalueindex=false;
foreach(字典中的KeyValuePair-valuePair)
{
series2.Points.AddXY(valuePair.Key,0);
}
图1.系列。添加(系列2);
}
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);
}