【问题标题】:Non Scaled SSRS Line Chart with mulitple series具有多个系列的非缩放 SSRS 折线图
【发布时间】:2020-01-10 19:33:05
【问题描述】:

我正在尝试在单个 SSRS (v14) 折线图上显示多个传感器的时间序列 我需要绘制 N 个系列,每个系列都独立地在图表提供的空间中绘制系列数据(独立垂直轴)

有关数据的更多信息

可以有 ~1-10 系列的任何地方 挑战在于它们的数量级不同。

一个可能是华氏度 (~0-212) 一个可能是碳 ppm (~1-16) 一种可能是 Ftlbs Thrust (~10k-100k)

关键是,它们没有关系,并且可能非常不同

确切的值并不重要。我可以隐藏纵轴

更多关于我正在尝试做的事情

我们的想法是展示多个时间序列,将前后 4 小时的时间绘制在一起 '一个事件'。它不一定是重要的确切值。主题专家会寻找一些奇怪的东西(温度下降、推力峰值等)。

我尝试过的事情

如果只有 2 个系列,我可以轻松使用 SSRS 图表中可用的第二轴。这正是我追求的想法。但在这种情况下,我希望 N 系列使用自己的轴进行绘图。

我尝试将 N 个透明图堆叠在一起。这将是一个非常丑陋的解决方案,但 SSRS 甚至不会让你这样做。它会为您解开它们。

我已经尝试过垂直轴上的 Allow Scale Breaks 属性。这可以解决问题,但我们不喜欢“双锯齿线”

可以启用对数刻度。它在显示所有数据方面做得更好。但这并不是我们真正想要的。它将改变范围超过几个数量级的数据的形状。

我尝试了迷你图组件,但遇到了同样的问题。

【问题讨论】:

    标签: reporting-services


    【解决方案1】:

    这种方法与上述 Greg 的回答基本相同。过去,即使单位不同,我也必须执行相同的过程来比较数据趋势。

    我采用了一种非常简单的方法,即在查询中添加一个附加列,该列将每个值显示为每个系列中最大值的百分比。

    作为一个例子(为了清楚起见,这里只有 2 个系列)我从 myTable 中的此类数据开始

    Series  Month  myValue
    A       Jan    4
    A       Feb    8
    A       Mar    16
    B       Jan    200
    B       Feb    300
    B       Mar    400
    

    我的数据集查询会是这样的。

    SELECT *, myValue / MAX(myValue) OVER(PARTITION BY Series) as myPlotValue FROM myTable
    

    这给了我们一个看起来像这样的最终数据集。

    Series  Month  myValue myPlotValue
    A       Jan    4       0.25
    A       Feb    8       0.5
    A       Mar    16      1
    B       Jan    200     0.5
    B       Feb    300     0.75
    B       Mar    400     1
    

    如您所见,所有绘图值现在都在 0 和 1 之间。

    我使用myPlotValue 字段创建了该图表,并且可以选择使用myValue 字段中的原始值作为数据点标签。

    【讨论】:

      【解决方案2】:

      在与一些数学家交谈后,这是一个标准问题,它通过一个称为数据归一化的过程来解决。

      本质上,您正在更改所有系列以适应给定范围(通常为 0-1) 如果这对您的问题域有意义,您可以缩放并添加偏移量。

      https://www.statisticshowto.datasciencecentral.com/normalized/

      【讨论】:

        猜你喜欢
        • 2020-12-30
        • 1970-01-01
        • 2019-05-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多