C# 避免slim SerieChartType。区域别名不存在
使用C#和.NET4(我也尝试了4.5.1),我想在图表上绘制不同的区域,表示不同的时间跨度,有些短,有些长。在很短的时间跨度内(小于一个像素?),一些(但不是全部)消失。当图表稍微调整大小时,不同的图标消失,如下所示 我看不到任何模式可以预测未绘制的模式-请参阅下面的代码片段C# 避免slim SerieChartType。区域别名不存在,c#,dotnetcharting,C#,Dotnetcharting,使用C#和.NET4(我也尝试了4.5.1),我想在图表上绘制不同的区域,表示不同的时间跨度,有些短,有些长。在很短的时间跨度内(小于一个像素?),一些(但不是全部)消失。当图表稍微调整大小时,不同的图标消失,如下所示 我看不到任何模式可以预测未绘制的模式-请参阅下面的代码片段 using System; using System.Windows.Forms; using System.Windows.Forms.DataVisualization.Charting; namespace
using System;
using System.Windows.Forms;
using System.Windows.Forms.DataVisualization.Charting;
namespace ChartTest
{
public partial class Form1 : Form
{
public Form1( )
{
InitializeComponent( );
var series = new Series( )
{
ChartType = SeriesChartType.Area,
MarkerStyle = MarkerStyle.None,
XValueType = ChartValueType.DateTime,
YAxisType = AxisType.Primary,
};
AddLine( DateTime.Parse( "17/6/2015" ), series );
AddLine( DateTime.Parse( "18/6/2015" ), series );
AddLine( DateTime.Parse( "19/6/2015" ), series );
AddLine( DateTime.Parse( "20/6/2015" ), series );
AddLine( DateTime.Parse( "21/6/2015" ), series );
chart1.Series.Add( series );
}
private static void AddLine( DateTime dateTime, Series series )
{
var endTime = dateTime.AddMinutes( 2 );
series.Points.AddXY( dateTime, 0 );
series.Points.AddXY( dateTime, 1 );
series.Points.AddXY( endTime, 1 );
series.Points.AddXY( endTime, 0 );
}
}
}
有人知道如何避免这种情况而不使区域任意变宽吗?有人知道我是否可以使用绘制或预绘制事件来调整图形吗
提前感谢。在代码中添加数据点的方式意味着每天可能有24*30=720 2分钟的区域,另外还有24*30=7200 0 0分钟的区域,在系列颜色和背景之间交替。要显示它们,您需要每个间隔至少1440像素,或者示例中数据的图表宽度为5760像素。那不行。比如说,你的图表中有一天有大约100个像素!谢谢你的评论。是的,但不是真实数据会发生什么。实际上,两分钟的时间间隔可能为一小时,其他时间间隔可能为10分钟或长达6小时。我的问题是,我能做些什么来避免一些(但通常不是全部)2分钟小区域不显示。记住上面的计算:它们可以显示在哪里?宽度约为100/720=0.15像素,这是不可能发生的。真的没办法。人们可能会考虑使用一些特殊颜色手动消除混叠的单像素“区域”,但只有当您接受它们将从其他数据点窃取空间时,它们才有意义。。因此,我建议放弃这个选项,而是给用户放大的选项。在代码中添加数据点的方式意味着每天可能有24*30=720 2分钟的区域,还有24*30=7200 0 0分钟的区域,在系列颜色和背景之间交替。要显示它们,您需要每个间隔至少1440像素,或者示例中数据的图表宽度为5760像素。那不行。比如说,你的图表中有一天有大约100个像素!谢谢你的评论。是的,但不是真实数据会发生什么。实际上,两分钟的时间间隔可能为一小时,其他时间间隔可能为10分钟或长达6小时。我的问题是,我能做些什么来避免一些(但通常不是全部)2分钟小区域不显示。记住上面的计算:它们可以显示在哪里?宽度约为100/720=0.15像素,这是不可能发生的。真的没办法。人们可能会考虑使用一些特殊颜色手动消除混叠的单像素“区域”,但只有当您接受它们将从其他数据点窃取空间时,它们才有意义。。因此,我建议放弃这个选项,而是给用户放大的选项。在代码中添加数据点的方式意味着每天可能有24*30=720 2分钟的区域,还有24*30=7200 0 0分钟的区域,在系列颜色和背景之间交替。要显示它们,您需要每个间隔至少1440像素,或者示例中数据的图表宽度为5760像素。那不行。比如说,你的图表中有一天有大约100个像素!谢谢你的评论。是的,但不是真实数据会发生什么。实际上,两分钟的时间间隔可能为一小时,其他时间间隔可能为10分钟或长达6小时。我的问题是,我能做些什么来避免一些(但通常不是全部)2分钟小区域不显示。记住上面的计算:它们可以显示在哪里?宽度约为100/720=0.15像素,这是不可能发生的。真的没办法。人们可能会考虑使用一些特殊颜色手动消除混叠的单像素“区域”,但只有当您接受它们将从其他数据点窃取空间时,它们才有意义。。因此,我建议放弃这个选项,而是给用户放大的选项。。