2017-01-05 5 views
1

У меня есть барграф, который показывает качество моих данных за каждый месяц. Поскольку данные растут с годами, график становится беспорядочным. Таким образом, я хотел бы показать Среднее качество по годам за все эти месяцы в предыдущие годы, но ежемесячно за текущий год.Spotfire Bargraph показать среднее Качество по годам за предыдущие годы и по месяцам за текущий год

Может ли кто-нибудь помочь мне в достижении этого.

Спасибо, -Dileep

+0

Были ли какие-нибудь ответы полезными? – AmbivalentGeek

ответ

0

Это должно быть разделено на две диаграммы, или он просто не будет разборчивым. Я хотел бы предложить:

  1. Создание AVG на год графике гистограммы для всех ваших данных
  2. Создания детали визуализации выше среднегодовых данных, который показывает 12 месяцев этого года с SUM() в качестве метод агрегации. Обязательно наличие ГОДА> Месяц по вашей категории.

Таким образом, если вам нужно сравнить 1, 2, 3 или все годы от месяца, вы можете выбрать их все или просто те, которые вы хотите.

+0

Благодарим вас за ваш быстрый ответ. Я понимаю, что мы можем показать их с использованием двух графиков, но есть ли возможность сделать это одним графиком либо с помощью python, либо с любого сценария? – Dileep

+0

@Dileep. Вы просите показать только годы для части оси категории, а затем годы> месяцев на другой части. Это невозможно для непрерывной оси. Однако вы можете создать две гистограммы, которые независимы друг от друга и ограничить данные конкретным диапазоном дат, и разместить их рядом друг с другом. – scsimon

0

Я смог сделать это с помощью некоторых расчетных столбцов. Чтобы пояснить, предположим, что столбец значений в вашем наборе данных называется Value, а столбец даты в вашем наборе данных называется ValueDate. Я создал некоторые вымышленные данные, которые распространяются на апрель 2017 года, чтобы помочь проиллюстрировать решение.

  1. Вставьте вычисляемый столбец, чтобы определить, находится ли дата в каждой строке в текущем году или нет. Я позвоню в колонку DateGrouping.

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

  2. Вставить вычисляемый столбец, который говорит нам последнюю дату месяца для ValueDate. Например, если дата в строке 4/10/2015, последний день месяца для дня в этой строке - 30.04.2015. Если дата в строке 7/8/2013, последний день месяца для даты в этой строке - 7/31/2013. Мы будем называть этот столбец LastDateOfMonth.

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

  3. Вставить вычисляемый столбец, который говорит нам последнюю дату год для ValueDate. Конечно, это только 31 декабря ValueDate года. Позвоните в эту колонку LastDateOfYear.

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

  4. Наконец, мы используем три предыдущие вычисляемые столбцы, чтобы добавить вычисляемый столбец для значения даты мы хотим построить. Вы хотите построить месяц за текущий год и год за предыдущие годы.

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

На моей оси значений является Value столбец, который я агрегирование как Average. На моей оси категории находится расчетный столбец DatePlot - я установил ось категории в категориальную шкалу.И я раскрашиваю расчетный столбец DateGrouping, чтобы предложить визуальный сигнал, что данные агрегируются по-разному с течением времени.

Sample Bar Chart

Теперь должны это сделать? Конечно, есть некоторые подводные камни. Вы не можете сделать непрерывную шкалу осей категории, иначе вы увидите все пустые месяцы, когда мы накапливаем предыдущие годы до 31 декабря. С другой стороны, пробелы хороши визуально, когда нет данных за данный период , Поэтому я не знаю. Но я представил себе то, что вы просили, и решил попробовать. Покупатель, будь осторожен!