在LINQPad图表中自定义时间序列数据的X轴刻度与标签
解决方案
直接在原有LINQPad绘图链式调用的末尾追加X轴配置即可,修改后的完整代码如下:
File.ReadAllLines(@"\\...\ModelTimes.csv") .Skip(1) .Select(line => line.Split(',')) .Select(data => new { CurrentTime = DateTime.Parse(data[0]), ModelTime = DateTime.Parse(data[1]), ModelAgeHours = Decimal.Parse(data[2]), CutOff = 2 }) .Where(data => data.CurrentTime.Date == new DateTime(2021, 9, 24)) .Chart(data => data.CurrentTime) .AddYSeries(data => data.ModelAgeHours, LINQPad.Util.SeriesType.Line, "Model Age") .AddYSeries(data => data.CutOff, LINQPad.Util.SeriesType.Line, "2 Hours") // 新增X轴自定义配置 .WithXAxis(axis => { // 配置X轴标签显示格式 axis.LabelStyle.Format = "yyyy-MM-dd HH:mm"; // 配置刻度间隔为2小时 axis.Interval = 2; axis.IntervalType = System.Windows.Forms.DataVisualization.Charting.DateTimeIntervalType.Hours; // 可选:标签倾斜45度避免重叠 axis.LabelStyle.Angle = -45; })
配置说明
- LINQPad的图表API开放了
WithXAxis/WithYAxis方法,可直接操作底层的.NET Chart控件轴对象,实现所有自定义配置需求 LabelStyle.Format参数可自定义日期时间的显示格式,此处yyyy-MM-dd HH:mm完全匹配你需要的2021-09-24 10:00样式Interval和IntervalType配合使用,指定刻度的间隔大小和单位,此处设置为每2小时生成一个刻度- 如果运行时提示找不到
DateTimeIntervalType,可在代码顶部手动导入命名空间:using System.Windows.Forms.DataVisualization.Charting;
内容的提问来源于stack exchange,提问作者baralong
相关产品推荐
相关产品推荐

