Spotfire Bargraph显示往年的平均质量和当月的月份

时间:2017-01-05 19:20:17

标签: spotfire

我有一个条形图,显示每个月我的数据质量。随着这些年来数据的增长,图表变得越来越混乱。因此,我希望在过去几年的所有月份中按年度显示平均质量,但是按当月的月度显示。

任何人都可以帮助我实现这个目标。

谢谢, -Dileep

2 个答案:

答案 0 :(得分:0)

这需要分成两个图表,或者它只是不易读。我建议:

  1. 按年份条形图创建所有数据的AVG
  2. 创建上述年度平均数据的详细信息可视化,该数据以SUM()作为聚合方法显示当年的12个月。一定要有YEAR>您的类别轴上的月份
  3. 因此,如果您需要逐月比较1,2,3或所有年份,您可以全部选择它们,或者只选择您想要的那些。

答案 1 :(得分:0)

我能够在一些计算列的帮助下完成它。为了帮助解释,我们假设数据集中的值列称为Value,数据集中的日期列称为ValueDate。我创建了一些延伸到2017年4月的虚构数据,以帮助说明解决方案。

  1. 插入计算列以分类每行中的日期是否在当前年份。我打算调用专栏DateGrouping

    CASE WHEN Year(DateTimeNow())=Year([ValueDate]) THEN "Monthly" WHEN Year(DateTimeNow())>Year([ValueDate]) THEN "Yearly" END AS [DateGrouping]

  2. 插入一个计算列,告诉我们ValueDate的月份的最后日期。例如,如果行中的日期是2015年4月10日,那一行中该月的最后一天是2015年4月30日。如果行中的日期是2013年7月8日,则该行中日期的月份的最后一天是2013年7月31日。我们将此专栏称为LastDateOfMonth

    DateAdd("day",-1,date(Year([ValueDate]),Month(DateAdd("month",1,[ValueDate])),1))

  3. 插入一个计算列,告诉我们ValueDate的最后日期。当然,它只是ValueDate年的12月31日。请拨打此列LastDateOfYear

    Date(Year([ValueDate]),12,31)

  4. 最后,我们利用前三个计算列为我们想要绘制的日期值添加计算列。您希望按月计算当前年份,以及按年份计算前几年。

    CASE [DateGrouping] WHEN "Monthly" THEN [LastDayOfMonth] WHEN "Yearly" THEN [LastDateOfYear] END

  5. 在我的值轴上是Value列,我将其汇总为平均值。在我的类别轴上是计算的DatePlot列 - 我将类别轴设置为分类比例。我按计算的DateGrouping列进行着色,以提供一个视觉提示,即数据会随着时间的推移而不同地聚合。

    Sample Bar Chart

    现在,应该这样做?肯定存在一些陷阱。您不能使类别轴成为连续比例,否则您将看到我们将前几年集中到12月31日的所有空白月份。另一方面,当有没有给定时期的数据。所以我不知道。但我想象你在问什么,并决定尝试一下。买家要小心!