我使用LiveCharts绘制行图。
XAML的代码:
<lvc:CartesianChart Grid.Column="0" Zoom="None" Margin="0,0,0,8" AnimationsSpeed="0" DataTooltip="{x:Null}">
<lvc:CartesianChart.Resources>
<Style TargetType="lvc:Separator">
<Setter Property="Stroke" Value="CadetBlue" />
<Setter Property="StrokeThickness" Value="0.4" />
</Style>
</lvc:CartesianChart.Resources>
<lvc:CartesianChart.Series>
<lvc:RowSeries Name="AlarmTypeSeries" Values="{Binding AlarmTypeHistogramValues}" Configuration="{Binding AlarmTypeHistogramMapper}" />
</lvc:CartesianChart.Series>
<lvc:CartesianChart.AxisX>
<lvc:Axis Name="XAxis" MinValue="0" MaxValue="{Binding MaxXAxisValue}" FontSize="13.3" Title="Alarmanzahl"/>
</lvc:CartesianChart.AxisX>
<lvc:CartesianChart.AxisY>
<lvc:Axis Name="YAxis" MinValue="-7" MaxValue="1" ShowLabels="False" />
</lvc:CartesianChart.AxisY>
</lvc:CartesianChart>
结果图表位于下图中的左侧。
我想要实现的是绘制X轴,从而产生类似于右边的图形。
我会假设轴会自动绘制,但也许我错过了一些东西。
显然LiveCharts中有一个错误可以解释这种行为,但2016年有报道: https://github.com/beto-rodriguez/Live-Charts/issues/142
我已经尝试在Y轴的适当位置添加一个Section(下面是XAML-Code),结果看起来没问题,但确切的点必须动态确定。
<lvc:Axis.Sections>
<lvc:AxisSection Value="-6.45" StrokeThickness="1" Stroke="CadetBlue"/>
</lvc:Axis.Sections>
总而言之,我对最好的方法有点无能为力,感谢所有的帮助。
答案 0 :(得分:0)
这不是最好的解决方案,但你可以做的是使用Separator而不是Sections,并将Step设置为一个值,以确保Separator位于图的顶部和底部。但我理解它与你发现的相似。
<lvc:Axis.Separator>
<lvc:Separator StrokeThickness="1" Stroke="CadetBlue" Step="100"/>
</lvc:Axis.Separator>
答案 1 :(得分:0)
嗨,我也在寻找相同的答案。甚至在实时图表论坛中看到了您的帖子。但仍未找到任何答案。目前,我正在使用一节来标记轴线。 如果有需要的话。这就是我用过的。
<LiveChart:Axis.Sections>
<LiveChart:AxisSection Value="{Binding XAxisMinValue}" Stroke="Black" StrokeThickness="1"/>
</LiveChart:Axis.Sections>
其中最小值是我的图表的p [loting开始的最小点。我尝试了一些路径,并将其设置为“ 0”可在轴上画一条线。 希望可以帮助某人。