C#图表类--x轴的自定义标签?

C#图表类--x轴的自定义标签?,c#,.net,visual-studio,user-interface,charts,C#,.net,Visual Studio,User Interface,Charts,我使用C#与使用EntityFramework的MSSQL数据库通信。我想从图表中的表中绘制的两列是以下格式的:第一列是字符串(这就是它提供给我的方式,我知道它可能不是最好的设计选项),格式为“MM/dd/yyyy HH:MM:ss.fff”(其中fff代表毫秒),第二个表是一个简单的浮点值 我希望x轴代表时间,y轴代表浮点值。如果我只是将字符串按原样输入到chart类,那么这些点在水平方向上的间距是相等的。我试图可视化的数据不是以固定的时间间隔出现的,因此这不是期望的行为 我尝试将日期字符串转

我使用C#与使用EntityFramework的MSSQL数据库通信。我想从图表中的表中绘制的两列是以下格式的:第一列是字符串(这就是它提供给我的方式,我知道它可能不是最好的设计选项),格式为“MM/dd/yyyy HH:MM:ss.fff”(其中fff代表毫秒),第二个表是一个简单的浮点值

我希望x轴代表时间,y轴代表浮点值。如果我只是将字符串按原样输入到chart类,那么这些点在水平方向上的间距是相等的。我试图可视化的数据不是以固定的时间间隔出现的,因此这不是期望的行为

我尝试将日期字符串转换为整数,每个整数表示从我绘制的最早时间点起经过的毫秒数。这在图表中显示得很好,但我不希望x轴上的点被标记为新计算的整数。我希望x轴显示原始的日期,但我希望在将值转换为整数时保持相对的水平顺序。我希望我的问题清楚。例如,如果我想可视化以下三个点(01/01/2014 00:00:00.000,y1),(01/01/2014 00:00:00.500,y2)和(01/01/2014 00:00:02.000,y3),如何确保第二个点和第三个点之间的水平距离比第一个点和第二个点之间的水平差大三倍,而把原来的日期标签保留在x轴上

你知道我该怎么做吗?有没有办法指定一个函数,该函数将为每个int返回x轴的标签字符串


谢谢。

如果您要逐个添加点-例如

chart1.Series[0].Points.AddXY(dateString, yValue);
您可以将
字符串
对象转换为
日期时间
对象,图表控件可以根据需要轻松显示这些对象。在调用
AddXY
之前,只需转换
dateString

如果要将结果表从数据库直接绑定到图表,这可能不起作用。您可以尝试设置轴的
格式
属性:

chart1.ChartAreas[0].AxisX.LabelStyle.Format = "MM/dd/yyyy hh:mm:ss.fff";

或者类似的东西。但不确定这是否能正常工作。

您能解释一下它是如何决定点之间的间距的(以及为什么它适用于DateTime对象)?如果它使用一些函数来决定b.x-a.x应该是多少,然后将点可视化,那么用户可以定义这样的函数吗?它减去点来确定间距。
DateTime
类重写减法运算符以返回有意义的结果,但
string
不能返回有意义的结果(因此,您最初使用字符串的尝试会导致间隔相等)。您需要使用一些可以减去的数据类型。整数可以工作,但正如您所发现的,您在标记时遇到了问题。您可以使用自定义标签,但如果您已经转换为整数,则更容易转换为
DateTime
,并让图表处理标签。这正是我的工作原理,我不知道我可以为DateTime类设置自定义格式!非常感谢!:)