yxskkk 2011-11-16 14:41
浏览 229
已采纳

silverlight用visifire画折线图的问题

数据已经有了,Y轴也没什么问题
现在我希望X轴是固定时间,比如原点是2011-11-01 00:00:00,然后每五分钟在X轴上有一个点
我的数据点分布在X轴上,可能某个五分钟比较密集,某个五分钟比较稀疏
visifire能做到吗?

  • 写回答

1条回答 默认 最新

  • jiangguangxian 2011-11-16 15:06
    关注

    可以做到,给你个参考代码:
    [code="java"]
    public void CreateChart(string tableName, List updateTime, List valueList, string rihgtStr, int chartInterval, IntervalTypes intervaltype)
    {
    Chart chart = new Chart(); //创建一个图表

            /*  设置图表属性   */
            chart.Width = 500;
            chart.Height = 400;
            chart.ToolBarEnabled = true;
            chart.ScrollingEnabled = false;
            chart.View3D = true;
    
            Title title = new Title() { Text = tableName, Padding = new Thickness(0, 10, 5, 0) };  //图表标题
            chart.Titles.Add(title);         //添加标题
    
            Axis xAxis = new Axis();         //创建X轴
            xAxis.IntervalType = intervaltype;    //X轴分类类型, 小时*分*秒
            xAxis.Interval = chartInterval;       //X轴坐标间隔距离
            xAxis.ValueFormatString = "hh:mm:ss";      //X轴时间显示格式
            chart.AxesX.Add(xAxis);            //为图表添加X轴
    
    
            Axis yAxis = new Axis();        //创建Y轴
            yAxis.Suffix = rihgtStr;         //Y轴后缀%
            yAxis.AxisMinimum = 0;          //Y轴最小值为0      
            chart.AxesY.Add(yAxis);           //为图表添加Y轴
    
    
            for (int i = 0; i < valueList.Count; i++)
            {
                DataSeries dataSeries = new DataSeries();   //创建数据线
                dataSeries.RenderAs = RenderAs.Line;        //  数据线显示类型为线型
                dataSeries.XValueType = ChartValueTypes.DateTime;   //设置X轴的类型为日期类型  
                List<string> value = (List<string>)valueList[i];
                for (int j = 0; j < updateTime.Count; j++)
                {
                    DataPoint dataPoint = new DataPoint();   //创建数据点
                    dataPoint.XValue = updateTime[j];         //设置数据点X轴的值;
                    dataPoint.YValue = double.Parse(value[j]);  //设置Y轴值
                    dataPoint.MarkerSize = 8;              //设置数据点的大小
                    dataPoint.MouseLeftButtonDown += new MouseButtonEventHandler(dataPoint_MouseLeftButtonDown);  //数据点的鼠标单击事件                   
                    dataSeries.DataPoints.Add(dataPoint);       //为数据线添加数据点
                }
                chart.Series.Add(dataSeries);           //为图表添加数据线
            }
    
            LayoutRoot.Children.Add(chart);
        }
    

    [/code]

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥20 ML307A在使用AT命令连接EMQX平台的MQTT时被拒绝
  • ¥20 腾讯企业邮箱邮件可以恢复么
  • ¥15 有人知道怎么将自己的迁移策略布到edgecloudsim上使用吗?
  • ¥15 错误 LNK2001 无法解析的外部符号
  • ¥50 安装pyaudiokits失败
  • ¥15 计组这些题应该咋做呀
  • ¥60 更换迈创SOL6M4AE卡的时候,驱动要重新装才能使用,怎么解决?
  • ¥15 让node服务器有自动加载文件的功能
  • ¥15 jmeter脚本回放有的是对的有的是错的
  • ¥15 r语言蛋白组学相关问题