TeeChart的X轴为时间,多个Y轴的显示

最后上代码

public partial class Test : Form
    {
        private TChart tChart = new TChart();
        private int space = 3;

        public Test()
        {
            InitializeComponent();
            Init();
        }

        /// <summary>
        /// 添加若干个自定义坐标轴
        /// </summary>
        /// <param name="count"></param>
        private void AddCustomAxis(int count)
        {
            List<BaseLine> listBaseLine = new List<BaseLine>();
            for (int i = 0; i < tChart.Series.Count; i++)
            {
                listBaseLine.Add((BaseLine)tChart.Series[i]);
            }

            double single = (100 - space * (count + 2)) / (count + 1);//单个坐标轴的百分比
            tChart.Axes.Left.StartPosition = space;
            tChart.Axes.Left.EndPosition = tChart.Axes.Left.EndPosition = tChart.Axes.Left.StartPosition + single;
            tChart.Axes.Left.StartEndPositionUnits = PositionUnits.Percent;
            listBaseLine[0].CustomVertAxis = tChart.Axes.Left;

            double startPosition = tChart.Axes.Left.StartPosition;
            double endPosition = tChart.Axes.Left.EndPosition;
            Axis axis;
            for (int i = 0; i < count; i++)
            {
                axis = new Axis();
                startPosition = endPosition + space;
                endPosition = startPosition + single;
                axis.StartPosition = startPosition;
                axis.EndPosition = endPosition;
                tChart.Axes.Custom.Add(axis);
                listBaseLine[i + 1].CustomVertAxis = axis;
            }
        }

        private void Init()
        {
            tChart.Dock = DockStyle.Fill;
            tChart.Aspect.View3D = false;
            tChart.Legend.LegendStyle = LegendStyles.Series;
            tChart.Axes.Bottom.Labels.DateTimeFormat = "yyyy-MM-dd HH:mm:ss";
            tChart.Axes.Bottom.Labels.ExactDateTime = true;
            tChart.Axes.Bottom.Labels.Angle = 90;
            tChart.Axes.Bottom.Minimum = 12 * Utils.GetDateTimeStep(DateTimeSteps.OneSecond);
            tChart.Axes.Bottom.Minimum = 60 * Utils.GetDateTimeStep(DateTimeSteps.OneSecond);
            panel2.Controls.Add(tChart);

            DataSet data = HSQueryHistoryCurve.Instance.Search(new HSQueryCondition()
            {
                ChannelId = new List<int>() { 1,2,3,4},
                DeviceId = "112233445566",
                StartTime = DateTime.Now.AddMonths(-1).ToString("yyyy-MM-dd HH:mm:ss"),
                EndTime = DateTime.Now.AddMonths(1).ToString("yyyy-MM-dd HH:mm:ss"),
                ProjectId = 1
            });

            DateTime time = DateTime.Now;
            for (int j = 0; j < data.Tables.Count; j++)
            {
                DataTable dataTable = data.Tables[j];
                Line line = new Line();
                tChart.Series.Add(line);
                line.Title = string.Format("曲线{0}", j + 1);
                line.XValues.DateTime = true;
                for (int i = 0; i < dataTable.Rows.Count; i++)
                {
                    line.Add(time.AddSeconds(i).ToOADate(), (double)dataTable.Rows[i][1]);
                }
            }

            AddCustomAxis(3);
        }
    }

ps:data是一个数据集,包含若干个数据表

每一个数据表对应一条曲线的数据,第一列为时间,第二列为数据。

这里的时间,直接从Datetime.Now重新处理的,仅仅使用了数据表中的第二列数据

时间: 2024-11-03 22:35:37

TeeChart的X轴为时间,多个Y轴的显示的相关文章

matlab画二维直方图以及双y轴坐标如何修改另一边y轴的颜色

