LiveCharts:绘制轴线

时间:2018-02-28 11:02:46

标签: wpf livecharts

我使用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>

结果图表位于下图中的左侧。

resulting-graph

我想要实现的是绘制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>

总而言之,我对最好的方法有点无能为力,感谢所有的帮助。

2 个答案:

答案 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”可在轴上画一条线。 希望可以帮助某人。