Chart样式的问题
最近做一个机床数据采集项目,需要生成如下图的机床状态图表:https://gcdn.grapecity.com.cn/forum.php?mod=image&aid=149474&size=300x300&key=8bd84f08d14d84be&nocache=yes&type=fixnone不同的颜色代表不同的状态:如绿色代表运行,黄色为待机,红色为故障,X轴以时间为轴。不知道C1chart能不能做出这个效果。
本帖最后由 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列表作为数据源直接绑定即可。
本帖最后由 Richard.Ma 于 2021-7-27 09:43 编辑
您好,帮您验证了一下,目前C1Chart没有此类的图表,无法实现您需要的效果
这几天研究了一下,通过StepArea类型的图表可以实现类似的效果,就是麻烦点。等做完以后我会提供源码,与大家分享。 :hjyzw:,期待您分享代码 感谢分享思路和代码
页:
[1]