1.首先讲一下如何用hist画二维直方图 1 x=[-568179 -766698 -935586 -826865 -393971 -771826 -1529945 -1910695 -1694740 -926367 -306998 -844840 -1828334 -2062815 -2297296 -1498824 -411346 -827922 -1826636 -1844777 -1862918 -1881060 -746534 -100479 -845832 -1832756 -194

Android 自定义绘制折线图(重点是Y轴的公式)

/** * 绘制折线图的公式Y轴坐标: y=height-((data-min)/(max-min))*height; 可以得到data在Y轴的坐标点 * height: 折线图 Y轴的坐标 * data: 数据源 * max: 数据源的最大值 * min: 数据源的最小值 * * */ /** * 绘制折线图: y轴左侧的数据 * * 1.根据需求 :显示几个数据 height/显示个数(平均分配Y轴) * 2.左侧数据: Y轴的顶部:数据源max值 Y轴的底部:数据源的min值 中间数据:取

Mschart绘制图表之X轴为时间的设置方式

最近使用C#开发图表,比较了DirectorChart,DontNetCharting,TeeChart,最终选用微软的mschart开发,对于X轴作为时间轴探索了好久,终于实现了想要的效果. 界面效果: 核心代码:  源码 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text;

Echarts的柱状统计图出现x轴统计时间出现间隔显示的问题

今天在使用Echarts的柱状统计图出现x轴统计时间出现间隔显示的问题: 数据都拿到了,放到Json数组都是完整的, 展现是时候 如下图: ------------------------------------------------------jsp页面代码 的div <div class="f-r w-b45">                <div id="proMonthCount" style="min-width: 310

各种机械键盘轴的区别,到底什么轴好

http://www.pcviva.com/jixiejianpanshenmezhouhao.html 如果你已经清楚什么是机械键盘,也阅读了<机械键盘什么牌子好>这篇文章,你可能要挑的,就是机械键盘的轴了.机械键盘什么轴好呢,我们先看下机械键盘的白轴.黑轴.青轴.茶轴.红轴的区别.  (在多数情况下,PC万岁所说“机械键盘轴”都指Cherry MX轴.) 机械键盘轴的区别(概览) 机械键盘轴的区别: 白轴操作压力克数比黑轴大段落感比茶轴强已停产 黑轴操作压力:58.9g±14.7g没有段落

echart折线堆叠图 Y轴数据不堆叠

<!DOCTYPE html> <html> <head></head> <body>     <div class="row form-inline form-ranking">     <div class="form-group">         <label class="control-label">店铺:</label>   

使用HighCharts描绘多个Y轴的动态曲线。

调试了一整天,终于显示出来了. 详细例子参照官网的demo:http://www.hcharts.cn/demo/index.php 在这只贴出关键部分的JS代码 1. chart (就是在events的load里写一个实时获取的方法.通过json调用去后台拉新数据加到series里) 1 chart: { 2 renderTo: 'chart_spline', //图表放置的容器,DIV 3 defaultSeriesType: 'spline', //图表类型为曲线图 4 events: {

各种机械键盘轴的差别,究竟什么轴好

假设你已经清楚什么是机械键盘,也阅读了<机械键盘什么牌子好>这篇文章,你可能要挑的,就是机械键盘的轴了.机械键盘什么轴好呢,我们先看下机械键盘的白轴.黑轴.青轴.茶轴.红轴的差别.  (在多数情况下,PC万岁所说"机械键盘轴"都指Cherry MX轴.) 机械键盘轴的差别(概览) 机械键盘轴的差别: 白轴 操作压力克数比黑轴大 段落感比茶轴强 已停产 黑轴 操作压力:58.9g±14.7g 没有段落感 青轴 操作压力:58.9g±14.7g 触感压力:58.9g±19.6g

Highcharts属性与Y轴数据值刻度显示Y轴最小最大值

Highcharts 官网:https://www.hcharts.cn/demo/highcharts Highcharts API文档:https://api.hcharts.cn/highcharts#yAxis.tickmarkPlacement Highcharts属性与Y轴数据值刻度显示Y轴最小最大值 Highcharts.setOptions({global:{useUTC : false}}); $(function(){ //声明报表对象 var chart = new Hig

[DevExpress]ChartControl之创建X,Y轴Title示例

关键代码: /// <summary> /// 设置X轴Title /// </summary> /// <param name="chart">ChartControl</param> /// <param name="titleText">Title文字</param> /// <param name="titleColor">Title文字颜色</pa