找回密码
 立即注册

QQ登录

只需一步,快速开始

yk6802

注册会员

15

主题

28

帖子

109

积分

注册会员

积分
109

活字格认证

[已处理] Chart样式的问题

yk6802
注册会员   /  发表于:2021-7-26 17:50  /   查看:2457  /  回复:5
1金币
最近做一个机床数据采集项目,需要生成如下图的机床状态图表:
不同的颜色代表不同的状态:如绿色代表运行,黄色为待机,红色为故障,X轴以时间为轴。不知道C1chart能不能做出这个效果。
附件: 您需要 登录 才可以下载或查看,没有帐号?立即注册

最佳答案

查看完整内容

状态彩条图已经实现了,上图最下方的彩条就是,就是运用了C1Chart中的StepArea实现的,代码贴出,与大家共享。 前台代码: ...

5 个回复

倒序浏览
最佳答案
最佳答案
yk6802
注册会员   /  发表于:2021-7-26 17:50:16
来自 5#
本帖最后由 yk6802 于 2021-8-20 10:22 编辑


状态彩条图已经实现了,上图最下方的彩条就是,就是运用了C1Chart中的StepArea实现的,代码贴出,与大家共享。
前台代码:
                        <c1:C1Chart Name="RLView" Height="50" Grid.Row="1" Grid.ColumnSpan="2">
                            <c1:C1Chart.Data>
                                <c1:ChartData>
                                    <c1:XYDataSeries Name="StopLine" Label="停机" XValueBinding="{Binding DT}" ValueBinding="{Binding Stop}" ChartType="StepArea" ConnectionStroke="DarkGray" ConnectionFill="DarkGray"/>
                                    <c1:XYDataSeries Name="RunLine" Label="运行" XValueBinding="{Binding DT}" ValueBinding="{Binding Run}" ChartType="StepArea" ConnectionStroke="DarkGreen" ConnectionFill="DarkGreen"/>
                                    <c1:XYDataSeries Name="HandLine" Label="调试" XValueBinding="{Binding DT}" ValueBinding="{Binding Debug}" ChartType="StepArea" ConnectionStroke="DarkMagenta" ConnectionFill="DarkMagenta"/>
                                    <c1:XYDataSeries Name="DebugLine" Label="手轮" XValueBinding="{Binding DT}" ValueBinding="{Binding Manual}" ChartType="StepArea" ConnectionStroke="Red" ConnectionFill="Red"/>
                                    <c1:XYDataSeries Name="FreeLine" Label="待机" XValueBinding="{Binding DT}" ValueBinding="{Binding Free}" ChartType="StepArea" ConnectionStroke="Yellow" ConnectionFill="Yellow"/>
                                </c1:ChartData>
                            </c1:C1Chart.Data>
                            <c1:C1Chart.View>
                                <c1:ChartView>
                                    <c1:ChartView.AxisY>
                                        <c1:Axis MinScale="1"/>
                                    </c1:ChartView.AxisY>
                                    <c1:ChartView.AxisX>
                                        <c1:Axis IsTime="True" AnnoFormat="HH">
                                            <c1:Axis.ScrollBar>
                                                <c1:AxisScrollBar/>
                                            </c1:Axis.ScrollBar>
                                        </c1:Axis>
                                    </c1:ChartView.AxisX>
                                </c1:ChartView>
                            </c1:C1Chart.View>
                        </c1:C1Chart>

后台代码:

        public class StatusModel
        {
            public DateTime DT { get; set; }
            public bool Stop { get; set; }
            public bool Free { get; set; }
            public bool Debug { get; set; }
            public bool Manual { get; set; }
            public bool Run { get; set; }
            public double TS { get; set; }
        }

状态数据类实例化为一个List列表作为数据源直接绑定即可。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x

评分

参与人数 1金币 +500 收起 理由
Richard.Ma + 500 分享代码,赞一个!

查看全部评分

回复 使用道具 举报
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2021-7-26 18:28:55
2#
本帖最后由 Richard.Ma 于 2021-7-27 09:43 编辑

您好,帮您验证了一下,目前C1Chart没有此类的图表,无法实现您需要的效果

回复 使用道具 举报
yk6802
注册会员   /  发表于:2021-8-2 10:52:06
3#
这几天研究了一下,通过StepArea类型的图表可以实现类似的效果,就是麻烦点。等做完以后我会提供源码,与大家分享。
回复 使用道具 举报
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2021-8-2 12:03:43
4#
,期待您分享代码
回复 使用道具 举报
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2021-8-20 12:01:30
6#
感谢分享思路和代码
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部